OpenHands Enterprise 0.28.0
Released July 21, 2026.Highlights
- Agent Canvas Embedded — New
/canvasendpoint available; will coexist with current Enterprise interface while teams experiment and provide feedback - Helm Chart Improvements — Better validation and more configuration options for easier installs
- Stability & Maintenance — Focus on fixes and improvements across the platform
Features
OpenHands Cloud (Helm Chart)
- feat(openhands): PLTF-3256 add values.schema.json for chart values validation by @aivong-openhands in https://github.com/OpenHands/OpenHands-Cloud/pull/920
- feat(openhands): PLTF-3257 add NOTES.txt post-install output to the openhands chart by @aivong-openhands in https://github.com/OpenHands/OpenHands-Cloud/pull/922
- feat: mount Agent Canvas under /canvas by @malhotra5 in https://github.com/OpenHands/OpenHands-Cloud/pull/900
- feat: Added environment variable for RUNTIME_API_BASE_URL by @tofarr in https://github.com/OpenHands/OpenHands-Cloud/pull/926
- feat(openhands): PLTF-3258 add fail guard for ingress.enabled without ingress.host by @aivong-openhands in https://github.com/OpenHands/OpenHands-Cloud/pull/923
- feat: route Integrations Hub on the primary OpenHands host by @neubig in https://github.com/OpenHands/OpenHands-Cloud/pull/899
- feat: expose sandbox ephemeral-storage as a configurable field by @ak684 in https://github.com/OpenHands/OpenHands-Cloud/pull/930
Bug Fixes
Enterprise Server
- fix: retry idempotent runtime-api reads once on timeout by @ak684 in https://github.com/OpenHands/OpenHands/pull/15266
- fix(agent-profiles): honor profile settings in cloud launches by @simonrosenberg in https://github.com/OpenHands/OpenHands/pull/15228
- fix: Fix CVE-2026-53571: Update vite to 8.0.16, 7.3.5, 6.4.3 by @mamoodi in https://github.com/OpenHands/OpenHands/pull/14982
- fix: restore automations login redirects by @malhotra5 in https://github.com/OpenHands/OpenHands/pull/15295
- fix: Avoid logout on transient provider get_user errors by @malhotra5 in https://github.com/OpenHands/OpenHands/pull/15305
- fix: treat Integrations Hub as a cross-app route by @malhotra5 in https://github.com/OpenHands/OpenHands/pull/15324
- fix: add managed LLM key refresh endpoint by @neubig in https://github.com/OpenHands/OpenHands/pull/15023
- fix(app-server): restore previous DB pool_size default by @dylan-openhands in https://github.com/OpenHands/OpenHands/pull/15333
- fix: Debounce last_used_at writes in ApiKeyStore.validate_api_key by @tofarr in https://github.com/OpenHands/OpenHands/pull/15331
- fix(jira): allow conversations without repositories by @tofarr in https://github.com/OpenHands/OpenHands/pull/15328
Runtime API
- fix: recycle pooled DB connections and bound pg8000 socket reads by @ak684 in https://github.com/OpenHands/runtime-api/pull/640
- fix(cleanup): paginate deployment listing to stop OOM in cleanup job by @rbren in https://github.com/OpenHands/runtime-api/pull/642
- fix(cleanup): hold archive concurrency slot until worker finishes (#643) by @aivong-openhands in https://github.com/OpenHands/runtime-api/pull/644
OpenHands Cloud (Helm Chart)
- fix(release): make lint pass —app [PLTF-3195] by @dylan-openhands in https://github.com/OpenHands/OpenHands-Cloud/pull/898
- fix: preserve Integrations Hub API auth responses by @neubig in https://github.com/OpenHands/OpenHands-Cloud/pull/933
Maintenance
Runtime API
- perf(cleanup): batch PVC snapshot waits instead of blocking serially by @jlav in https://github.com/OpenHands/runtime-api/pull/648
- build(deps): bump python-multipart from 0.0.27 to 0.0.31 by @dependabot[bot] in https://github.com/OpenHands/runtime-api/pull/652
- build(deps): bump cryptography from 46.0.7 to 48.0.1 by @dependabot[bot] in https://github.com/OpenHands/runtime-api/pull/651
OpenHands Cloud (Helm Chart)
- chore(postgres): remove obsolete emptyDir-to-PVC migration by @jlav in https://github.com/OpenHands/OpenHands-Cloud/pull/919

