4.6.0 release notes
Known issues
Check the repository for the latest known issues.
Upgrade notes
Breaking changes
None.
UI/UX changes
- #6177: Improve look and utility of the “About” page
- #7770: Browser compatibility modal notice for Chrome version 75-90
- #8075: Update default branding to CHT logo
- #8660: Link to Contact’s Profile from Messages tab
Highlights
Allow contact searches in forms to be filtered by descendants of the current contact
A contact selector can be used in forms to allow users to select a contact by searching. In addition to limiting the searchable contacts by their type, now you can configure the search field to only show contacts which are descendants of the current contact. This is useful when you only want to allow a user to select specific contacts (such as members of the current household). Learn how to configure this functionality in the documentation.
- #8074: Support filtering contact search in forms by descendants of the current contact
Official configuration for deploying the CHT to Kubernetes
Configuration files and scripts are now available for deploying the CHT to a Kubernetes cluster. This includes Helm charts, Kubernetes templates, and shell scripts for managing a deployment. See the README documentation for more information.
- #8695: Provide kubernetes configuration and helm charts for production deployments
Form performance improvements
Performance of CHT forms has been significantly improved! Particularly, large forms with complex calculations will load considerably faster and be more responsive. In our tests, we observed ~60% improvement in load times for a large form when compared with 3.15.0
(and a ~33% improvement over 4.5.0
). Other partners have also observed similar results!

- #7599: Update to latest enketo-core
And more…
Features
- #8074: Support filtering contact search in forms by descendants of the current contact
- #8695: Provide kubernetes configuration and helm charts for production deployments
- #8846: Add the aggregate date to telemetry’s meta
Improvements
- #6177: Improve look and utility of the “About” page
- #7462: Make code for Enketo forms reusable outside cht-core
- #7770: Browser compatibility modal notice for Chrome version 75-90
- #8075: Update default branding to CHT logo
- #8293: Add more debug information to CHT4 Docker Helper
- #8660: Link to Contact’s Profile from Messages tab
Security fixes
- #6530: Add rate limiting to authentication endpoints
- #8843: Add script to bulk change list of users passwords
Performance improvements
Bug fixes
- #6299: Sync status sometimes says all reports synced when there are changes yet to sync
- #6395: Pregnancy registration allows first pregnancy and previous miscarriage risk factors
- #7110: Homeplace in LHS contacts list is not updated on changes
- #7288: Searching for a contact name that has a short value will return no results.
- #7674: Answers to non-relevant questions in forms are not immediately cleared with new Enekto
- #8002: Bullets not displaying properly in form labels
- #8038: Admin app fails to get releases when a different staging server is passed through ENV to API
- #8096: Admin password change breaks CHT, shows wrong error message
- #8102: Crash in enketo-core - TypeError: Cannot read property ’length’ of undefined
- #8118: “Send Message” action shouldn’t send message to user that is logged in
- #8131: Training cards are appearing on top of privacy policies
- #8585: Asterisk for required field in form located on new line when in
summary
group - #8644: cht-healthcheck stays down after ConnectionRestError
- #8674: Cannot create user for contacts created via Place Api
- #8689: Users API not responsive
- #8730: Actionbar does not include links to create people when users have only the can_create_people permission
- #8777: Error recording telemetry on Firefox
- #8778: Error in map/reduce function when aggregating telemetry
- #8790:
/api/deploy-info.version
is not semver valid for final releases - #8796:
api/v1/users-doc-count
doesn’t work as expected - #8868: Session requests failing after upgrade
Technical improvements
- #7167: Upgrade CHT-Conf version in CHT-Core
- #7993: Upgrade to Node 20
- #8357: Flaky test: Enabling/disabling languages should disable a language and enable another
- #8431: Create an e2e test for receiving phone number in SMS
- #8697: Default config: Consolidate all the enketo commons selectors
- #8706: Speed up build execution by breaking up longest running jobs
- #8707: Make update compose URLs action more reliable
- #8708: Remove separate action for “Test nginx and haproxy”
- #8727: Upgrade e2e test fails on MacOS
- #8739: Infinite scrolling e2e test failing with 429 Too Many Requests
- #8743: Upgrade to couchdb 3.3.3
- #8757: Remove standard config
- #8780: Deprecated use of fs.rmdir with recursive
- #8783: Sometimes manifest.json is empty
- #8789: Target aggregates test is passing but shouldn’t be
- #8791: Update deprecated functions used in generate real-world data script
- #8819: The ci-webdriver-default-workflows job is really slow sometimes
- #8855: Integration test
should display deploy-info to authenticated users
is failing on TAG pushes - #8263: Kubernetes configuration, Helm Chart templates and a One-Shot Script that Deploys the CHT Locally on a k3d Cluster
- #8683: Add implicit-arrow-linebreak to eslint
- #8710: Fix flaky test - permission-enabled and incorrect-locale
- #8711: Remove script/deploy dir so it can be re-added under correct author
- #8723: Add new local integration jobs
- #8729: Retry publish on conflict when testing
- #8786: Enable alwaysStrict in webapp tsconfig
- #8795: Remove unused imports and variables
- #8800: Add nyc test coverage for API and Sentinel
- #8808: Add an explanation message to 2 assertions in
routing.spec.js
- #8811: Add coverage to all shared libs tests
Contributors
Thanks to all who committed changes for this release!
- Lore
- Gareth Bowen
- mrjones
- Ben Kiarie
- Tatiana Lépiz
- Joshua Kuestersteffen
- Henok
- Diana Barsan
- Mokhtar
- Jennifer Q
- Fred
- Daniel
- Sugat Bajracharya
Feedback
Was this page helpful?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.