> ## 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.

# Release Notes

> Release notes for OpenHands Enterprise

## 0.36.1

This patch release was focused on stability fixes for the Enterprise Server, including preserving user sessions during transient network failures and giving deployments the ability to disable email changes.

### Enterprise Server

#### Bug Fixes

* fix(auth): preserve sessions during transient network failures by @ak684 in [https://github.com/OpenHands/enterprise/pull/81](https://github.com/OpenHands/enterprise/pull/81)
* fix: allow deployments to disable email changes by @ak684 in [https://github.com/OpenHands/enterprise/pull/110](https://github.com/OpenHands/enterprise/pull/110)
* fix(enterprise): fix broken import in run\_budget\_maintenance.py by @saurya in [https://github.com/OpenHands/enterprise/pull/80](https://github.com/OpenHands/enterprise/pull/80)

## 0.36.0

This release makes the **Agent Canvas** experience available to users at `your-openhands-instance.acmeco.com/canvas`.  As mentioned in 0.28.0 release notes, Agent Canvas will coexist with the current OpenHands Enterprise conversation interface for the time being. A future release will announce the deprecation date for the current interface, after which Agent Canvas will become the default UI.

Additionally, this release improves security and adds support for Bitbucket Data Center as a supported Git provider for Skills marketplace registrations. Improvements to database-pool resiliency, LLM usage-metrics accuracy, and runtime cleanup performance have also made it into this release.

### Enterprise Server

#### Features

* 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)

#### Bug Fixes

* 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)

#### Maintenance

* 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

#### Features

* 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)

#### Bug Fixes

* 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)

#### Maintenance

* 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

#### Features

* 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)

#### Bug Fixes

* 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)

#### Maintenance

* 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

#### Features

* 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)

#### Bug Fixes

* 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)

#### Maintenance

* 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)

#### Features

* 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

* 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

* 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)

## 0.28.0

This release adds the embedded **Agent Canvas** endpoint (mounted under `your-openhands-instance.acmeco.com/canvas`). Agent Canvas will coexist with the current OpenHands Enterprise conversation interface for the time being. A future release will announce the deprecation date for the current interface, after which Agent Canvas will become the default UI; in the meantime, teams can begin experimenting with the new Agent Canvas experience and share feedback with the OpenHands product teams.

Additionally, this release brings better Helm chart validation and more configuration options to make installs easier to configure and validate. The rest of the release is focused on stability and maintenance fixes.

### Enterprise Server

#### Bug Fixes

* fix: retry idempotent runtime-api reads once on timeout by @ak684 in [https://github.com/OpenHands/OpenHands/pull/15266](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](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](https://github.com/OpenHands/OpenHands/pull/14982)
* fix: restore automations login redirects by @malhotra5 in [https://github.com/OpenHands/OpenHands/pull/15295](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](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](https://github.com/OpenHands/OpenHands/pull/15324)
* fix: add managed LLM key refresh endpoint by @neubig in [https://github.com/OpenHands/OpenHands/pull/15023](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](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](https://github.com/OpenHands/OpenHands/pull/15331)
* fix(jira): allow conversations without repositories by @tofarr in [https://github.com/OpenHands/OpenHands/pull/15328](https://github.com/OpenHands/OpenHands/pull/15328)

***

### Runtime API

#### Bug Fixes

* fix: recycle pooled DB connections and bound pg8000 socket reads by @ak684 in [https://github.com/OpenHands/runtime-api/pull/640](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](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](https://github.com/OpenHands/runtime-api/pull/644)

#### Maintenance

* perf(cleanup): batch PVC snapshot waits instead of blocking serially by @jlav in [https://github.com/OpenHands/runtime-api/pull/648](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](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](https://github.com/OpenHands/runtime-api/pull/651)

***

### OpenHands Cloud (Helm Chart)

#### Features

* feat(openhands): PLTF-3256 add values.schema.json for chart values validation by @aivong-openhands in [https://github.com/OpenHands/OpenHands-Cloud/pull/920](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](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](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](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](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](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](https://github.com/OpenHands/OpenHands-Cloud/pull/930)

#### Bug Fixes

* fix(release): make lint pass --app \[PLTF-3195] by @dylan-openhands in [https://github.com/OpenHands/OpenHands-Cloud/pull/898](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](https://github.com/OpenHands/OpenHands-Cloud/pull/933)

#### Maintenance

* chore(postgres): remove obsolete emptyDir-to-PVC migration by @jlav in [https://github.com/OpenHands/OpenHands-Cloud/pull/919](https://github.com/OpenHands/OpenHands-Cloud/pull/919)

## 0.24.0

This release introduces a **Usage & Monitoring** dashboard, giving organization administrators visibility into AI spend and adoption across the organization. This dashboard provides high-level reports showing conversation counts, active sessions, and cost-per-conversation metrics, along with detailed conversation, user, and model-level breakdowns to help teams measure efficiency and ROI.

The new **Budgets** feature -- also enabled for organization admins -- enables org-level spending limits with configurable alert thresholds (e.g., 80%, 90%, 100%) delivered via email or Slack. Default budgets and override budgets allow administrators to manage individual user spending limits.

The **Settings → Agent** page enables the use of third-party agents -- like Claude Code or Codex -- on OpenHands Enterprise sandboxes through the ACP (Agent Canvas Protocol) framework.

Several additional Jira Cloud and Data CEnter enhancements have been made to improve overall integration experience.

### Enterprise Server

#### Features

* feat: implement semantic file chunking using tree-sitter AST parsing by @ysinghc in [https://github.com/OpenHands/OpenHands/pull/14699](https://github.com/OpenHands/OpenHands/pull/14699)
* feat(org): Add organization conversation admin dashboard by @saurya in [https://github.com/OpenHands/OpenHands/pull/14846](https://github.com/OpenHands/OpenHands/pull/14846)
* feat(app-server): capture production workspace state — initial snapshot at start + archive before delete (APP-2403) by @simonrosenberg in [https://github.com/OpenHands/OpenHands/pull/14953](https://github.com/OpenHands/OpenHands/pull/14953)
* feat(device-verify): align warning, button color, and add workspace dropdown by @tofarr in [https://github.com/OpenHands/OpenHands/pull/15031](https://github.com/OpenHands/OpenHands/pull/15031)
* feat(enterprise/auth): add super roles via user.role\_id with permission fallback by @chuckbutkus in [https://github.com/OpenHands/OpenHands/pull/14937](https://github.com/OpenHands/OpenHands/pull/14937)
* feat(org): expose caller permissions on GET /organizations/{id}/me by @VascoSch92 in [https://github.com/OpenHands/OpenHands/pull/15048](https://github.com/OpenHands/OpenHands/pull/15048)
* feat(api-keys): add optional active window (not\_before & expires\_at) by @tofarr in [https://github.com/OpenHands/OpenHands/pull/15085](https://github.com/OpenHands/OpenHands/pull/15085)
* feat(app-server): add repo/branch to Laminar trace metadata by @simonrosenberg in [https://github.com/OpenHands/OpenHands/pull/15059](https://github.com/OpenHands/OpenHands/pull/15059)
* feat: add parallel tool calls (tool\_concurrency\_limit) to agent settings by @VascoSch92 in [https://github.com/OpenHands/OpenHands/pull/14929](https://github.com/OpenHands/OpenHands/pull/14929)
* feat(api-keys): make 'unbound' org scope an explicit, first-class option by @tofarr in [https://github.com/OpenHands/OpenHands/pull/15096](https://github.com/OpenHands/OpenHands/pull/15096)
* feat(jira-dc): fix the integration panel so members get guidance, not the admin setup form by @ak684 in [https://github.com/OpenHands/OpenHands/pull/15040](https://github.com/OpenHands/OpenHands/pull/15040)
* feat: Add dynamic marketplace support for plugin registration by @HeyItsChloe in [https://github.com/OpenHands/OpenHands/pull/14887](https://github.com/OpenHands/OpenHands/pull/14887)
* feat(saas-auth): accept api\_key cookie as a fallback credential by @tofarr in [https://github.com/OpenHands/OpenHands/pull/15101](https://github.com/OpenHands/OpenHands/pull/15101)
* feat(enterprise/auth): super-admin management endpoint (grant/revoke/list) by @jpshackelford in [https://github.com/OpenHands/OpenHands/pull/15006](https://github.com/OpenHands/OpenHands/pull/15006)
* feat: rename admin dashboard to usage & monitoring by @saurya in [https://github.com/OpenHands/OpenHands/pull/15146](https://github.com/OpenHands/OpenHands/pull/15146)
* feat: add SMTP email service by @saurya in [https://github.com/OpenHands/OpenHands/pull/15144](https://github.com/OpenHands/OpenHands/pull/15144)
* feat: track user login timestamps by @saurya in [https://github.com/OpenHands/OpenHands/pull/15148](https://github.com/OpenHands/OpenHands/pull/15148)
* feat: surface email enabled for smtp/resend by @saurya in [https://github.com/OpenHands/OpenHands/pull/15185](https://github.com/OpenHands/OpenHands/pull/15185)
* feat: pass repository metadata to observability traces by @neubig in [https://github.com/OpenHands/OpenHands/pull/14431](https://github.com/OpenHands/OpenHands/pull/14431)
* feat(enterprise): Agent Profiles on the cloud/SaaS backend (#15044) by @simonrosenberg in [https://github.com/OpenHands/OpenHands/pull/15060](https://github.com/OpenHands/OpenHands/pull/15060)
* feat(backend): Add Budgets dashboard and expand Usage Dashboard by @saurya in [https://github.com/OpenHands/OpenHands/pull/15149](https://github.com/OpenHands/OpenHands/pull/15149)
* feat: budgets and usage monitoring UI by @saurya in [https://github.com/OpenHands/OpenHands/pull/15186](https://github.com/OpenHands/OpenHands/pull/15186)
* feat: surface email enabled for smtp/resend by @saurya in [https://github.com/OpenHands/OpenHands/pull/15214](https://github.com/OpenHands/OpenHands/pull/15214)
* feat(app-server): enrich final archive manifests and remove initial snapshots by @simonrosenberg in [https://github.com/OpenHands/OpenHands/pull/15058](https://github.com/OpenHands/OpenHands/pull/15058)
* feat(enterprise): make BYOR key alias pattern configurable by @tofarr in [https://github.com/OpenHands/OpenHands/pull/15232](https://github.com/OpenHands/OpenHands/pull/15232)

#### Bug Fixes

* fix(jira): make Jira Cloud and Jira DC HTTP timeouts configurable and consistent by @ak684 in [https://github.com/OpenHands/OpenHands/pull/15012](https://github.com/OpenHands/OpenHands/pull/15012)
* fix: Fix CVE-2026-44681: Update authlib to >=1.6.12 by @mamoodi in [https://github.com/OpenHands/OpenHands/pull/14983](https://github.com/OpenHands/OpenHands/pull/14983)
* fix: don't switch LLM profile before the conversation UUID exists (avoids 422) by @ak684 in [https://github.com/OpenHands/OpenHands/pull/14900](https://github.com/OpenHands/OpenHands/pull/14900)
* fix(enterprise): log automation HTTP response failures as errors by @wgu9 in [https://github.com/OpenHands/OpenHands/pull/15004](https://github.com/OpenHands/OpenHands/pull/15004)
* fix(enterprise): add alembic migration for execution\_status column by @tofarr in [https://github.com/OpenHands/OpenHands/pull/15030](https://github.com/OpenHands/OpenHands/pull/15030)
* fix(jira-dc): more forgiving repo + mention resolution for Data Center by @ak684 in [https://github.com/OpenHands/OpenHands/pull/15034](https://github.com/OpenHands/OpenHands/pull/15034)
* fix(device-verify): rename 'Workspace' dropdown to 'Organization' by @tofarr in [https://github.com/OpenHands/OpenHands/pull/15057](https://github.com/OpenHands/OpenHands/pull/15057)
* fix(jira-dc): don't org-gate a personal-workspace Jira DC integration by @ak684 in [https://github.com/OpenHands/OpenHands/pull/15036](https://github.com/OpenHands/OpenHands/pull/15036)
* fix: stream LLM tokens for cloud conversations and profile switches by @VascoSch92 in [https://github.com/OpenHands/OpenHands/pull/15021](https://github.com/OpenHands/OpenHands/pull/15021)
* fix: set email person property in PostHog during onboarding completion by @lilagrc in [https://github.com/OpenHands/OpenHands/pull/15070](https://github.com/OpenHands/OpenHands/pull/15070)
* fix: Timezones stored in the db do not have a timezone by @tofarr in [https://github.com/OpenHands/OpenHands/pull/15092](https://github.com/OpenHands/OpenHands/pull/15092)
* fix: add test for InMemoryRateLimiter.**init** to prevent duplicate assignment regression by @aivong-openhands in [https://github.com/OpenHands/OpenHands/pull/14729](https://github.com/OpenHands/OpenHands/pull/14729)
* fix(frontend): stop streamed deltas rendering twice and fragmenting in V1 chat by @shanemort1982 in [https://github.com/OpenHands/OpenHands/pull/15108](https://github.com/OpenHands/OpenHands/pull/15108)
* fix: crash when request.client is None in InMemoryRateLimiter by @rakshith1928 in [https://github.com/OpenHands/OpenHands/pull/15119](https://github.com/OpenHands/OpenHands/pull/15119)
* fix(sandbox-spec): fall back to defaults when runtime-api has no warm runtimes by @tofarr in [https://github.com/OpenHands/OpenHands/pull/15141](https://github.com/OpenHands/OpenHands/pull/15141)
* fix: settings page scroll layout by @saurya in [https://github.com/OpenHands/OpenHands/pull/15147](https://github.com/OpenHands/OpenHands/pull/15147)
* fix(app\_server): pass flat mcp\_config shape to SDK Agent by @tofarr in [https://github.com/OpenHands/OpenHands/pull/15159](https://github.com/OpenHands/OpenHands/pull/15159)
* fix: scroll settings sidebar so Skills is reachable in orgs by @hieptl in [https://github.com/OpenHands/OpenHands/pull/15138](https://github.com/OpenHands/OpenHands/pull/15138)
* fix(frontend): read SDK 1.31.x flat mcp\_config wire format by @tofarr in [https://github.com/OpenHands/OpenHands/pull/15165](https://github.com/OpenHands/OpenHands/pull/15165)
* fix(app\_server): derive agent server image from package version by @tofarr in [https://github.com/OpenHands/OpenHands/pull/15168](https://github.com/OpenHands/OpenHands/pull/15168)
* fix(app-server): pass index columns as a list in migration 013 by @VascoSch92 in [https://github.com/OpenHands/OpenHands/pull/15176](https://github.com/OpenHands/OpenHands/pull/15176)
* fix: default ENABLE\_ACP on so ACP agent settings show in OH Cloud by @hieptl in [https://github.com/OpenHands/OpenHands/pull/15183](https://github.com/OpenHands/OpenHands/pull/15183)
* fix: send authenticated marketplace URLs to agent-server by @hieptl in [https://github.com/OpenHands/OpenHands/pull/15187](https://github.com/OpenHands/OpenHands/pull/15187)
* fix: prevent webhook-driven DB connection leaks by @tofarr in [https://github.com/OpenHands/OpenHands/pull/15212](https://github.com/OpenHands/OpenHands/pull/15212)
* fix(frontend): mention SMTP env vars for budget alerts by @saurya in [https://github.com/OpenHands/OpenHands/pull/15218](https://github.com/OpenHands/OpenHands/pull/15218)
* fix(enterprise): cascade-delete conversation\_cost\_events on conversation delete by @tofarr in [https://github.com/OpenHands/OpenHands/pull/15220](https://github.com/OpenHands/OpenHands/pull/15220)
* fix: Enable LIFO database connection pooling by @tofarr in [https://github.com/OpenHands/OpenHands/pull/15225](https://github.com/OpenHands/OpenHands/pull/15225)
* fix(app-server): preserve observability context metadata by @hxaxd in [https://github.com/OpenHands/OpenHands/pull/15215](https://github.com/OpenHands/OpenHands/pull/15215)
* fix(app-server): preserve conversation created\_at across lifecycle webhooks by @Sujit-1509 in [https://github.com/OpenHands/OpenHands/pull/15243](https://github.com/OpenHands/OpenHands/pull/15243)
* fix(mcp): preserve SaaS credentials with encrypted storage by @simonrosenberg in [https://github.com/OpenHands/OpenHands/pull/15257](https://github.com/OpenHands/OpenHands/pull/15257)
* fix(frontend): restore cross-domain PostHog tracking by aligning client/server distinct\_id (WIP) by @lilagrc in [https://github.com/OpenHands/OpenHands/pull/15100](https://github.com/OpenHands/OpenHands/pull/15100)
* fix(app-server): lower DB pool defaults and make them env-tunable by @dylan-openhands in [https://github.com/OpenHands/OpenHands/pull/15270](https://github.com/OpenHands/OpenHands/pull/15270)
* fix(mcp): preserve MCP auth secrets stripped by settings GET round-trip by @jlav in [https://github.com/OpenHands/OpenHands/pull/15285](https://github.com/OpenHands/OpenHands/pull/15285)

#### Maintenance

* build: pin dependency versions exactly by @rbren in [https://github.com/OpenHands/OpenHands/pull/14384](https://github.com/OpenHands/OpenHands/pull/14384)
* ci: add release ready gate by @enyst in [https://github.com/OpenHands/OpenHands/pull/14987](https://github.com/OpenHands/OpenHands/pull/14987)
* ci: PLTF-2960 open a chart image-tag bump PR on cloud release by @aivong-openhands in [https://github.com/OpenHands/OpenHands/pull/15166](https://github.com/OpenHands/OpenHands/pull/15166)
* ci: PLTF-2960 sync chart appVersion with cloud image tag by @aivong-openhands in [https://github.com/OpenHands/OpenHands/pull/15219](https://github.com/OpenHands/OpenHands/pull/15219)
* ci: wait for the docker build before retagging images by @jlav in [https://github.com/OpenHands/OpenHands/pull/15213](https://github.com/OpenHands/OpenHands/pull/15213)
* chore: Update README.md by @rbren in [https://github.com/OpenHands/OpenHands/pull/15271](https://github.com/OpenHands/OpenHands/pull/15271)

***

### Software Agent SDK

#### Features

* feat(agent-server): expose repository metadata for workspace archives by @simonrosenberg in [https://github.com/OpenHands/software-agent-sdk/pull/3932](https://github.com/OpenHands/software-agent-sdk/pull/3932)
* feat: commit-history API — list commits and per-commit diffs by @hieptl in [https://github.com/OpenHands/software-agent-sdk/pull/4075](https://github.com/OpenHands/software-agent-sdk/pull/4075)
* feat(security): add ToolShieldLLMSecurityAnalyzer by @xli04 in [https://github.com/OpenHands/software-agent-sdk/pull/2911](https://github.com/OpenHands/software-agent-sdk/pull/2911)

#### Bug Fixes

* fix(skills): match keyword triggers on whole words only by @VascoSch92 in [https://github.com/OpenHands/software-agent-sdk/pull/4008](https://github.com/OpenHands/software-agent-sdk/pull/4008)
* fix(sdk): reconnect remote conversation websocket by @bozhnyukAlex in [https://github.com/OpenHands/software-agent-sdk/pull/3987](https://github.com/OpenHands/software-agent-sdk/pull/3987)
* fix(security): add a secret-disclosure consent rule to the agent security policy by @warmjademe in [https://github.com/OpenHands/software-agent-sdk/pull/3823](https://github.com/OpenHands/software-agent-sdk/pull/3823)
* fix(sdk): keep legacy history on resume when the stored tail is a non-tree artifact by @VascoSch92 in [https://github.com/OpenHands/software-agent-sdk/pull/4068](https://github.com/OpenHands/software-agent-sdk/pull/4068)
* fix: support GPT-5.6 across Codex authentication by @neubig in [https://github.com/OpenHands/software-agent-sdk/pull/4056](https://github.com/OpenHands/software-agent-sdk/pull/4056)
* fix: pick a display base ref that keeps committed work visible by @hieptl in [https://github.com/OpenHands/software-agent-sdk/pull/4065](https://github.com/OpenHands/software-agent-sdk/pull/4065)
* fix(mcp): validate secrets after parsing by @simonrosenberg in [https://github.com/OpenHands/software-agent-sdk/pull/4099](https://github.com/OpenHands/software-agent-sdk/pull/4099)
* fix(skills): make marketplaces additive to public skills by @rsd-darshan in [https://github.com/OpenHands/software-agent-sdk/pull/4087](https://github.com/OpenHands/software-agent-sdk/pull/4087)
* fix(mcp): preserve nested object properties in LLM-facing tool schema by @ixchio in [https://github.com/OpenHands/software-agent-sdk/pull/4011](https://github.com/OpenHands/software-agent-sdk/pull/4011)
* \[codex] fix ACP prompt argument order by @neubig in [https://github.com/OpenHands/software-agent-sdk/pull/3996](https://github.com/OpenHands/software-agent-sdk/pull/3996)

#### Maintenance

* ci(version-bump-prs): make PR-creation steps independent by @VascoSch92 in [https://github.com/OpenHands/software-agent-sdk/pull/4051](https://github.com/OpenHands/software-agent-sdk/pull/4051)
* ci: add release security-scan by @smolpaws in [https://github.com/OpenHands/software-agent-sdk/pull/4042](https://github.com/OpenHands/software-agent-sdk/pull/4042)
* chore(deps): bump MishaKav/pytest-coverage-comment from 1.7.2 to 1.10.0 by @dependabot\[bot] in [https://github.com/OpenHands/software-agent-sdk/pull/4046](https://github.com/OpenHands/software-agent-sdk/pull/4046)
* chore(deps): bump docker/setup-buildx-action from 4.0.0 to 4.2.0 by @dependabot\[bot] in [https://github.com/OpenHands/software-agent-sdk/pull/4045](https://github.com/OpenHands/software-agent-sdk/pull/4045)

***

### Runtime API

#### Features

* feat(logging): emit exc\_info and stack\_info as JSON arrays by @tofarr in [https://github.com/OpenHands/runtime-api/pull/635](https://github.com/OpenHands/runtime-api/pull/635)
* feat(cleanup): enrich final workspace archive manifests by @simonrosenberg in [https://github.com/OpenHands/runtime-api/pull/630](https://github.com/OpenHands/runtime-api/pull/630)

#### Bug Fixes

* fix: prevent DetachedInstanceError on Runtime accessed after session close by @tofarr in [https://github.com/OpenHands/runtime-api/pull/636](https://github.com/OpenHands/runtime-api/pull/636)

***

### OpenHands Cloud (Helm Chart)

#### Features

* feat: upgrade embedded cluster to 2.19.2+k8s-1.34 by @jlav in [https://github.com/OpenHands/OpenHands-Cloud/pull/821](https://github.com/OpenHands/OpenHands-Cloud/pull/821)
* feat: upgrade embedded cluster to 2.19.2+k8s-1.35 by @jlav in [https://github.com/OpenHands/OpenHands-Cloud/pull/822](https://github.com/OpenHands/OpenHands-Cloud/pull/822)
* feat: upgrade embedded cluster to 2.19.2+k8s-1.36 by @jlav in [https://github.com/OpenHands/OpenHands-Cloud/pull/826](https://github.com/OpenHands/OpenHands-Cloud/pull/826)
* feat(sysbox): default sandbox isolation on the embedded cluster by @jlav in [https://github.com/OpenHands/OpenHands-Cloud/pull/770](https://github.com/OpenHands/OpenHands-Cloud/pull/770)
* feat: PLTF-3196 Configure global OpenHands resolver label by @aivong-openhands in [https://github.com/OpenHands/OpenHands-Cloud/pull/807](https://github.com/OpenHands/OpenHands-Cloud/pull/807)
* feat: PLTF-2960 sync metadata with image tag bumps by @aivong-openhands in [https://github.com/OpenHands/OpenHands-Cloud/pull/828](https://github.com/OpenHands/OpenHands-Cloud/pull/828)
* feat: Add replicated vendor portal links in release workflows by @dylan-openhands in [https://github.com/OpenHands/OpenHands-Cloud/pull/833](https://github.com/OpenHands/OpenHands-Cloud/pull/833)
* feat: PLTF-3198 enable the Replicated SDK by default for helm installs by @aivong-openhands in [https://github.com/OpenHands/OpenHands-Cloud/pull/895](https://github.com/OpenHands/OpenHands-Cloud/pull/895)
* feat(replicated): add OEM User Creation Flow advanced option by @jpshackelford in [https://github.com/OpenHands/OpenHands-Cloud/pull/914](https://github.com/OpenHands/OpenHands-Cloud/pull/914)

#### Bug Fixes

* fix(postgres): raise embedded postgres memory limit to avoid OOM by @jlav in [https://github.com/OpenHands/OpenHands-Cloud/pull/829](https://github.com/OpenHands/OpenHands-Cloud/pull/829)
* fix: improve integrations-hub Datadog and probe configuration by @neubig in [https://github.com/OpenHands/OpenHands-Cloud/pull/862](https://github.com/OpenHands/OpenHands-Cloud/pull/862)
* fix(openhands): stop warm-runtimes job pods matching the runtime-api Service selector by @ak684 in [https://github.com/OpenHands/OpenHands-Cloud/pull/867](https://github.com/OpenHands/OpenHands-Cloud/pull/867)
* fix(openhands): mirror agentServerEnv into warm-runtime env so warm pools stay claimable by @ak684 in [https://github.com/OpenHands/OpenHands-Cloud/pull/866](https://github.com/OpenHands/OpenHands-Cloud/pull/866)
* fix: set default agent-server tag back to 1.36.0-python by @jlav in [https://github.com/OpenHands/OpenHands-Cloud/pull/908](https://github.com/OpenHands/OpenHands-Cloud/pull/908)

#### Maintenance

* ci: PLTF-2920 dispatch staging chart bumps after publish by @aivong-openhands in [https://github.com/OpenHands/OpenHands-Cloud/pull/801](https://github.com/OpenHands/OpenHands-Cloud/pull/801)
* refactor(openhands): rename gitlab webhook install cronjob by @jlav in [https://github.com/OpenHands/OpenHands-Cloud/pull/865](https://github.com/OpenHands/OpenHands-Cloud/pull/865)
* ci: PLTF-3193 dispatch development chart bumps after publish by @aivong-openhands in [https://github.com/OpenHands/OpenHands-Cloud/pull/843](https://github.com/OpenHands/OpenHands-Cloud/pull/843)
* test: PLTF-1257 helm-unittest setup by @aivong-openhands in [https://github.com/OpenHands/OpenHands-Cloud/pull/894](https://github.com/OpenHands/OpenHands-Cloud/pull/894)
* chore: add CODEOWNERS by @jlav in [https://github.com/OpenHands/OpenHands-Cloud/pull/878](https://github.com/OpenHands/OpenHands-Cloud/pull/878)
