Latest releases
Weโre constantly improving O3. This page shows the newest tagged GitHub release for selected O3 repositories. It is a release dashboard, not a full changelog for every frontend module.
Use it to spot when common O3 packages have moved, then check your distributionโs spa-assemble-config.json to confirm which modules and versions are actually included in your environment. Each repository heading and โView all releasesโ link opens the repositoryโs GitHub releases page.
Platform
Coreย
v10.0.0
Published: Jun 9, 2026
What's Changed
Breaking changes โ ๏ธ
- (BREAKING) Drop IMO and don't load arbitrary content in production mode by @ibacher in #1743
- (BREAKING) O3-5645: Prevent open redirect via unvalidated returnToUrl by @omeriinnocent in #1763
Features ๐
- (feat) O3-5206: Migrate to using RSpack everywhere by @ibacher in #1417
- (feat) O3-5409: Add carbon table's batch action translation string to coreTranslations by @abheeee03 in #1584
- (feat) O3-5181: Allow creation of global stores backed by sessionStorage by @chibongho in #1490
- (feat) Add some additional age and duration helpers by @ibacher in #1680
- (feat) Switch to using the type declarations for framework types by @ibacher in #1679
- (feat) O3-5440: Provide a way to redirect to custom URL on login and logout by @chibongho in #1657
- (feat) O3-5460: Add TableBatchActions to Mock Tests by @abheeee03 in #1699
- (feat) Upgrade the CLI and add comprehensive tests by @ibacher in #1735
- (feat) Add support to invoke develop with package name by @ibacher in #1750
- (feat) Add matchLocale framework function by @ibacher in #1771
- (feat) O3-5027: Make login page configurable by @UjjawalPrabhat in #1762
- (feat) Prevent the shared SWR cache being torn down when a decorated component unmounts by @denniskigen in #1793
Bug Fixes ๐
- (fix) Downgrade invalid workspace context key error to a warning by @denniskigen in #1649
- (fix) Framework and Styleguide should build as standard libraries by @ibacher in #1643
- (fix) Remove manual inert prop handling from LeftNavMenu by @denniskigen in #1660
- (fix) Reduce the size of the app shell by @ibacher in #1658
- (fix) Start shell dev server after other dev servers start by @ibacher in #1662
- (fix) Restore Jest mocks for usePagination and usePaginationInfo by @ibacher in #1670
- (fix) RxJS imports need to be fully resolved by @ibacher in #1669
- (fix) Don't reset devServer's static path by @ibacher in #1672
- (fix) Primary identifier shouldn't be truncated due to Tag constraints by @vasharma05 in #1671
- (fix) Restore static path and fix port binding check by @ibacher in #1674
- (fix) Update NumericObservation cell styling and add mock by @NethmiRodrigo in #1703
- (fix) Handle zero values correctly in NumericObservation by @denniskigen in #1712
- (fix) Skip useConceptReferenceRange when interpretation is provided by @NethmiRodrigo in #1713
- (fix) Produce new object reference when re-launching an already-open workspace by @denniskigen in #1714
- (fix) Fix GeoPattern background not filling patient avatar on some devices by @denniskigen in #1721
- (fix) O3-5581: Fix base URL of compiled resources from yarn serve by @chibongho in #1726
- (fix) Updates to openmrs CLI by @ibacher in #1729
- (fix) Allow translation overrides when locale doesn't exist by @vasharma05 in #1728
- (fix) Harden logout E2E test against user menu race by @denniskigen in #1737
- (fix) Small optimization to runtime SVG loading by @ibacher in #1742
- (fix) Avoid stray vertical line in OpenmrsDateRangePicker inputs by @denniskigen in #1753
- (fix) O3-4020: Return current app context value synchronously on first render by @praneeth622 in #1751
- (fix) O3-4924: Align expand animation and size prop with Carbon design system by @RajPrakash681 in #1758
- (fix) O3-5651: Update the procedure order icon by @dilankavishka in #1773
- (fix) Restore lg height for Search component by @denniskigen in #1778
- (fix) Add esm-patient-task-list-app to the e2e Docker environment by @denniskigen in #1779
- (fix) Restore pagination container text left padding by @denniskigen in #1783
- (fix) Remove doubled heading padding in EmptyCard and ErrorState by @denniskigen in #1790
- (fix) Render UI Editor extension overlays and stop leaking overlay containers by @denniskigen in #1784
- (fix) O3-5646: Remove extra padding from NumericObs cell variant in tablet mode by @solomonfortune in #1769
- (fix) Add install-script to bundle-size workflow by @NethmiRodrigo in #1791
- (fix) O3-5588: Correctly apply Login Location tag filter in useLocationCount by @sudeshkar in #1734
Housekeeping ๐งน
- (chore) Improve consistency of actionable notification label by @ImZb22 in #1650
- (chore) Add Storybook for the Styleguide by @ibacher in #1641
- (chore) Fix react-utils mock to not import from ./src/index by @ibacher in #1656
- (chore) Update E2E workflow actions and Node.js version by @denniskigen in #1668
- (chore) Add PR title check workflow by @denniskigen in #1665
- (chore) Add PR description check workflow by @NethmiRodrigo in #1701
- (chore) Pin axios to 1.13.4 to avoid compromised versions by @olewandowski1 in #1722
- (chore) O3-5449: Register chart line icon by @dilankavishka in #1732
- (chore) CI updates to cancel in progress runs by @ibacher in #1744
- (chore) Add a semi-automated documentation workflow by @ibacher in #1770
- (chore) Workspace2 is not longer experimental; deprecate currentVisit by @chibongho in #1781
Tests ๐งช
- (test) O3-5457: Add comprehensive tests for useLayoutType hook by @sohamdhande in #1638
- (test) Add regression tests for 401 Location-header redirect in openmrsFetch by @AshThe25 in #1754
New Contributors
- @ImZb22 made their first contribution in #1650
- @dilankavishka made their first contribution in #1732
- @praneeth622 made their first contribution in #1751
- @AshThe25 made their first contribution in #1754
- @solomonfortune made their first contribution in #1769
- @sudeshkar made their first contribution in #1734
- @omeriinnocent made their first contribution in #1763
Full Changelog: https://github.com/openmrs/openmrs-esm-core/compare/v9.0.2...v10.0.0
Patient workflows
Patient chartย
v12.3.0
Published: Jun 22, 2026
<!-- Release notes generated using configuration in .github/release.yml at main -->What's Changed
๐ New features
- (feat) O3-5753: Defer drug search API calls until minimum character threshold is reached by @donaldkibet in #3401
๐ Bug fixes
- (fix) Remove unnecessary padding from task list back button by @NethmiRodrigo in #3380
- (fix) O3-5738: Prevent spurious unsaved-changes prompt when starting a visit by @NethmiRodrigo in #3381
- (fix) O3-5739: Decode HTML entities in sticky note content to render special characters correctly by @sourav-jyoti in #3383
- (fix) Settle previous-encounter Promise so form loads can't hang by @denniskigen in #3390
- (fix) Filter conditions query to problem-list-item category by @NethmiRodrigo in #3403
- (fix) Attach visit to visit note submissions by @NethmiRodrigo in #3406
๐งช Tests
- (test) Add e2e coverage for creating a retrospective visit by @denniskigen in #3389
- (test) Add form validation coverage for vitals, drug order, and visit forms by @denniskigen in #3379
- (test) Add e2e coverage for deleting program enrollments and editing visit notes by @denniskigen in #3388
Full Changelog: https://github.com/openmrs/openmrs-esm-patient-chart/compare/v12.2.1...v12.3.0
Patient managementย
v11.0.1
Published: Jun 22, 2026
<!-- Release notes generated using configuration in .github/release.yml at main -->What's Changed
๐ Bug fixes
- (fix) O3-5736: Aligned clear queue entries button and filter status dropdown by @sourav-jyoti in #2580
- (fix) O3-5737: Center align download button in the appointments table toolbar by @sourav-jyoti in #2581
- (fix) O3-5730: Automatically check in patient after starting a visit by @NethmiRodrigo in #2577
- (fix) O3-5731: De-duplicate appointments occurring later today in the upcoming appointments card by @NethmiRodrigo in #2578
- (fix) Average wait time card never fetches data by @shubhangiisinghh in #2320
- (fix) Remove unnecessary type assertion in mapVisitQueueEntryProperties by @shubhangiisinghh in #2322
- (fix) O3-5488: Unnecessary event listener re-registration in combo-input component by @Pratikdeb07 in #2323
๐งน Housekeeping
- (chore) O3-5642: Enforce strict equality rule (eqeqeq) across patient management by @sudeshkar in #2521
New Contributors
- @sudeshkar made their first contribution in #2521
- @shubhangiisinghh made their first contribution in #2320
Full Changelog: https://github.com/openmrs/openmrs-esm-patient-management/compare/v11.0.0...v11.0.1
Forms and data entry
Form builderย
v3.5.1
Published: Jun 22, 2026
What's Changed
๐งน Housekeeping
- (chore) Update OpenMRS dependencies by @openmrs-bot in #1233
- (chore) Update OpenMRS dependencies by @openmrs-bot in #1234
- (chore) Update translations from Transifex by @openmrs-bot in #1235
- (chore) Update OpenMRS dependencies by @openmrs-bot in #1236
- (chore) Release v3.5.1 by @openmrs-bot in #1237
- (chore) Update OpenMRS dependencies by @openmrs-bot in #1238
Full Changelog: https://github.com/openmrs/openmrs-esm-form-builder/compare/v3.5.0...v3.5.1
React form engineย
v4.2.1
Published: Jun 18, 2026
<!-- Release notes generated using configuration in .github/release.yml at main -->What's Changed
๐ Bug fixes
- (fix) O3-5735: Keep default encounter datetimes within the visit window during retrospective data entry by @denniskigen in #756
Full Changelog: https://github.com/openmrs/openmrs-esm-form-engine-lib/compare/v4.2.0...v4.2.1
Angular form engineย
v20.0.0
Published: Jun 9, 2026
What's Changed
๐ New features
- (feat) Upgrade Angular Form Entry to Workspace v2 by @maikofelix47 in #167
- (feat) Add ngx-translate support for checkbox, radio and select labels by @donaldkibet in #169
๐ Bug fixes
- (fix) Set number input background color to white by @icrc-jofrancisco in #168
๐งน Housekeeping
- (chore) Migrate ngx-formentry to Angular 20 by @denniskigen in #170
New Contributors
- @maikofelix47 made their first contribution in #167
Full Changelog: https://github.com/openmrs/openmrs-ngx-formentry/compare/v19.0.1...v20.0.0
Fast data entryย
v1.5.1
Published: Jun 10, 2026
<!-- Release notes generated using configuration in .github/release.yml at main -->What's Changed
New Features
- (feat) Enforce location matching via config by @icrc-jofrancisco in #257
- (feat) Support i18n labels in tabs header by @icrc-jofrancisco in #288
Bug Fixes
- (fix) add location attribute on cohort creation by @icrc-jofrancisco in #252
- (fix) Remove unnecessary webpack dependencies by @denniskigen in #263
- (fix) Make Cancel button in Fill Forms respond to user action by @kb019 in #98
- (fix) Prevent stale patient data rendering in form by @icrc-psousa in #293
- (fix) Pin swr to 2.2.5 to match the app shell and avoid share-scope skew by @denniskigen in #320
Chores
- (chore) Update E2E workflow actions and Node.js version by @denniskigen in #262
- (chore) Add PR title check workflow by @denniskigen in #265
- (chore) Migrate from jest to vitest by @denniskigen in #307
- (chore) Migrate to rspack by @denniskigen in #306
- (chore) Migrate CI to shared openmrs-contrib-gha-workflows by @NethmiRodrigo in #315
- (chore) Bump @openmrs/esm-framework peer dependency to 10.x by @NethmiRodrigo in #326
Tests
- (test) O3-5612: Add test coverage for workflow reducers, form bootstrap, and group session components by @denniskigen in #294
New Contributors
Full Changelog: https://github.com/openmrs/openmrs-esm-fast-data-entry-app/compare/v1.4.1...v1.5.1
Clinical apps
Medication dispensingย
v1.11.1
Published: Jun 22, 2026
What's Changed
๐ Bug fixes
- (fix) O3-5734: Allow recording allergies from the fill prescription order basket by @denniskigen in #854
- (fix) Refresh prescriptions table in place after dispensing by @NethmiRodrigo in #859
Full Changelog: https://github.com/openmrs/openmrs-esm-dispensing-app/compare/v1.11.0...v1.11.1
Cohort builderย
v4.0.6
Published: Jun 10, 2026
What's Changed
๐ Bug fixes
- (fix) Remove unnecessary webpack dependencies by @denniskigen in #607
๐งน Housekeeping
- (chore) Update E2E workflow actions and Node.js version by @denniskigen in #606
- (chore) Add PR title check workflow by @denniskigen in #609
- (chore) Migrate from jest to vitest by @denniskigen in #650
- (chore) Migrate to rspack by @denniskigen in #649
- (chore) Migrate CI to shared openmrs-contrib-gha-workflows by @NethmiRodrigo in #657
- (chore) Bump @openmrs/esm-framework peer dependency to 10.x by @NethmiRodrigo in #667
- (chore) Add GitHub Actions workflow for opening release PR by @wikumChamith in #669
New Contributors
- @wikumChamith made their first contribution in #669
Scaffolding reference
Use @openmrs/create-o3-app for new frontend modules. The template app is listed here only as a structural reference, so it may not release as often as active modules.
Template appย
v4.0.0
Published: May 16, 2024
What's Changed
Breaking changes
- (BREAKING) Migrate
esm-template-appto use routes.json by @vasharma05 in #13
New features
- (feat) Add demonstration of extension system by @brandones in #3
- (feat) Show 'slots' syntax by @ZacButko in #5
Refactors
- (refactor) Useful refactors by @denniskigen in #17
Bug fixes
- (fix) Miscellaneous cleanup by @brandones in #7
- (fix) Update github actions prerelease template to use yarn by @mogoodrich in #11
- (fix) Exports should reference the result of getSync/getAsync by @denniskigen in #14
Docs
- (docs) Add module management app link to README by @denniskigen in #8
- (docs) Fix small error in README by @mogoodrich in #10
Tests
Housekeeping
- (chore) Fixed not working CI/CD by @FlorianRappl in #1
- (chore) Switch to yarn by @brandones in #2
- (chore) Remove prettier config by @brandones in #4
- (chore) Update GitHub workflows to use Yarn instead of NPM by @brandones in #6
- (chore) Add .DS_Store files to .gitignore by @manuelroemer in #9
- (chore) Bump dependencies by @denniskigen in #12
- (chore) Switch back to
swc-loaderby @denniskigen in #15 - (chore) Update to newer versions of openmrs and @openmrs/esm-framework by @denniskigen in #16
- (chore) Updated code dependencies by @vasharma05 in #22
- (chore) Reduce timeout to 15 minutes in E2E test CI workflow by @suubi-joshua in #23
- (chore) Only auto-generate English translations by @ibacher in #25
- (chore) Bump openmrs tooling and framework versions by @denniskigen in #26
- (chore) Bump playwright by @kdaud in #27
- (chore) Bump openmrs framework dependancies by @NethmiRodrigo in #28
- (chore) Bump dependencies by @denniskigen in #29
- (chore) Decouple linting and formatting concerns by @denniskigen in #30
New Contributors
- @FlorianRappl made their first contribution in #1
- @brandones made their first contribution in #2
- @ZacButko made their first contribution in #5
- @denniskigen made their first contribution in #8
- @manuelroemer made their first contribution in #9
- @mogoodrich made their first contribution in #10
- @vasharma05 made their first contribution in #13
- @RandilaP made their first contribution in #18
- @suubi-joshua made their first contribution in #23
- @ibacher made their first contribution in #25
- @kdaud made their first contribution in #27
- @NethmiRodrigo made their first contribution in #28
Full Changelog: https://github.com/openmrs/openmrs-esm-template-app/commits/v4.0.0