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

> Release notes for OpenHands Enterprise version 0.64.0

# OpenHands Enterprise 0.64.0

Released September 09, 2026.

## Highlights

* **Shared LLM Provider Connections** — Organization-level provider connections can now back multiple members' managed profiles
* **GPG Commit Signing** — Users can configure GPG commit signing with a Set GPG Key button in settings
* **Organization Lifecycle Tools** — Superadmins can seed new orgs via invitations; Git providers can be connected/disconnected post-auth from Settings → Integrations
* **Automation Permissions** — Split into separate view and manage roles

## Features

#### Enterprise Server

* feat: add ENABLE\_BYOR\_EXPORT env var and frontend feature flag by @tofarr in [https://github.com/OpenHands/enterprise/pull/232](https://github.com/OpenHands/enterprise/pull/232)
* feat: configurable GPG commit signing at user level (OHE-3115) by @tofarr in [https://github.com/OpenHands/enterprise/pull/264](https://github.com/OpenHands/enterprise/pull/264)
* feat: add Set GPG Key button to app settings by @tofarr in [https://github.com/OpenHands/enterprise/pull/274](https://github.com/OpenHands/enterprise/pull/274)
* feat: add database-driven feature flag library (OHE-3101) by @tofarr in [https://github.com/OpenHands/enterprise/pull/217](https://github.com/OpenHands/enterprise/pull/217)
* feat(org): shared LLM provider connections (cloud) by @juanmichelini in [https://github.com/OpenHands/enterprise/pull/219](https://github.com/OpenHands/enterprise/pull/219)
* feat: link daily quota increase requests by @neubig in [https://github.com/OpenHands/enterprise/pull/283](https://github.com/OpenHands/enterprise/pull/283)
* feat: add cron script to clean stale app\_conversation\_start\_task rows by @tofarr in [https://github.com/OpenHands/enterprise/pull/290](https://github.com/OpenHands/enterprise/pull/290)
* feat: OHE-3197 : Unify ENABLE\_BILLING resolution through the feature flag env fallback by @tofarr in [https://github.com/OpenHands/enterprise/pull/301](https://github.com/OpenHands/enterprise/pull/301)
* feat: split automations permission into view and manage by @tofarr in [https://github.com/OpenHands/enterprise/pull/304](https://github.com/OpenHands/enterprise/pull/304)
* feat: add GET /organizations/{org_id}/members/{user_id} by @hieptl in [https://github.com/OpenHands/enterprise/pull/313](https://github.com/OpenHands/enterprise/pull/313)
* feat: connect and disconnect Git providers post-auth from Settings > Integrations by @hieptl in [https://github.com/OpenHands/enterprise/pull/309](https://github.com/OpenHands/enterprise/pull/309)
* feat(enterprise): allow superadmin to seed a new org via a normal invitation by @lilagrc in [https://github.com/OpenHands/enterprise/pull/292](https://github.com/OpenHands/enterprise/pull/292)
* feat(enterprise): instance-level admin user lifecycle API (disable/enable/delete) by @neubig in [https://github.com/OpenHands/enterprise/pull/181](https://github.com/OpenHands/enterprise/pull/181)
* feat: OHE-3178 : add per-conversation event index for efficient search by @tofarr in [https://github.com/OpenHands/enterprise/pull/327](https://github.com/OpenHands/enterprise/pull/327)

#### Software Agent SDK

* feat: add manifest to installed canvas extension responses by @hieptl in [https://github.com/OpenHands/software-agent-sdk/pull/4611](https://github.com/OpenHands/software-agent-sdk/pull/4611)
* feat(sdk): add ask\_oracle tool by @enyst in [https://github.com/OpenHands/software-agent-sdk/pull/3673](https://github.com/OpenHands/software-agent-sdk/pull/3673)
* feat(agent-server): add INSTALL\_ACP\_PROVIDERS build arg by @simonrosenberg in [https://github.com/OpenHands/software-agent-sdk/pull/4687](https://github.com/OpenHands/software-agent-sdk/pull/4687)
* feat: move TypeScript client into monorepo by @neubig in [https://github.com/OpenHands/software-agent-sdk/pull/4702](https://github.com/OpenHands/software-agent-sdk/pull/4702)
* feat(agent-server): add INSTALL\_CAPABILITIES build arg by @simonrosenberg in [https://github.com/OpenHands/software-agent-sdk/pull/4698](https://github.com/OpenHands/software-agent-sdk/pull/4698)
* feat: add ACP-less agent-server image fallback by @simonrosenberg in [https://github.com/OpenHands/software-agent-sdk/pull/4805](https://github.com/OpenHands/software-agent-sdk/pull/4805)
* feat(observability): allow selecting Laminar instruments by @Shimada666 in [https://github.com/OpenHands/software-agent-sdk/pull/4434](https://github.com/OpenHands/software-agent-sdk/pull/4434)
* feat(acp): centralize ACP npm installation metadata by @simonrosenberg in [https://github.com/OpenHands/software-agent-sdk/pull/4832](https://github.com/OpenHands/software-agent-sdk/pull/4832)
* feat(agent-server): add /sockets/session/{id} with a non-Event envelope by @VascoSch92 in [https://github.com/OpenHands/software-agent-sdk/pull/4807](https://github.com/OpenHands/software-agent-sdk/pull/4807)
* feat(acp): add Kimi Code, plus the hardening the other provider PRs share by @ysntony in [https://github.com/OpenHands/software-agent-sdk/pull/4714](https://github.com/OpenHands/software-agent-sdk/pull/4714)
* feat(sdk): register Pi as a built-in ACP provider by @Deep070203 in [https://github.com/OpenHands/software-agent-sdk/pull/4419](https://github.com/OpenHands/software-agent-sdk/pull/4419)
* feat(acp): add OpenCode as a built-in ACP provider by @simonrosenberg in [https://github.com/OpenHands/software-agent-sdk/pull/4827](https://github.com/OpenHands/software-agent-sdk/pull/4827)
* feat: add GPT-6 Astra model support by @neubig in [https://github.com/OpenHands/software-agent-sdk/pull/4861](https://github.com/OpenHands/software-agent-sdk/pull/4861)
* Add claude-sonnet-5 to PROMPT\_CACHE\_MODELS by @swabeinvader in [https://github.com/OpenHands/software-agent-sdk/pull/4043](https://github.com/OpenHands/software-agent-sdk/pull/4043)
* feat(plugin): map client extensions under the dev.openhands namespace by @VascoSch92 in [https://github.com/OpenHands/software-agent-sdk/pull/4496](https://github.com/OpenHands/software-agent-sdk/pull/4496)

#### Runtime API

* feat: OHE-3139 : Split cleanup CronJob into per-phase jobs by @tofarr in [https://github.com/OpenHands/runtime-api/pull/729](https://github.com/OpenHands/runtime-api/pull/729)
* feat: overlay database warm-runtime configs onto ConfigMap entries by name by @ak684 in [https://github.com/OpenHands/runtime-api/pull/731](https://github.com/OpenHands/runtime-api/pull/731)
* feat: Add coverage gate to unit test workflow by @tofarr in [https://github.com/OpenHands/runtime-api/pull/737](https://github.com/OpenHands/runtime-api/pull/737)

#### Automation

* feat: add structured task outcomes to preset finish tool by @malhotra5 in [https://github.com/OpenHands/automation/pull/334](https://github.com/OpenHands/automation/pull/334)
* feat: replace the parse-only source registry with a provider descriptor and verifier registry by @VascoSch92 in [https://github.com/OpenHands/automation/pull/378](https://github.com/OpenHands/automation/pull/378)
* feat: persist accepted events to deduplicate redeliveries and expose events that matched nothing by @VascoSch92 in [https://github.com/OpenHands/automation/pull/381](https://github.com/OpenHands/automation/pull/381)
* feat: report lifetime per-status run counts on the runs list by @hieptl in [https://github.com/OpenHands/automation/pull/383](https://github.com/OpenHands/automation/pull/383)
* feat: report live run phases for dashboard visibility by @hieptl in [https://github.com/OpenHands/automation/pull/388](https://github.com/OpenHands/automation/pull/388)
* feat: add in-service Slack Socket Mode via a supervised stream transport by @VascoSch92 in [https://github.com/OpenHands/automation/pull/384](https://github.com/OpenHands/automation/pull/384)
* feat: split automation permissions into view and manage by @tofarr in [https://github.com/OpenHands/automation/pull/415](https://github.com/OpenHands/automation/pull/415)
* feat: auto-disable for consecutively failing automations \[PLTF-3374] by @dylan-openhands in [https://github.com/OpenHands/automation/pull/397](https://github.com/OpenHands/automation/pull/397)
* feat: route events to an existing conversation via a derived conversation id by @VascoSch92 in [https://github.com/OpenHands/automation/pull/385](https://github.com/OpenHands/automation/pull/385)
* feat: add ready-for-dev issue and PR readiness gates by @neubig in [https://github.com/OpenHands/automation/pull/380](https://github.com/OpenHands/automation/pull/380)
* feat: restrict automation edits to the creator by @hieptl in [https://github.com/OpenHands/automation/pull/427](https://github.com/OpenHands/automation/pull/427)

#### OpenHands Cloud (Helm Chart)

* feat(local-kind): PLTF-3527 enable Agent Canvas at /canvas by @aivong-openhands in [https://github.com/OpenHands/OpenHands-Cloud/pull/1168](https://github.com/OpenHands/OpenHands-Cloud/pull/1168)
* feat(replicated): PLTF-3456 enable automations by default for new installs by @aivong-openhands in [https://github.com/OpenHands/OpenHands-Cloud/pull/1158](https://github.com/OpenHands/OpenHands-Cloud/pull/1158)
* feat(runtime-api): sync split cleanup CronJob from runtime-api#729 by @tofarr in [https://github.com/OpenHands/OpenHands-Cloud/pull/1178](https://github.com/OpenHands/OpenHands-Cloud/pull/1178)
* feat(e2e): PLTF-3514 dispatch e2e test revision bumps to saas-deploy by @aivong-openhands in [https://github.com/OpenHands/OpenHands-Cloud/pull/1148](https://github.com/OpenHands/OpenHands-Cloud/pull/1148)
* feat: enable warm-runtime config overlay mode for Replicated by @ak684 in [https://github.com/OpenHands/OpenHands-Cloud/pull/1183](https://github.com/OpenHands/OpenHands-Cloud/pull/1183)
* feat: configure Enterprise SSO for Replicated VM deployments by @jpelletier1 in [https://github.com/OpenHands/OpenHands-Cloud/pull/1116](https://github.com/OpenHands/OpenHands-Cloud/pull/1116)
* feat: add CronJob to clean stale app\_conversation\_start\_task rows by @tofarr in [https://github.com/OpenHands/OpenHands-Cloud/pull/1196](https://github.com/OpenHands/OpenHands-Cloud/pull/1196)
* feat: enable appConversationStartTaskClean CronJob by default by @tofarr in [https://github.com/OpenHands/OpenHands-Cloud/pull/1197](https://github.com/OpenHands/OpenHands-Cloud/pull/1197)
* feat(skills): PLTF-3531 add upgrade-rollback-runbook skill by @aivong-openhands in [https://github.com/OpenHands/OpenHands-Cloud/pull/1204](https://github.com/OpenHands/OpenHands-Cloud/pull/1204)
* feat(skills): PLTF-3531 add gke-install cluster-install skill by @aivong-openhands in [https://github.com/OpenHands/OpenHands-Cloud/pull/1205](https://github.com/OpenHands/OpenHands-Cloud/pull/1205)
* feat(skills): PLTF-3531 add eks-install cluster-install skill by @aivong-openhands in [https://github.com/OpenHands/OpenHands-Cloud/pull/1203](https://github.com/OpenHands/OpenHands-Cloud/pull/1203)
* feat: diagnose runtime ingress failures in support bundles by @ak684 in [https://github.com/OpenHands/OpenHands-Cloud/pull/1208](https://github.com/OpenHands/OpenHands-Cloud/pull/1208)

## Bug Fixes

#### Enterprise Server

* fix: delete MCP servers from a null mcp\_config entry by @hieptl in [https://github.com/OpenHands/enterprise/pull/270](https://github.com/OpenHands/enterprise/pull/270)
* fix: remove --forked from test commands to fix coverage measurement by @tofarr in [https://github.com/OpenHands/enterprise/pull/277](https://github.com/OpenHands/enterprise/pull/277)
* fix: include registered marketplaces in the conversation skills listing by @hieptl in [https://github.com/OpenHands/enterprise/pull/286](https://github.com/OpenHands/enterprise/pull/286)
* fix: stop polling behind the re-auth modal once the session expires by @hieptl in [https://github.com/OpenHands/enterprise/pull/298](https://github.com/OpenHands/enterprise/pull/298)
* fix: stop title updates clobbering conversation metadata by @hieptl in [https://github.com/OpenHands/enterprise/pull/299](https://github.com/OpenHands/enterprise/pull/299)
* fix(budgets): make LiteLLM spend reporting resilient by @ak684 in [https://github.com/OpenHands/enterprise/pull/242](https://github.com/OpenHands/enterprise/pull/242)
* fix: prevent invalid proxy tokens after managed profile changes by @saurya in [https://github.com/OpenHands/enterprise/pull/209](https://github.com/OpenHands/enterprise/pull/209)
* fix(analytics): use detected automation trigger by @neubig in [https://github.com/OpenHands/enterprise/pull/147](https://github.com/OpenHands/enterprise/pull/147)
* fix: Updated release please config to include uv.lock by @tofarr in [https://github.com/OpenHands/enterprise/pull/330](https://github.com/OpenHands/enterprise/pull/330)
* fix: prevent cross-user managed LLM key attribution by @ak684 in [https://github.com/OpenHands/enterprise/pull/317](https://github.com/OpenHands/enterprise/pull/317)
* fix(ui): disable telemetry UI in self-hosted enterprise by @ak684 in [https://github.com/OpenHands/enterprise/pull/326](https://github.com/OpenHands/enterprise/pull/326)

#### Software Agent SDK

* fix(agent-server): keep crash recovery result on interrupted action branch by @neubig in [https://github.com/OpenHands/software-agent-sdk/pull/4488](https://github.com/OpenHands/software-agent-sdk/pull/4488)
* fix(workspace): honor explicit provider host when injecting git clone tokens by @rsd-darshan in [https://github.com/OpenHands/software-agent-sdk/pull/4571](https://github.com/OpenHands/software-agent-sdk/pull/4571)
* fix(agent-server): replace global \_lifecycle\_lock with per-conversation locks by @neubig in [https://github.com/OpenHands/software-agent-sdk/pull/4570](https://github.com/OpenHands/software-agent-sdk/pull/4570)
* fix(tools): unique user\_data\_dir per conversation to prevent SingletonLock collisions by @neubig in [https://github.com/OpenHands/software-agent-sdk/pull/4602](https://github.com/OpenHands/software-agent-sdk/pull/4602)
* fix(sdk): bound AsyncExecutor.close() so it cannot hang forever by @AaronAbuUsama in [https://github.com/OpenHands/software-agent-sdk/pull/4548](https://github.com/OpenHands/software-agent-sdk/pull/4548)
* fix(agent-server): detect all secret-bearing fields for the plaintext-save warning, not just llm.api\_key by @simonrosenberg in [https://github.com/OpenHands/software-agent-sdk/pull/4618](https://github.com/OpenHands/software-agent-sdk/pull/4618)
* fix: enable condenser for subscription LLMs via existing completion dispatch by @neubig in [https://github.com/OpenHands/software-agent-sdk/pull/4517](https://github.com/OpenHands/software-agent-sdk/pull/4517)
* fix(sdk): resolve structured builtin tool specs remotely by @malhotra5 in [https://github.com/OpenHands/software-agent-sdk/pull/4691](https://github.com/OpenHands/software-agent-sdk/pull/4691)
* fix(agent-server): stop fanning streaming deltas out to every subscriber by @VascoSch92 in [https://github.com/OpenHands/software-agent-sdk/pull/4689](https://github.com/OpenHands/software-agent-sdk/pull/4689)
* fix(acp): never inject workspace project skills into an ACP agent (#4019) by @simonrosenberg in [https://github.com/OpenHands/software-agent-sdk/pull/4699](https://github.com/OpenHands/software-agent-sdk/pull/4699)
* fix(sdk): mask model output in the durable MessageEvent by @VascoSch92 in [https://github.com/OpenHands/software-agent-sdk/pull/4783](https://github.com/OpenHands/software-agent-sdk/pull/4783)
* fix(sdk): match nested repo paths by ancestry, not string prefix by @alanhuangyoo in [https://github.com/OpenHands/software-agent-sdk/pull/4767](https://github.com/OpenHands/software-agent-sdk/pull/4767)
* fix(tools): mask secrets in every tool's observation at the shared chokepoint by @VascoSch92 in [https://github.com/OpenHands/software-agent-sdk/pull/4788](https://github.com/OpenHands/software-agent-sdk/pull/4788)
* fix(agent-server): keep the idle timer alive during streamed completions by @VascoSch92 in [https://github.com/OpenHands/software-agent-sdk/pull/4790](https://github.com/OpenHands/software-agent-sdk/pull/4790)
* fix(sdk): remove secrets from subprocess env by @smolpaws in [https://github.com/OpenHands/software-agent-sdk/pull/4801](https://github.com/OpenHands/software-agent-sdk/pull/4801)
* fix(sdk): persist events before publishing them, return the assigned seq by @VascoSch92 in [https://github.com/OpenHands/software-agent-sdk/pull/4806](https://github.com/OpenHands/software-agent-sdk/pull/4806)
* fix(llm): allow security\_risk param on read-only tools like finish by @sideeffffect in [https://github.com/OpenHands/software-agent-sdk/pull/4153](https://github.com/OpenHands/software-agent-sdk/pull/4153)
* fix(sdk): require fastmcp>=3.2.0 so expired MCP OAuth tokens refresh by @VascoSch92 in [https://github.com/OpenHands/software-agent-sdk/pull/4857](https://github.com/OpenHands/software-agent-sdk/pull/4857)
* fix(sdk): pick up a user message that arrives during an async step by @VascoSch92 in [https://github.com/OpenHands/software-agent-sdk/pull/4194](https://github.com/OpenHands/software-agent-sdk/pull/4194)
* fix(agent-server): propagate load\_memory preference to all launch paths by @vnktadithya in [https://github.com/OpenHands/software-agent-sdk/pull/4566](https://github.com/OpenHands/software-agent-sdk/pull/4566)
* fix: respect OH\_PERSISTENCE\_DIR for all \~/.openhands paths by @jpshackelford in [https://github.com/OpenHands/software-agent-sdk/pull/4476](https://github.com/OpenHands/software-agent-sdk/pull/4476)
* fix(ci): align ready-for-dev gates with OpenHands pipefail-safe approach by @neubig in [https://github.com/OpenHands/software-agent-sdk/pull/4607](https://github.com/OpenHands/software-agent-sdk/pull/4607)
* fix(tests): stop pinning LLM capability tests to upstream metadata by @simonrosenberg in [https://github.com/OpenHands/software-agent-sdk/pull/4879](https://github.com/OpenHands/software-agent-sdk/pull/4879)
* fix(ci): centralize release publication dispatches by @neubig in [https://github.com/OpenHands/software-agent-sdk/pull/4886](https://github.com/OpenHands/software-agent-sdk/pull/4886)
* fix(agent-server): restore subscription credentials in pre-flight validation by @neubig in [https://github.com/OpenHands/software-agent-sdk/pull/4898](https://github.com/OpenHands/software-agent-sdk/pull/4898)
* fix(llm): register litellm\_proxy alias pricing so spans aren't silently \$0 by @juanmichelini in [https://github.com/OpenHands/software-agent-sdk/pull/4836](https://github.com/OpenHands/software-agent-sdk/pull/4836)
* fix(extensions): compose local source with repo\_path by @VascoSch92 in [https://github.com/OpenHands/software-agent-sdk/pull/4839](https://github.com/OpenHands/software-agent-sdk/pull/4839)

#### Runtime API

* fix: redact sensitive URL query parameters in pod crash logs by @all-hands-bot in [https://github.com/OpenHands/runtime-api/pull/706](https://github.com/OpenHands/runtime-api/pull/706)
* fix: treat empty ADMIN\_PASSWORD as unset so admin routes stay disabled by @ak684 in [https://github.com/OpenHands/runtime-api/pull/730](https://github.com/OpenHands/runtime-api/pull/730)
* fix: OHE-3187 : clean up warm runtimes orphaned by split-brain claim by @tofarr in [https://github.com/OpenHands/runtime-api/pull/735](https://github.com/OpenHands/runtime-api/pull/735)

#### Automation

* fix: capture automation failure modes as status states by @malhotra5 in [https://github.com/OpenHands/automation/pull/345](https://github.com/OpenHands/automation/pull/345)
* fix: treat missing tarball objects as permanent and defer superseded deletes until commit by @hieptl in [https://github.com/OpenHands/automation/pull/356](https://github.com/OpenHands/automation/pull/356)
* fix: auto-disable unhealthy automations by @malhotra5 in [https://github.com/OpenHands/automation/pull/352](https://github.com/OpenHands/automation/pull/352)
* fix: scope automation management to the org instead of the owner by @VascoSch92 in [https://github.com/OpenHands/automation/pull/399](https://github.com/OpenHands/automation/pull/399)
* fix: require preset automations to use finish tool by @malhotra5 in [https://github.com/OpenHands/automation/pull/405](https://github.com/OpenHands/automation/pull/405)
* fix: Forward X-Org-Id during automation auth by @malhotra5 in [https://github.com/OpenHands/automation/pull/403](https://github.com/OpenHands/automation/pull/403)
* fix(automation): purge expired local-mode run workspaces by @trungminhdo4-glitch in [https://github.com/OpenHands/automation/pull/277](https://github.com/OpenHands/automation/pull/277)

#### OpenHands Cloud (Helm Chart)

* fix(local-kind): PLTF-3527 use bundled MinIO for conversation/event storage by @aivong-openhands in [https://github.com/OpenHands/OpenHands-Cloud/pull/1163](https://github.com/OpenHands/OpenHands-Cloud/pull/1163)
* fix(replicated): drop the KOTS update check that ruins the target cursor by @dylan-openhands in [https://github.com/OpenHands/OpenHands-Cloud/pull/1175](https://github.com/OpenHands/OpenHands-Cloud/pull/1175)
* fix: Disable agent-canvas telemetry by default for self-hosted by @lilagrc in [https://github.com/OpenHands/OpenHands-Cloud/pull/1156](https://github.com/OpenHands/OpenHands-Cloud/pull/1156)
* fix(e2e): PLTF-3515 give the Tavily test its own conversation by @aivong-openhands in [https://github.com/OpenHands/OpenHands-Cloud/pull/1146](https://github.com/OpenHands/OpenHands-Cloud/pull/1146)
* fix: rename warm-runtime default config to v1\_current to match the app default spec lookup by @ak684 in [https://github.com/OpenHands/OpenHands-Cloud/pull/1181](https://github.com/OpenHands/OpenHands-Cloud/pull/1181)
* fix: give the Runtime API admin password a real KOTS field with a generated default by @ak684 in [https://github.com/OpenHands/OpenHands-Cloud/pull/1182](https://github.com/OpenHands/OpenHands-Cloud/pull/1182)
* fix: advertise the runtime API ingress to fuse mounts by @ak684 in [https://github.com/OpenHands/OpenHands-Cloud/pull/1184](https://github.com/OpenHands/OpenHands-Cloud/pull/1184)
* fix(chart): render reaper archive volume under a volumes: key (staging reaper outage) by @tofarr in [https://github.com/OpenHands/OpenHands-Cloud/pull/1185](https://github.com/OpenHands/OpenHands-Cloud/pull/1185)
* fix(ci): bypass broken deploy-gate check temporarily by @tofarr in [https://github.com/OpenHands/OpenHands-Cloud/pull/1186](https://github.com/OpenHands/OpenHands-Cloud/pull/1186)
* fix: make E2E repo-test prompt explicitly instruct file edit by @tofarr in [https://github.com/OpenHands/OpenHands-Cloud/pull/1189](https://github.com/OpenHands/OpenHands-Cloud/pull/1189)

## Maintenance

#### Enterprise Server

* refactor(frontend): remove legacy max-budget settings control by @saurya in [https://github.com/OpenHands/enterprise/pull/213](https://github.com/OpenHands/enterprise/pull/213)
* chore: remove dead code by @tofarr in [https://github.com/OpenHands/enterprise/pull/271](https://github.com/OpenHands/enterprise/pull/271)
* chore: remove redundant comments across enterprise codebase by @tofarr in [https://github.com/OpenHands/enterprise/pull/272](https://github.com/OpenHands/enterprise/pull/272)
* chore: remove comments referencing previous functionality by @tofarr in [https://github.com/OpenHands/enterprise/pull/273](https://github.com/OpenHands/enterprise/pull/273)
* test: replace mocked sessions with SQLite fixtures in org invitation store by @tofarr in [https://github.com/OpenHands/enterprise/pull/276](https://github.com/OpenHands/enterprise/pull/276)
* docs: fix stale, wrong, and inapplicable documentation references by @tofarr in [https://github.com/OpenHands/enterprise/pull/275](https://github.com/OpenHands/enterprise/pull/275)
* chore: remove Reo tracking integration by @neubig in [https://github.com/OpenHands/enterprise/pull/227](https://github.com/OpenHands/enterprise/pull/227)
* refactor: PLTF-3545 PLTF-3546 flatten enterprise/ into the repo root and move to uv by @jlav in [https://github.com/OpenHands/enterprise/pull/312](https://github.com/OpenHands/enterprise/pull/312)

#### Software Agent SDK

* docs: document SDK repository boundaries by @neubig in [https://github.com/OpenHands/software-agent-sdk/pull/4587](https://github.com/OpenHands/software-agent-sdk/pull/4587)
* chore(ci): clarify issue readiness bot comment and reference templates by @jpshackelford in [https://github.com/OpenHands/software-agent-sdk/pull/4625](https://github.com/OpenHands/software-agent-sdk/pull/4625)
* Relax ready-for-dev heading check to accept h2 headings by @all-hands-bot in [https://github.com/OpenHands/software-agent-sdk/pull/4632](https://github.com/OpenHands/software-agent-sdk/pull/4632)
* docs(examples): align Ask Oracle conventions by @enyst in [https://github.com/OpenHands/software-agent-sdk/pull/4655](https://github.com/OpenHands/software-agent-sdk/pull/4655)
* refactor(agent-server): share ACP provider payload as a parent-independent Docker layer by @simonrosenberg in [https://github.com/OpenHands/software-agent-sdk/pull/4651](https://github.com/OpenHands/software-agent-sdk/pull/4651)
* test(agent-server): cover conversation reads not serializing behind an unrelated start by @VascoSch92 in [https://github.com/OpenHands/software-agent-sdk/pull/4685](https://github.com/OpenHands/software-agent-sdk/pull/4685)
* ci: enforce SDK and TypeScript client version parity by @neubig in [https://github.com/OpenHands/software-agent-sdk/pull/4779](https://github.com/OpenHands/software-agent-sdk/pull/4779)
* refactor(agent-server): remove the VNC/desktop stack entirely by @simonrosenberg in [https://github.com/OpenHands/software-agent-sdk/pull/4792](https://github.com/OpenHands/software-agent-sdk/pull/4792)
* refactor(agent-server,ci): remove overdue org\_config field and catch this class of gap in check\_deprecations.py by @simonrosenberg in [https://github.com/OpenHands/software-agent-sdk/pull/4795](https://github.com/OpenHands/software-agent-sdk/pull/4795)
* ci: remove the endpoint-audit PR comment, report via the job summary by @simonrosenberg in [https://github.com/OpenHands/software-agent-sdk/pull/4825](https://github.com/OpenHands/software-agent-sdk/pull/4825)
* test(acp): live conformance + model-acceptance probes for built-in providers (#4830 P0) by @simonrosenberg in [https://github.com/OpenHands/software-agent-sdk/pull/4834](https://github.com/OpenHands/software-agent-sdk/pull/4834)
* ci(typescript-client): run integration tests against the branch's agent-server by @VascoSch92 in [https://github.com/OpenHands/software-agent-sdk/pull/4844](https://github.com/OpenHands/software-agent-sdk/pull/4844)
* perf(sdk): make EventLog.append cost flat against conversation length by @VascoSch92 in [https://github.com/OpenHands/software-agent-sdk/pull/4697](https://github.com/OpenHands/software-agent-sdk/pull/4697)

#### Automation

* perf: remove redundant readiness query by @Linxiushen in [https://github.com/OpenHands/automation/pull/303](https://github.com/OpenHands/automation/pull/303)
* refactor: extract a transport-neutral accept\_event() from the webhook handler by @VascoSch92 in [https://github.com/OpenHands/automation/pull/367](https://github.com/OpenHands/automation/pull/367)
* chore: add Dependabot configuration by @neubig in [https://github.com/OpenHands/automation/pull/372](https://github.com/OpenHands/automation/pull/372)
* docs: document automation repository boundaries by @neubig in [https://github.com/OpenHands/automation/pull/369](https://github.com/OpenHands/automation/pull/369)
* ci: enforce minimum 76% coverage on unit tests by @tofarr in [https://github.com/OpenHands/automation/pull/419](https://github.com/OpenHands/automation/pull/419)

#### OpenHands Cloud (Helm Chart)

* ci: check the agent-server tag against the enterprise SDK pin by @jlav in [https://github.com/OpenHands/OpenHands-Cloud/pull/1167](https://github.com/OpenHands/OpenHands-Cloud/pull/1167)
* ci: make the Replicated deploy check blocking, with a break-glass label \[PLTF-3535] by @dylan-openhands in [https://github.com/OpenHands/OpenHands-Cloud/pull/1187](https://github.com/OpenHands/OpenHands-Cloud/pull/1187)
* test: harden 003 legacy conversations spec (from #1176, without 005 canvas spec) by @tofarr in [https://github.com/OpenHands/OpenHands-Cloud/pull/1200](https://github.com/OpenHands/OpenHands-Cloud/pull/1200)
* docs(skills): PLTF-3531 use --context=0 for helm diff in upgrade-rollback runbook by @aivong-openhands in [https://github.com/OpenHands/OpenHands-Cloud/pull/1206](https://github.com/OpenHands/OpenHands-Cloud/pull/1206)
* test(e2e): verify managed LLM key ownership by @ak684 in [https://github.com/OpenHands/OpenHands-Cloud/pull/1207](https://github.com/OpenHands/OpenHands-Cloud/pull/1207)

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