1.28.0 (2026-10-19)
<!-- Release notes generated using configuration in .github/release.yml at main -->What's Changed
Features
- feat(verify-openhands): executable known bugs and a repeatable fix proof by @enyst in https://github.com/OpenHands/OpenHands/pull/18348
- feat(i18n): add Bahasa Indonesia (id) locale by @analisaperlengkapan in https://github.com/OpenHands/OpenHands/pull/18067
- feat: add close control to Getting started checklist by @DevinVinson in https://github.com/OpenHands/OpenHands/pull/18185
- feat(secrets): let the agent request a secret through an in-conversation modal by @VascoSch92 in https://github.com/OpenHands/OpenHands/pull/18408
- feat(verify-openhands): adopt the shared known-bug contract by @enyst in https://github.com/OpenHands/OpenHands/pull/18355
- feat(chat): smooth, reading-pace streaming with word fade-in by @VascoSch92 in https://github.com/OpenHands/OpenHands/pull/18491
- feat(secrets): ask for requested secrets inline in the chat by @VascoSch92 in https://github.com/OpenHands/OpenHands/pull/18575
- feat(automations): hide templates that overlap built-in integrations on self-hosted instances (OHE-3611) by @hieptl in https://github.com/OpenHands/OpenHands/pull/18565
Bug Fixes
- fix(lint): use semantic colors for Git Sync feedback by @enyst in https://github.com/OpenHands/OpenHands/pull/18346
- fix(themes): make backend connection feedback readable by @enyst in https://github.com/OpenHands/OpenHands/pull/18321
- fix(themes): use readable validation and service errors by @enyst in https://github.com/OpenHands/OpenHands/pull/18330
- fix(markdown): wrap long table cells instead of stretching the table by @jpshackelford in https://github.com/OpenHands/OpenHands/pull/18357
- fix(settings): use dedicated taken-name messages for llm and agent profiles by @lx3133584 in https://github.com/OpenHands/OpenHands/pull/18411
- fix(automations): show the API's message when an automation edit fails by @enyst in https://github.com/OpenHands/OpenHands/pull/18391
- fix(settings): show the active backend's values after a backend switch by @enyst in https://github.com/OpenHands/OpenHands/pull/18401
- fix(automations): leave draft test automations out of the overview tiles by @enyst in https://github.com/OpenHands/OpenHands/pull/18393
- fix(automations): make the draft delete confirmation a real dialog by @enyst in https://github.com/OpenHands/OpenHands/pull/18394
- fix(chat): keep confirmation button labels on one line by @enyst in https://github.com/OpenHands/OpenHands/pull/18397
- fix(files): fit the file discovery dialog on phone screens by @enyst in https://github.com/OpenHands/OpenHands/pull/18398
- fix(modals): move focus into ModalBackdrop dialogs and keep it there by @enyst in https://github.com/OpenHands/OpenHands/pull/18400
- fix(themes): make Home mode toggle labels readable in light themes by @enyst in https://github.com/OpenHands/OpenHands/pull/18402
- fix(themes): make toast text readable in light themes by @enyst in https://github.com/OpenHands/OpenHands/pull/18403
- fix(automations): keep the setup composer out of the Home draft by @enyst in https://github.com/OpenHands/OpenHands/pull/18392
- fix(automations): keep the setup handoff on its own conversation by @enyst in https://github.com/OpenHands/OpenHands/pull/18385
- fix(settings): preserve the new LLM profile form values by @enyst in https://github.com/OpenHands/OpenHands/pull/18422
- fix(chat): hold a message until the cloud runtime is reachable instead of failing it (OHE-3314) by @hieptl in https://github.com/OpenHands/OpenHands/pull/18443
- fix(conversation): wake the paused cloud sandbox from Resume instead of calling its runtime (OHE-3407) by @hieptl in https://github.com/OpenHands/OpenHands/pull/18442
- fix(settings): make switches keyboard accessible by @enyst in https://github.com/OpenHands/OpenHands/pull/18370
- fix(automations): show the reason when a draft save is refused by @enyst in https://github.com/OpenHands/OpenHands/pull/18462
- fix(automations): use the theme error color in the setup draft bar by @enyst in https://github.com/OpenHands/OpenHands/pull/18463
- fix(agent-profiles): keep the profile on per-launch LLM picks and in /new by @simonrosenberg in https://github.com/OpenHands/OpenHands/pull/18419
- fix(automations): keep the setup error pill at 4.5:1 on every theme by @enyst in https://github.com/OpenHands/OpenHands/pull/18482
- fix(lint): theme context usage feedback colors by @enyst in https://github.com/OpenHands/OpenHands/pull/18431
- fix(themes): use readable backend focus and valid scrim opacity by @enyst in https://github.com/OpenHands/OpenHands/pull/18327
- fix(backends): cap edit backend dialog width to viewport and enable vertical scrolling by @lx3133584 in https://github.com/OpenHands/OpenHands/pull/18220
- fix(theme): keep composer context feedback readable by @enyst in https://github.com/OpenHands/OpenHands/pull/18504
- fix(theme): make consent backend scope readable by @enyst in https://github.com/OpenHands/OpenHands/pull/18508
- fix(theme): keep model profile messages readable by @enyst in https://github.com/OpenHands/OpenHands/pull/18510
- fix: list Azure DevOps repositories from every organization by @ak684 in https://github.com/OpenHands/OpenHands/pull/18479
- fix(onboarding): open the Auth Providers page from the optional SAML step by @hieptl in https://github.com/OpenHands/OpenHands/pull/18447
- fix(lint): theme critic result text and scores by @enyst in https://github.com/OpenHands/OpenHands/pull/18535
- fix(settings): show the server's reason when an LLM profile save fails by @enyst in https://github.com/OpenHands/OpenHands/pull/18549
- fix(markdown): keep syntax-highlighter tokens inline by @enyst in https://github.com/OpenHands/OpenHands/pull/18542
- fix: fail the launch when the automation backend exits during startup by @enyst in https://github.com/OpenHands/OpenHands/pull/18311