> ## Documentation Index
> Fetch the complete documentation index at: https://docs.openhands.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# OpenHands Enterprise 0.36.0

> Release notes for OpenHands Enterprise version 0.36.0

# OpenHands Enterprise 0.36.0

Released July 31, 2026.

## Highlights

* **Agent Canvas Now Available** — The Agent Canvas experience is now accessible at `/canvas` and will coexist with the current Enterprise conversation interface
* **Bitbucket Data Center Support** — Added as a supported Git provider for Skills marketplace registrations
* **Security & Performance** — Improved database-pool resiliency, LLM usage-metrics accuracy, and runtime cleanup performance

## Features

#### Enterprise Server

* feat: Expose app and SDK versions in server info by @malhotra5 in [https://github.com/OpenHands/OpenHands/pull/15345](https://github.com/OpenHands/OpenHands/pull/15345)
* feat: surface sandbox start-failure reason in conversation start errors by @ak684 in [https://github.com/OpenHands/OpenHands/pull/14885](https://github.com/OpenHands/OpenHands/pull/14885)
* feat(settings): support title generation profile preference by @simonrosenberg in [https://github.com/OpenHands/OpenHands/pull/15366](https://github.com/OpenHands/OpenHands/pull/15366)
* feat: Allow disabling redis\_rate\_limiter via empty RATE\_LIMIT\_AUTH\_WINDOWS by @tofarr in [https://github.com/OpenHands/enterprise/pull/97](https://github.com/OpenHands/enterprise/pull/97)
* feat: Enforce CSP via middleware (OHE-2815) by @tofarr in [https://github.com/OpenHands/enterprise/pull/94](https://github.com/OpenHands/enterprise/pull/94)

#### Software Agent SDK

* feat: surface plugin contents in the agent-server plugins API by @hieptl in [https://github.com/OpenHands/software-agent-sdk/pull/4103](https://github.com/OpenHands/software-agent-sdk/pull/4103)
* Lazily hydrate persisted conversations by @neubig in [https://github.com/OpenHands/software-agent-sdk/pull/4100](https://github.com/OpenHands/software-agent-sdk/pull/4100)
* feat(agent-server): support deployment context on profile launches by @simonrosenberg in [https://github.com/OpenHands/software-agent-sdk/pull/4030](https://github.com/OpenHands/software-agent-sdk/pull/4030)
* feat(agent-server): sanitized product-analytics telemetry with split consent policy by @VascoSch92 in [https://github.com/OpenHands/software-agent-sdk/pull/4172](https://github.com/OpenHands/software-agent-sdk/pull/4172)
* feat: add opt-in persistent memory across sessions by @hieptl in [https://github.com/OpenHands/software-agent-sdk/pull/4178](https://github.com/OpenHands/software-agent-sdk/pull/4178)
* feat(marketplace): auto-load standalone marketplace skills by @ak684 in [https://github.com/OpenHands/software-agent-sdk/pull/4176](https://github.com/OpenHands/software-agent-sdk/pull/4176)
* feat(mcp): subscribe to tools/list\_changed for progressive-disclosure servers by @neubig in [https://github.com/OpenHands/software-agent-sdk/pull/3894](https://github.com/OpenHands/software-agent-sdk/pull/3894)
* feat(agent-server): persist parent/child conversation relationships by @VascoSch92 in [https://github.com/OpenHands/software-agent-sdk/pull/4188](https://github.com/OpenHands/software-agent-sdk/pull/4188)
* feat: expose agent\_context.load\_memory in the agent-settings schema by @hieptl in [https://github.com/OpenHands/software-agent-sdk/pull/4205](https://github.com/OpenHands/software-agent-sdk/pull/4205)
* feat: publish typed Agent Server OpenAPI contract by @neubig in [https://github.com/OpenHands/software-agent-sdk/pull/4229](https://github.com/OpenHands/software-agent-sdk/pull/4229)
* feat: automate TypeScript client contract handoff by @neubig in [https://github.com/OpenHands/software-agent-sdk/pull/4234](https://github.com/OpenHands/software-agent-sdk/pull/4234)
* feat(agent-server): add MCP settings CRUD endpoints by @neubig in [https://github.com/OpenHands/software-agent-sdk/pull/4294](https://github.com/OpenHands/software-agent-sdk/pull/4294)
* feat: add MCPServer.enabled to switch a server off without removing it by @hieptl in [https://github.com/OpenHands/software-agent-sdk/pull/4307](https://github.com/OpenHands/software-agent-sdk/pull/4307)

#### Runtime API

* feat(cleanup): paginate cleanup\_stuck\_pvcs PVC list by @tofarr in [https://github.com/OpenHands/runtime-api/pull/658](https://github.com/OpenHands/runtime-api/pull/658)
* feat: surface pod scheduling/image failure reason in sandbox status by @ak684 in [https://github.com/OpenHands/runtime-api/pull/615](https://github.com/OpenHands/runtime-api/pull/615)

#### Automation

* feat: add automation server info endpoint by @malhotra5 in [https://github.com/OpenHands/automation/pull/248](https://github.com/OpenHands/automation/pull/248)
* feat: capture automation telemetry events by @malhotra5 in [https://github.com/OpenHands/automation/pull/254](https://github.com/OpenHands/automation/pull/254)
* feat: expose requested automation event types by @malhotra5 in [https://github.com/OpenHands/automation/pull/260](https://github.com/OpenHands/automation/pull/260)
* feat: expose automation capabilities and preflight validation by @hieptl in [https://github.com/OpenHands/automation/pull/270](https://github.com/OpenHands/automation/pull/270)

#### OpenHands Cloud (Helm Chart)

* feat: enable the pending-runtime reaper on OHE installs by @ak684 in [https://github.com/OpenHands/OpenHands-Cloud/pull/931](https://github.com/OpenHands/OpenHands-Cloud/pull/931)
* feat(charts): add external S3 file store support by @jlav in [https://github.com/OpenHands/OpenHands-Cloud/pull/946](https://github.com/OpenHands/OpenHands-Cloud/pull/946)
* feat(openhands): PLTF-3258 re-add fail guard for postgresql disabled without external database by @aivong-openhands in [https://github.com/OpenHands/OpenHands-Cloud/pull/948](https://github.com/OpenHands/OpenHands-Cloud/pull/948)
* feat: add SMTP and budget maintenance deployment wiring by @saurya in [https://github.com/OpenHands/OpenHands-Cloud/pull/780](https://github.com/OpenHands/OpenHands-Cloud/pull/780)
* feat: wire Agent Canvas through Replicated/Helm installs by @lilagrc in [https://github.com/OpenHands/OpenHands-Cloud/pull/954](https://github.com/OpenHands/OpenHands-Cloud/pull/954)
* feat(rustfs): PLTF-1250 optional in-cluster object store by @aivong-openhands in [https://github.com/OpenHands/OpenHands-Cloud/pull/983](https://github.com/OpenHands/OpenHands-Cloud/pull/983)
* feat(charts): adopt kubernetes recommended labels by @jlav in [https://github.com/OpenHands/OpenHands-Cloud/pull/960](https://github.com/OpenHands/OpenHands-Cloud/pull/960)
* feat(dns): add a simple single-wildcard hostname layout by @jlav in [https://github.com/OpenHands/OpenHands-Cloud/pull/985](https://github.com/OpenHands/OpenHands-Cloud/pull/985)

## Bug Fixes

#### Enterprise Server

* fix(app-server): support Bitbucket Data Center personal repos as marketplace sources by @ak684 in [https://github.com/OpenHands/OpenHands/pull/15334](https://github.com/OpenHands/OpenHands/pull/15334)
* fix(frontend): add jittered rate-limit backoff by @aivong-openhands in [https://github.com/OpenHands/OpenHands/pull/15236](https://github.com/OpenHands/OpenHands/pull/15236)
* fix: upgraded instances with no superadmin by @tofarr in [https://github.com/OpenHands/OpenHands/pull/15349](https://github.com/OpenHands/OpenHands/pull/15349)
* fix: clear member key on managed profile switch by @saurya in [https://github.com/OpenHands/OpenHands/pull/15356](https://github.com/OpenHands/OpenHands/pull/15356)
* fix(enterprise): avoid rotating keys on LiteLLM non-auth errors by @saurya in [https://github.com/OpenHands/OpenHands/pull/15267](https://github.com/OpenHands/OpenHands/pull/15267)
* fix(app-server): persist combined LLM usage metrics across all usage buckets by @ak684 in [https://github.com/OpenHands/OpenHands/pull/15354](https://github.com/OpenHands/OpenHands/pull/15354)
* fix(app-server): prevent webhook callbacks from starving the database pool by @ak684 in [https://github.com/OpenHands/OpenHands/pull/15379](https://github.com/OpenHands/OpenHands/pull/15379)
* fix: filter automation event forwarding by requested types by @malhotra5 in [https://github.com/OpenHands/OpenHands/pull/15388](https://github.com/OpenHands/OpenHands/pull/15388)
* fix: enforce cloud analytics consent from TOS by @malhotra5 in [https://github.com/OpenHands/enterprise/pull/79](https://github.com/OpenHands/enterprise/pull/79)
* fix(ci): use private bot PAT for pr-artifacts cleanup job by @jlav in [https://github.com/OpenHands/enterprise/pull/88](https://github.com/OpenHands/enterprise/pull/88)
* fix(enterprise): atomically migrate legacy empty tool settings by @simonrosenberg in [https://github.com/OpenHands/enterprise/pull/12](https://github.com/OpenHands/enterprise/pull/12)
* fix(settings): accept legacy detached MCP configs by @neubig in [https://github.com/OpenHands/enterprise/pull/93](https://github.com/OpenHands/enterprise/pull/93)

#### Software Agent SDK

* fix(sdk): rehydrate persisted subscription LLMs by @lufen in [https://github.com/OpenHands/software-agent-sdk/pull/4092](https://github.com/OpenHands/software-agent-sdk/pull/4092)
* fix(observability): stamp tool\_call\_id onto the TOOL span by @simonrosenberg in [https://github.com/OpenHands/software-agent-sdk/pull/4010](https://github.com/OpenHands/software-agent-sdk/pull/4010)
* Fix REST API contract summary deduplication by @enyst in [https://github.com/OpenHands/software-agent-sdk/pull/3918](https://github.com/OpenHands/software-agent-sdk/pull/3918)
* fix(acp): bound ACP server startup with a timeout by @rsd-darshan in [https://github.com/OpenHands/software-agent-sdk/pull/4126](https://github.com/OpenHands/software-agent-sdk/pull/4126)
* fix(visualizer): show per-request token usage alongside cumulative by @luciobaiocchi in [https://github.com/OpenHands/software-agent-sdk/pull/4146](https://github.com/OpenHands/software-agent-sdk/pull/4146)
* fix(agent): apply filter\_tools\_regex to runtime tools by @VascoSch92 in [https://github.com/OpenHands/software-agent-sdk/pull/4186](https://github.com/OpenHands/software-agent-sdk/pull/4186)
* fix(sdk): accept boolean JSON Schema nodes in \_process\_schema\_node by @VascoSch92 in [https://github.com/OpenHands/software-agent-sdk/pull/4185](https://github.com/OpenHands/software-agent-sdk/pull/4185)
* fix(sdk): mask all registered secrets, not only exported ones by @VascoSch92 in [https://github.com/OpenHands/software-agent-sdk/pull/4191](https://github.com/OpenHands/software-agent-sdk/pull/4191)
* fix(acp): persist rotated Codex credentials by @simonrosenberg in [https://github.com/OpenHands/software-agent-sdk/pull/4124](https://github.com/OpenHands/software-agent-sdk/pull/4124)
* fix(settings): restore MCP schema migration by @neubig in [https://github.com/OpenHands/software-agent-sdk/pull/4013](https://github.com/OpenHands/software-agent-sdk/pull/4013)
* fix(terminal): submit multiline PowerShell commands on Windows by @VascoSch92 in [https://github.com/OpenHands/software-agent-sdk/pull/4155](https://github.com/OpenHands/software-agent-sdk/pull/4155)
* fix(agent-server): default bind host to loopback without a session API key by @neubig in [https://github.com/OpenHands/software-agent-sdk/pull/4180](https://github.com/OpenHands/software-agent-sdk/pull/4180)
* fix: parallel tool metrics by @luciobaiocchi in [https://github.com/OpenHands/software-agent-sdk/pull/4193](https://github.com/OpenHands/software-agent-sdk/pull/4193)
* fix(agent-server): /api/vscode/url without base\_url advertises the configured VSCode port by @harish-chandramowli in [https://github.com/OpenHands/software-agent-sdk/pull/4181](https://github.com/OpenHands/software-agent-sdk/pull/4181)
* fix(agent-server): require credential reactivation before cold load by @simonrosenberg in [https://github.com/OpenHands/software-agent-sdk/pull/4198](https://github.com/OpenHands/software-agent-sdk/pull/4198)
* fix(sdk): reject unknown event parents on append by @hxaxd in [https://github.com/OpenHands/software-agent-sdk/pull/4089](https://github.com/OpenHands/software-agent-sdk/pull/4089)
* fix(agent-server): redact LLM & condenser secrets in download-trajectory by @smolpaws in [https://github.com/OpenHands/software-agent-sdk/pull/4217](https://github.com/OpenHands/software-agent-sdk/pull/4217)
* fix: honor the stored memory preference on profile launches by @hieptl in [https://github.com/OpenHands/software-agent-sdk/pull/4223](https://github.com/OpenHands/software-agent-sdk/pull/4223)
* fix(agent-server): include server\_base\_path in the advertised VSCode URL by @harish-chandramowli in [https://github.com/OpenHands/software-agent-sdk/pull/4222](https://github.com/OpenHands/software-agent-sdk/pull/4222)
* fix(sdk): mark corrective nudge as environment event by @Sehlani042 in [https://github.com/OpenHands/software-agent-sdk/pull/3954](https://github.com/OpenHands/software-agent-sdk/pull/3954)
* fix(security): authenticate WebSockets outside URLs by @simonrosenberg in [https://github.com/OpenHands/software-agent-sdk/pull/4279](https://github.com/OpenHands/software-agent-sdk/pull/4279)
* fix(llm): generalize model capability resolution by @neubig in [https://github.com/OpenHands/software-agent-sdk/pull/4200](https://github.com/OpenHands/software-agent-sdk/pull/4200)
* fix(security): stop logging runtime command contents by @simonrosenberg in [https://github.com/OpenHands/software-agent-sdk/pull/4280](https://github.com/OpenHands/software-agent-sdk/pull/4280)

#### Runtime API

* fix(cleanup): archive with actual conversation IDs by @simonrosenberg in [https://github.com/OpenHands/runtime-api/pull/654](https://github.com/OpenHands/runtime-api/pull/654)
* fix: reap runtimes stuck Pending/unschedulable by @ak684 in [https://github.com/OpenHands/runtime-api/pull/655](https://github.com/OpenHands/runtime-api/pull/655)
* fix: Optimize idle runtime cleanup pod listing by @tofarr in [https://github.com/OpenHands/runtime-api/pull/662](https://github.com/OpenHands/runtime-api/pull/662)

#### Automation

* fix: add server versions to telemetry by @malhotra5 in [https://github.com/OpenHands/automation/pull/256](https://github.com/OpenHands/automation/pull/256)
* fix: normalize MCP config shapes in automation presets by @malhotra5 in [https://github.com/OpenHands/automation/pull/257](https://github.com/OpenHands/automation/pull/257)
* fix: attribute PostHog events to automation actors by @neubig in [https://github.com/OpenHands/automation/pull/265](https://github.com/OpenHands/automation/pull/265)
* fix(security): keep injected secrets out of commands by @simonrosenberg in [https://github.com/OpenHands/automation/pull/267](https://github.com/OpenHands/automation/pull/267)

#### OpenHands Cloud (Helm Chart)

* fix(openhands): namespace-qualify bundled litellm url for sandboxes by @jlav in [https://github.com/OpenHands/OpenHands-Cloud/pull/937](https://github.com/OpenHands/OpenHands-Cloud/pull/937)
* fix(openhands): validate filestore values and test external S3 env by @jlav in [https://github.com/OpenHands/OpenHands-Cloud/pull/947](https://github.com/OpenHands/OpenHands-Cloud/pull/947)
* fix(openhands): PLTF-3258 scope render guards to enabled releases by @aivong-openhands in [https://github.com/OpenHands/OpenHands-Cloud/pull/950](https://github.com/OpenHands/OpenHands-Cloud/pull/950)
* fix: increase Replicated MinIO resource headroom by @ak684 in [https://github.com/OpenHands/OpenHands-Cloud/pull/970](https://github.com/OpenHands/OpenHands-Cloud/pull/970)
* fix(integrations-hub): default admin.emails to empty by @tofarr in [https://github.com/OpenHands/OpenHands-Cloud/pull/976](https://github.com/OpenHands/OpenHands-Cloud/pull/976)
* fix(budget-maintenance): disable the budget maintenance cronjob by default by @jlav in [https://github.com/OpenHands/OpenHands-Cloud/pull/978](https://github.com/OpenHands/OpenHands-Cloud/pull/978)
* fix(minio): PLTF-1250 stop the bundled bucket job purging data on every upgrade by @aivong-openhands in [https://github.com/OpenHands/OpenHands-Cloud/pull/981](https://github.com/OpenHands/OpenHands-Cloud/pull/981)
* fix(integrations-hub): derive public base URL by @neubig in [https://github.com/OpenHands/OpenHands-Cloud/pull/963](https://github.com/OpenHands/OpenHands-Cloud/pull/963)
* fix(litellm): PLTF-3363 bump pinned litellm image to 1.93.0 by @aivong-openhands in [https://github.com/OpenHands/OpenHands-Cloud/pull/987](https://github.com/OpenHands/OpenHands-Cloud/pull/987)
* fix(auth): extend Keycloak identity provider timeout by @ak684 in [https://github.com/OpenHands/OpenHands-Cloud/pull/975](https://github.com/OpenHands/OpenHands-Cloud/pull/975)
* fix(troubleshoot): PLTF-3264 unblock support bundle exec collectors on Helm installs by @aivong-openhands in [https://github.com/OpenHands/OpenHands-Cloud/pull/989](https://github.com/OpenHands/OpenHands-Cloud/pull/989)
* fix(replicated): PLTF-3264 include app and license info in support bundles by @aivong-openhands in [https://github.com/OpenHands/OpenHands-Cloud/pull/992](https://github.com/OpenHands/OpenHands-Cloud/pull/992)
* fix(replicated): PLTF-3264 pass the SDK its pull secret in map form by @aivong-openhands in [https://github.com/OpenHands/OpenHands-Cloud/pull/996](https://github.com/OpenHands/OpenHands-Cloud/pull/996)

## Maintenance

#### Enterprise Server

* test: PLTF-1269 split enterprise test\_user\_model into focused per-model tests by @aivong-openhands in [https://github.com/OpenHands/OpenHands/pull/13997](https://github.com/OpenHands/OpenHands/pull/13997)
* chore: Suppress verbose Laminar info logs by @tofarr in [https://github.com/OpenHands/OpenHands/pull/15374](https://github.com/OpenHands/OpenHands/pull/15374)
* chore: Unify release-please into a single semver release line by @mamoodi in [https://github.com/OpenHands/enterprise/pull/76](https://github.com/OpenHands/enterprise/pull/76)

#### Software Agent SDK

* chore(deps): bump starlette from 1.0.1 to 1.3.1 by @dependabot\[bot] in [https://github.com/OpenHands/software-agent-sdk/pull/4140](https://github.com/OpenHands/software-agent-sdk/pull/4140)
* chore(deps): bump pyjwt from 2.12.0 to 2.13.0 by @dependabot\[bot] in [https://github.com/OpenHands/software-agent-sdk/pull/4138](https://github.com/OpenHands/software-agent-sdk/pull/4138)
* chore(deps): bump tornado from 6.5.5 to 6.5.7 by @dependabot\[bot] in [https://github.com/OpenHands/software-agent-sdk/pull/4139](https://github.com/OpenHands/software-agent-sdk/pull/4139)
* chore(deps): bump python-multipart from 0.0.27 to 0.0.31 by @dependabot\[bot] in [https://github.com/OpenHands/software-agent-sdk/pull/4141](https://github.com/OpenHands/software-agent-sdk/pull/4141)
* chore(deps): bump cryptography from 46.0.7 to 48.0.1 by @dependabot\[bot] in [https://github.com/OpenHands/software-agent-sdk/pull/4142](https://github.com/OpenHands/software-agent-sdk/pull/4142)
* bump laminar to latest version, fix compat issues by @dinmukhamedm in [https://github.com/OpenHands/software-agent-sdk/pull/4179](https://github.com/OpenHands/software-agent-sdk/pull/4179)
* perf(agent-server): index conversation execution status for search/count by @VascoSch92 in [https://github.com/OpenHands/software-agent-sdk/pull/4201](https://github.com/OpenHands/software-agent-sdk/pull/4201)
* perf(agent-server): evict idle conversations from memory after a configurable TTL by @VascoSch92 in [https://github.com/OpenHands/software-agent-sdk/pull/4202](https://github.com/OpenHands/software-agent-sdk/pull/4202)
* Import SkillInfo from the SDK instead of redefining it in skills\_router by @onatozmenn in [https://github.com/OpenHands/software-agent-sdk/pull/4277](https://github.com/OpenHands/software-agent-sdk/pull/4277)
* Move duplicated LLM option blocks into common.py by @onatozmenn in [https://github.com/OpenHands/software-agent-sdk/pull/4276](https://github.com/OpenHands/software-agent-sdk/pull/4276)
* Share the Gemini edit/write\_file diff rendering by @onatozmenn in [https://github.com/OpenHands/software-agent-sdk/pull/4278](https://github.com/OpenHands/software-agent-sdk/pull/4278)

#### Runtime API

* perf(cleanup): page snapshot\_and\_delete\_idle\_pvcs over bound PVCs by @tofarr in [https://github.com/OpenHands/runtime-api/pull/660](https://github.com/OpenHands/runtime-api/pull/660)
* build(deps): bump starlette from 0.49.1 to 1.3.1 by @dependabot\[bot] in [https://github.com/OpenHands/runtime-api/pull/650](https://github.com/OpenHands/runtime-api/pull/650)

#### Automation

* chore: Add missing index on automation\_runs.automation\_id by @aivong-openhands in [https://github.com/OpenHands/automation/pull/250](https://github.com/OpenHands/automation/pull/250)

#### OpenHands Cloud (Helm Chart)

* ci: PLTF-3287 sticky comment notify on openhands chart appVersion drift by @aivong-openhands in [https://github.com/OpenHands/OpenHands-Cloud/pull/951](https://github.com/OpenHands/OpenHands-Cloud/pull/951)
* chore(openhands-secrets): remove no-op config keys by @jlav in [https://github.com/OpenHands/OpenHands-Cloud/pull/871](https://github.com/OpenHands/OpenHands-Cloud/pull/871)
* chore(openhands): remove no-op values file keys by @jlav in [https://github.com/OpenHands/OpenHands-Cloud/pull/869](https://github.com/OpenHands/OpenHands-Cloud/pull/869)
* chore(openhands): pin redis master resources to effective values by @jlav in [https://github.com/OpenHands/OpenHands-Cloud/pull/868](https://github.com/OpenHands/OpenHands-Cloud/pull/868)
* revert: re-enable budget maintenance by default by @saurya in [https://github.com/OpenHands/OpenHands-Cloud/pull/982](https://github.com/OpenHands/OpenHands-Cloud/pull/982)

## Full Changelog

* [Enterprise Server releases](https://github.com/OpenHands/enterprise/releases)
* [Software Agent SDK releases](https://github.com/OpenHands/software-agent-sdk/releases)
* [Runtime API releases](https://github.com/OpenHands/runtime-api/releases)
* [Automation releases](https://github.com/OpenHands/automation/releases)
* [OpenHands Cloud releases](https://github.com/OpenHands/OpenHands-Cloud/releases)
