Download Latest Version Version 3.5.2 source code.zip (134.5 MB)
Email in envelope

Get an email when there's a new version of Oppia

Home / v3.5.2
Name Modified Size InfoDownloads / Week
Parent folder
README.md 2026-07-20 9.6 kB
Version 3.5.2 source code.tar.gz 2026-07-20 129.7 MB
Version 3.5.2 source code.zip 2026-07-20 134.5 MB
Totals: 3 Items   264.2 MB 0

Changes

Students (Learner-facing features)

  1. Fix [#16488]: Remove unnecessary parentheses wrapping in fraction asciimath output (#26229)
  2. Fix learner story progress auth checks (#26246)
  3. [GSoC 2026] M1.2 - Fix part of [#19614]: Implement redesigned topic header layout (#26200)
  4. [GSoC 2026] M1.1 - Fix Part of [#24717]: Add certificate assessment dashboard skeleton (#26191)
  5. Fix [#24221], [#24885], [#24946], [#24925], [#25502], [#24327]: Prevent snapshot mismatches in learner dashboard home tab tests (#25733)
  6. [GSoC 2026] M1.1 - Fix part of [#19614]: Integrate redesigned Topic Viewer feature flag (#26188)
  7. Fix [#18371]: Fix schema validation error for decimal answers in NumericInput interactions (#25972)
  8. Fix [#10162]: Non-currency input invalid error (#25831)
  9. Fix [#25903]: Add element stabilization to fix flaky drag-and-drop sort acceptance test (#25962)
  10. Fix [#18515]: Added frontend redundancy validation for TextInput interactions (#25993)
  11. Fix [#17219]: Remove unnecessary parentheses wrapping in fraction symbol dict (#25959)
  12. Fix [#23158]: Solve timeoutError: waiting for selector Fraction Input (#26016)
  13. Fix [#10899]: Add validation to prevent negative tolerance in NumericInput (#25808)
  14. Fix part of [#24968]: Hide deprecated interactions (PencilCode, MusicNotes, CodeRepl, GraphInput, InteractiveMap) from UI (#25506)
  15. Fix [#20694]: Prevent search bar shifting on Community Library page during typing (#25930)
  16. Fix [#13689]: NumericExpression division symbol display per customization arg (#25897)
  17. Fix [#16358]: Improve error message for invalid prefix operator (#25676)
  18. Fixes [#25278]: Text formatting to correctly highlight sentence during voiceover playback (#25787)
  19. Fix [#25786]: Fixing Not a prefix operator error (#25798)
  20. Fix [#16667]: Add frontend validation for negative selection counts in Item Selection (#25781)
  21. Fix [#25512]: Ambiguity in Search Functionality: Tag Selection vs Free-Text Input (#25758)
  22. Fix [#24943]: Correct background color display on Next Lesson button (#25727)
  23. Fix [#23682]: Fix YouTube video embed broken due to recent YouTube policy update (#25767)

Creators (Contributors/Editors — topics, translations, voiceover artists, exploration editors)

  1. Fix [#26406]: Update translation certificate wording, signee, and layout (#26430)
  2. Fix [#26457]: Display user readable error message when subtopic save failure (#26625)
  3. Fix [#25488]: Resolve voiceover submission error by fixing accent code state-sync (#26199)
  4. [GSoC 2026] M 1.3 - Fix part of [#24933]: Add generalized translation opportunity services for multiple content types (#26202)
  5. Fixes part of [#21166]: Feature that allows users to unpublish stories temporarily (#26050)
  6. [GSoC 2026] M 1.2 - Fix part of [#24933]: Implement domain logic for TranslationOpportunity and generic entity types for PinnedOpportunity (#26104)
  7. Fix [#18312]: Workflow to assign reviewers (#25709)
  8. Fix [#25804]: Add Nepali to supported dashboard languages (#26164)
  9. [GSoC 2026] M 1.1 - Fix part of [#24933]: Add query methods to TranslationOpportunityModel (#26083)
  10. Fix [#23381]: Resolve modal close timeout in preview-math-interactions acceptance test (#26015)
  11. Fix [#20605]: Disable translation modal save buttons on validation errors (#25799)
  12. Fix [#25793]: Refactored subtopic page pre-processing logic from apply_change_list (#26087)
  13. Fix [#25803]: Extract subtopic page update logic from apply_change_list (#25943)
  14. Fix [#25710]: Add Beam jobs to recover orphaned translation data (#25871)
  15. Fix [#18519]: Allow question admins to edit content directly within the Topics and Skills dashboard (#24552)
  16. Fix [#25794]: Extracted topic command handling into small helper functions in apply_change_list (#25855)
  17. Fix [#23895]: Navbar tooltips appear when hovering full editor tile (#25712)
  18. Fix part of [#24600]: Migrate embedding.js and explorationImprovementsTab.js E2E tests to acceptance tests (#25280)
  19. Fix [#25802]: Refactored study guide handling from apply_change_list (#25924)
  20. Fix [#18103]: Added unique row IDs and aria-labels for schema-based-list-editor (#25309)
  21. Fix [#25851], [#25832], [#25830]: Wait for specific tab to render before switching in contributor dashboard (#25854)
  22. Fix [#25792]: Extracted study guide preprocessing in apply_change_list (#25865)
  23. Fixes prod ops issues filed during automated voiceover testing (#25856)
  24. Fix [#23302] and [#24157]: Replace can_create_topic with can_access_topics_and_skills_dashboard for topic URL fragment checks (#25605)
  25. Fix [#25805]: Resolve overlapping UI buttons on translation review modal (#25861)
  26. Fix [#22725]: Fix contributor dashboard username label overlap (#25338)
  27. Adds beam job for voiceover synthesis by language accent (#25759)
  28. Fix [#20338]: Resolve race condition in exploration metadata model save (#25535)
  29. Fixes part of [#16837]: Adds beam jobs to mark stale instances of voiceover regeneration records as failed (#25396)
  30. Fix [#24604]: Add acceptance tests for explorationStatistics.js (#25195)
  31. Fix [#25334]: "Publish Chapters" took too long to be clickable (#25556)
  32. Fixes [#25174]: Designs a new batched workflow for voiceover generation (#25132)
  33. Fix [#23362]: SVG editor cropping, auto-scaling, and text rendering (#25736)

Others (Partners, Parents, Infra, Dev Process, Blog, General)

  1. Update versions to 3.5.2 (#26696)
  2. Adds [#26363] and fixes merge conflicts.
  3. Cherry picked PR [#26265] and fixes merge conflicts.
  4. [GSoC 2026] M1.3 - Fix part of [#24716]: Added general_feedback_services.py and captcha_services.py (#26194)
  5. Fix [#25094]: Add Blog link to About section in mobile sidebar (#26080)
  6. [GSoC 2026] M1.1 - Fix part of [#24715]: Set up dedicated Node.js runtime for Playwright (#26192)
  7. Fix redirect bypass in return_url validation (#26236)
  8. [GSoC 2026] M1.5 - Fix part of [#24716]: Added interfaces for feedback, Entrypoint Feedback button and Feature flags to gate it (#26195)
  9. [GSoC 2026] M1.1 - Fix part of [#24716]: Added WebFeedbackThreadModel, WebFeedbackMessageModel, FeedbackSessionLogModel and general_feedback_domain file (#26179)
  10. Fix [#25975]: Prevent ExpressionChangedAfterItHasBeenCheckedError on LTR to RTL switch (#26218)
  11. Fix part of [#23496]: Enforce strict checks for group 2 and 3 files (#25901)
  12. [GSoC 2026] M1.2 - Fix part of [#24716]: Added centralized nested validators in domain_objects_validator.py for session_info payload shape (#26183)
  13. Deprecate enable_multiple_classrooms feature flag (#25825)
  14. Fix part of [#23496]: Enforce the strict type checks for groups 28,29,31 (#25963)
  15. Fix [#25795]: Replace if-else with handler map (#26145)
  16. Added gradual strict Angular template checks with legacy allowlist (#25996)
  17. Fix [#21473]: Use clickOnElement to guard language dropdown against layout race condition (#26058)
  18. Update PR template issue-reference wording as per discussion (#25976)
  19. Fix part of [#23496]: Enforce strict typescript checks for group 4 files (#26052)
  20. Update CODEOWNERS to ensure spec files are owned by relevant teams (#26107)
  21. Fix [#23881]: Solve Flake in snapshot matching RTLArabicHomePage-diff (#26079)
  22. Fixes [#25321], [#25836]: correcting the flow of getting userinfo first and then emitting events (#25306)
  23. Fix [#25307]: Stop email retries for permanent 4xx client errors (#25746)
  24. Fix [#25756], [#26023]: Add waitForSelector before DOM assertions in blog search acceptance test to fix flaky failures (#25954)
  25. Fix part of [#23496]: Enforce strict typescript checks for group 17,18,19,23 (#25936)
  26. Fix [#25991]: CampaignBannerComponent test failing in frontend unit tests (#25992)
  27. Fix [#25087]: validation for Message text and Thread subject inside feedback (#25672)
  28. Added HTML linter check for new embedded style tags (#25940)
  29. Fix [#25439]: Use AlertsService for toast message on blog admin page (#25790)
  30. Refactor About page partnerships/CTA into reusable components and fix missing aria-labels (#25826)
  31. Fix [#21644]: Fail full-stack acceptance tests on backend server errors (#25670)
  32. Fix part of [#23496]: Enforce strict typescript checks for group 30 (#25392)
  33. Fix [#18220]: migrating packages from dependencies.json to package.json part 1 and additional cleanup to remove dependencies.json entirely (#24880)
  34. Fix [#25570]: Snapshot mismatch on donor page (#25691)
  35. Fix [#21200]: fixing waiting for selector div.modal-content (#25632)
  36. Fix [#24924]: remove invalid ARIA menu roles and fix WCAG AA contrast violations in navbar (#25432)
  37. Fix part of [#24149]: migration of dependencies.json to package.json Part 3 (#24930)
  38. Fix part of [#23496]: Enforce strict checks for group 20 and 21 files (#25509)
  39. Fix [#20338]: Resolve race condition in exploration metadata model save (#25535) (duplicate title, see Creators)
  40. Fix [#23905]: Handle GitHub API rate limiting in url_open (#25303)
  41. Fix part of [#21308]: Improve backend controller branch coverage with targeted tests and dead-branch cleanup (#25685)
  42. Fix part of [#21308] to cover edge cases in backend code (#25113)
  43. Fix [#24107]: Remove duplicate keyword search button in blog page (#25761)
  44. Fix [#23308]: fixed screenshot capture on local acceptance test failure (#25356)
  45. Fix [#24883]: Removing the oppia lightweight root (#25416)
  46. Fix [#24093]: Improved blog search to support searching by partial words (#25766)
Source: README.md, updated 2026-07-20