OpenHands Enterprise 0.71.1
Released September 23, 2026.Highlights
- Budget Management Overhaul — Comprehensive improvements to budget handling with 14 fixes addressing edge cases in spend tracking, cycle management, member financial listings, and UI clarity.
- Runtime Improvements — Better Docker runtime management with idle eviction, improved npm bundling, and enhanced MCP compatibility across major versions.
- Developer Experience — Added shared VSCode debugger config and local SaaS dev workflow, plus Agent Canvas now served at /canvas in local development.
- Breaking Change — SQLite support removed; PostgreSQL now required for all installations.
Features
Enterprise Server
- feat(frontend): serve Agent Canvas at /canvas in local dev by @tofarr in https://github.com/OpenHands/enterprise/pull/462
- feat: separate budget error messages for credits vs org budgets by @lilagrc in https://github.com/OpenHands/enterprise/pull/355
- feat: add shared VSCode debugger config and local SaaS dev workflow by @tofarr in https://github.com/OpenHands/enterprise/pull/485
Software Agent SDK
- feat: Support Light+ and Solarized Light theme by @davideuler in https://github.com/OpenHands/OpenHands/pull/16632
- feat: tag Agent Canvas telemetry by deployment kind (OSS-13530) by @malhotra5 in https://github.com/OpenHands/OpenHands/pull/17529
Bug Fixes
Enterprise Server - Budget Management (PLTF-3562)
- fix(budgets): keep the once-per-cycle alert latch across a threshold edit by @aivong-openhands in https://github.com/OpenHands/enterprise/pull/416
- fix(budgets): clamp the cycle reset day to the month’s length by @aivong-openhands in https://github.com/OpenHands/enterprise/pull/414
- fix(budgets): page the member financial listing past its first page by @aivong-openhands in https://github.com/OpenHands/enterprise/pull/410
- fix(budgets): escape the member search filter before it reaches ILIKE by @aivong-openhands in https://github.com/OpenHands/enterprise/pull/411
- fix(budgets): stop reporting an unread member spend as zero by @aivong-openhands in https://github.com/OpenHands/enterprise/pull/412
- fix(budgets): never write a member cap below their cycle baseline by @aivong-openhands in https://github.com/OpenHands/enterprise/pull/415
- fix(budgets): create the settings row once when two requests race by @aivong-openhands in https://github.com/OpenHands/enterprise/pull/417
- fix(budgets): remove the confusing Reset button by @ak684 in https://github.com/OpenHands/enterprise/pull/469
- fix(budgets): reject personal workspaces in get_user_budget_row by @aivong-openhands in https://github.com/OpenHands/enterprise/pull/413
- fix(budgets): roll the spend cycle once per period under a row lock by @aivong-openhands in https://github.com/OpenHands/enterprise/pull/403
- fix(budgets): preserve spending when saving budget settings by @ak684 in https://github.com/OpenHands/enterprise/pull/473
- fix(budgets): OHE-3326 remove the organization budget disable toggle by @hieptl in https://github.com/OpenHands/enterprise/pull/479
- fix(budgets): explain why the team cap can exceed the monthly limit by @hieptl in https://github.com/OpenHands/enterprise/pull/477
- fix(budgets): OHE-3331 update budget terminology and default-budget copy by @hieptl in https://github.com/OpenHands/enterprise/pull/478
Enterprise Server - Other Fixes
- fix: OHE-3276 make managed LLM key rotation concurrency-safe by @aivong-openhands in https://github.com/OpenHands/enterprise/pull/440
- fix(frontend): OHE-3181 clarify org vs personal scope in the settings nav and integrations page by @hieptl in https://github.com/OpenHands/enterprise/pull/456
Software Agent SDK
- fix: PLTF-3529 install tini on rpm/zypper base images by @aivong-openhands in https://github.com/OpenHands/software-agent-sdk/pull/5215
- fix(sdk): normalize LLM usage telemetry through a typed adapter by @Charlie-Wang-03 in https://github.com/OpenHands/software-agent-sdk/pull/5029
- fix(sdk): preserve opaque base64 tool payloads by @neubig in https://github.com/OpenHands/software-agent-sdk/pull/5227
- fix(sdk): tolerate orphaned tool observations by @hsusul in https://github.com/OpenHands/software-agent-sdk/pull/4932
- fix(typescript): forward ACP data-dir isolation flag by @onatozmenn in https://github.com/OpenHands/software-agent-sdk/pull/5172
- fix(llm): route gpt-6 family through /v1/responses by default by @juanmichelini in https://github.com/OpenHands/software-agent-sdk/pull/5228
- fix(deps): keep cryptography under 49 on x86_64 macOS by @VascoSch92 in https://github.com/OpenHands/software-agent-sdk/pull/5090
- fix(agent-server): evict idle Docker runtimes by @neubig in https://github.com/OpenHands/software-agent-sdk/pull/5197
- fix(mcp): read persisted MCP tools written under either mcp major by @VascoSch92 in https://github.com/OpenHands/software-agent-sdk/pull/5258
- fix: write and read installation metadata as utf-8 by @naumanAhmed3 in https://github.com/OpenHands/software-agent-sdk/pull/3336
- fix(agent-server): upgrade bundled npm runtimes by @neubig in https://github.com/OpenHands/software-agent-sdk/pull/5262
- fix(ci): let triage and repository writers own readiness by @neubig in https://github.com/OpenHands/software-agent-sdk/pull/5212
- fix: refresh Canvas image packages by @neubig in https://github.com/OpenHands/OpenHands/pull/17633
- fix(chat): restore 11px mode label on the change-agent button by @Harsh23Kashyap in https://github.com/OpenHands/OpenHands/pull/17616
- fix(test): drain MSW’s in-flight requests instead of 30 event-loop turns by @alanhuangyoo in https://github.com/OpenHands/OpenHands/pull/16890
- fix(chat): avoid re-rendering unchanged historical Markdown by @Jokasa7 in https://github.com/OpenHands/OpenHands/pull/17015
- fix: load logs for script automation runs and show their script by @hieptl in https://github.com/OpenHands/OpenHands/pull/17519
- fix(chat): clear a “Failed to send” bubble once its message is echoed back by @hieptl in https://github.com/OpenHands/OpenHands/pull/17639
- fix: show conversation tag keys in sidebar chips by @mvanhorn in https://github.com/OpenHands/OpenHands/pull/16853
- fix(ci): let triage and repository writers own readiness by @neubig in https://github.com/OpenHands/OpenHands/pull/17598
Maintenance
Enterprise Server
- refactor: drop sqlite support and require postgres by @jlav in https://github.com/OpenHands/enterprise/pull/346
- test: add backend budget readiness suite by @saurya in https://github.com/OpenHands/enterprise/pull/360
- test(budgets): PLTF-3562 guard durable override write when LiteLLM sync fails by @aivong-openhands in https://github.com/OpenHands/enterprise/pull/443
- chore(deps): bump openhands-sdk/tools/agent-server to 1.49.5 by @juanmichelini in https://github.com/OpenHands/enterprise/pull/484
Software Agent SDK
- chore(tests): remove deprecated gpt-5.2-codex from tests by @juanmichelini in https://github.com/OpenHands/software-agent-sdk/pull/5233
- docs(review): require live evidence for runtime bug fixes by @neubig in https://github.com/OpenHands/software-agent-sdk/pull/5255
- chore(deps): update unmanaged runtime dependencies by @all-hands-bot in https://github.com/OpenHands/software-agent-sdk/pull/5256
- chore(agent-server): use three-day Debian snapshot window by @all-hands-bot in https://github.com/OpenHands/software-agent-sdk/pull/5198
- chore: remove merged PR artifacts by @all-hands-bot in https://github.com/OpenHands/OpenHands/pull/17591
- chore: consume SDK 1.49.5 and Automation 1.15.0 by @juanmichelini in https://github.com/OpenHands/OpenHands/pull/17650
Breaking Changes
- Enterprise Server: SQLite support removed, PostgreSQL now required by @jlav in https://github.com/OpenHands/enterprise/pull/346
Component Versions
New Contributors
- @Charlie-Wang-03 made their first contribution in https://github.com/OpenHands/software-agent-sdk/pull/5029
- @hsusul made their first contribution in https://github.com/OpenHands/software-agent-sdk/pull/4932
- @naumanAhmed3 made their first contribution in https://github.com/OpenHands/software-agent-sdk/pull/3336
- @harsh-batheja made their first contribution in https://github.com/OpenHands/OpenHands/pull/17225
- @davideuler made their first contribution in https://github.com/OpenHands/OpenHands/pull/16632
- @Jokasa7 made their first contribution in https://github.com/OpenHands/OpenHands/pull/17015

