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

> Release notes for OpenHands Enterprise version 0.55.0

# OpenHands Enterprise 0.55.0

Released August 26, 2026.

## Highlights

* **Daily Conversation Quotas** — Enterprise Server now includes read-only usage pages with reset countdown, org-level exemptions, and self-service quota increase requests
* **Dedicated Sandbox Node Scheduling** — Enterprise installs can configure app and sandbox node roles with affinity across all pod specs and preflight validation
* **Expanded Issue Tracker Support** — Org-scoped Jira Cloud resolver with email-match mode and Azure DevOps webhook configuration
* **Agent SDK Enhancements** — Agent Plugins manifest loader, structured output, pre-flight LLM validation, and read-at-use provider connections
* **Runtime Activity-Based Anchoring** — Runtime reaping, database pruning, and idle-grace periods now anchor on last activity instead of creation time
* **Identity & Billing Improvements** — Hardened Keycloak identity matching using subject instead of email, plus extensive billing and credit-handling fixes

## Features

#### Enterprise Server

* feat(settings): increase LLM profile limit to 50 and make it configurable by @jpelletier1 in [https://github.com/OpenHands/enterprise/pull/114](https://github.com/OpenHands/enterprise/pull/114)
* feat: add cloud workspace file-listing endpoint (OHE-3053) by @lilagrc in [https://github.com/OpenHands/enterprise/pull/135](https://github.com/OpenHands/enterprise/pull/135)
* feat: Expose organization creation teaser UX by @malhotra5 in [https://github.com/OpenHands/enterprise/pull/151](https://github.com/OpenHands/enterprise/pull/151)
* feat: set SaaS default model to Kimi K3 and migrate GLM 5.2 settings by @juanmichelini in [https://github.com/OpenHands/enterprise/pull/190](https://github.com/OpenHands/enterprise/pull/190)
* feat: org-scope the Jira Cloud resolver and add email-match mode for OHE by @hieptl in [https://github.com/OpenHands/enterprise/pull/192](https://github.com/OpenHands/enterprise/pull/192)
* feat(frontend): add data-testid to changes refresh button by @tofarr in [https://github.com/OpenHands/enterprise/pull/203](https://github.com/OpenHands/enterprise/pull/203)
* feat: add daily conversation quota schema foundation by @neubig in [https://github.com/OpenHands/enterprise/pull/180](https://github.com/OpenHands/enterprise/pull/180)
* feat: add read-only quota usage page with reset countdown by @neubig in [https://github.com/OpenHands/enterprise/pull/199](https://github.com/OpenHands/enterprise/pull/199)
* feat: add work-email quota increase requests with self-service verification by @neubig in [https://github.com/OpenHands/enterprise/pull/200](https://github.com/OpenHands/enterprise/pull/200)
* feat: add org-level daily conversation quota exemptions by @neubig in [https://github.com/OpenHands/enterprise/pull/212](https://github.com/OpenHands/enterprise/pull/212)
* feat: accept Jira Cloud picker mentions of the service account by @ak684 in [https://github.com/OpenHands/enterprise/pull/223](https://github.com/OpenHands/enterprise/pull/223)
* feat(settings): auto-rotate invalid managed LLM keys on settings writes by @tofarr in [https://github.com/OpenHands/enterprise/pull/231](https://github.com/OpenHands/enterprise/pull/231)
* feat: migrate Kimi K3 settings to DeepSeek V4 Flash by @neubig in [https://github.com/OpenHands/enterprise/pull/253](https://github.com/OpenHands/enterprise/pull/253)

#### Software Agent SDK

* Feat: structured output by @luciobaiocchi in [https://github.com/OpenHands/software-agent-sdk/pull/4207](https://github.com/OpenHands/software-agent-sdk/pull/4207)
* agent-server: make conversation worktree root configurable by @xmrflipflop in [https://github.com/OpenHands/software-agent-sdk/pull/4362](https://github.com/OpenHands/software-agent-sdk/pull/4362)
* feat(observability): emit LLM and TOOL spans for ACP turns by @simonrosenberg in [https://github.com/OpenHands/software-agent-sdk/pull/4376](https://github.com/OpenHands/software-agent-sdk/pull/4376)
* feat: derive automation conversation tags in base RemoteWorkspace by @hieptl in [https://github.com/OpenHands/software-agent-sdk/pull/4414](https://github.com/OpenHands/software-agent-sdk/pull/4414)
* feat: emit canonical conversation telemetry from agent server by @malhotra5 in [https://github.com/OpenHands/software-agent-sdk/pull/4459](https://github.com/OpenHands/software-agent-sdk/pull/4459)
* feat(hooks): implement prompt-based evaluation by @onatozmenn in [https://github.com/OpenHands/software-agent-sdk/pull/4160](https://github.com/OpenHands/software-agent-sdk/pull/4160)
* feat(security): AST-backed shell command-name resolution (#2721 Phase 2b) by @eeee2345 in [https://github.com/OpenHands/software-agent-sdk/pull/3944](https://github.com/OpenHands/software-agent-sdk/pull/3944)
* feat: add public from\_persisted() entry point to AgentSettingsBase by @mvanhorn in [https://github.com/OpenHands/software-agent-sdk/pull/3503](https://github.com/OpenHands/software-agent-sdk/pull/3503)
* feat(sdk): add cleanup LLM profile for outward agent text by @smolpaws in [https://github.com/OpenHands/software-agent-sdk/pull/4344](https://github.com/OpenHands/software-agent-sdk/pull/4344)
* feat(llm): resolve provider-specific runtime metadata for routed models by @neubig in [https://github.com/OpenHands/software-agent-sdk/pull/4423](https://github.com/OpenHands/software-agent-sdk/pull/4423)
* feat: add pre-flight LLM validation endpoint (POST /api/profiles/{name}/validate) by @neubig in [https://github.com/OpenHands/software-agent-sdk/pull/4422](https://github.com/OpenHands/software-agent-sdk/pull/4422)
* feat: carry ConversationErrorEvent on ConversationRunError for automation callbacks by @neubig in [https://github.com/OpenHands/software-agent-sdk/pull/4458](https://github.com/OpenHands/software-agent-sdk/pull/4458)
* feat(plugin): add Agent Plugins manifest loader (root plugin.json, closed schema) by @VascoSch92 in [https://github.com/OpenHands/software-agent-sdk/pull/4474](https://github.com/OpenHands/software-agent-sdk/pull/4474)
* feat(file-router): add POST /file/create\_directory by @georgeglarson in [https://github.com/OpenHands/software-agent-sdk/pull/4482](https://github.com/OpenHands/software-agent-sdk/pull/4482)
* Add read-at-use LLM provider connections by @juanmichelini in [https://github.com/OpenHands/software-agent-sdk/pull/4492](https://github.com/OpenHands/software-agent-sdk/pull/4492)
* feat: Add deployment kind to agent-server telemetry by @malhotra5 in [https://github.com/OpenHands/software-agent-sdk/pull/4522](https://github.com/OpenHands/software-agent-sdk/pull/4522)
* feat(telemetry): identify automation conversations by @malhotra5 in [https://github.com/OpenHands/software-agent-sdk/pull/4529](https://github.com/OpenHands/software-agent-sdk/pull/4529)
* feat(tools): add structured task outcome preset by @malhotra5 in [https://github.com/OpenHands/software-agent-sdk/pull/4479](https://github.com/OpenHands/software-agent-sdk/pull/4479)
* feat(prompt): mention local conversation history by @neubig in [https://github.com/OpenHands/software-agent-sdk/pull/4527](https://github.com/OpenHands/software-agent-sdk/pull/4527)

#### Automation

* feat(automation): tag local automation conversations by @neubig in [https://github.com/OpenHands/automation/pull/319](https://github.com/OpenHands/automation/pull/319)
* feat: sync automations to a git repository by @VascoSch92 in [https://github.com/OpenHands/automation/pull/327](https://github.com/OpenHands/automation/pull/327)
* feat: accept catalog bundle automations on the raw create path by @VascoSch92 in [https://github.com/OpenHands/automation/pull/346](https://github.com/OpenHands/automation/pull/346)

#### OpenHands Cloud (Helm Chart)

* feat: e2e: restructure for Keycloak admin + dual GitHub user flows by @tofarr in [https://github.com/OpenHands/OpenHands-Cloud/pull/1089](https://github.com/OpenHands/OpenHands-Cloud/pull/1089)
* feat: add configurable daily conversation limit to chart by @neubig in [https://github.com/OpenHands/OpenHands-Cloud/pull/1100](https://github.com/OpenHands/OpenHands-Cloud/pull/1100)
* feat: wire Jira Cloud email-match integration for Replicated installs by @ak684 in [https://github.com/OpenHands/OpenHands-Cloud/pull/1113](https://github.com/OpenHands/OpenHands-Cloud/pull/1113)
* feat: add org-management e2e suite with super-admin REST provisioning by @tofarr in [https://github.com/OpenHands/OpenHands-Cloud/pull/1122](https://github.com/OpenHands/OpenHands-Cloud/pull/1122)
* feat(replicated): declare app and sandbox node roles by @jlav in [https://github.com/OpenHands/OpenHands-Cloud/pull/1133](https://github.com/OpenHands/OpenHands-Cloud/pull/1133)
* feat(chart): add affinity plumbing to all pod specs by @jlav in [https://github.com/OpenHands/OpenHands-Cloud/pull/1134](https://github.com/OpenHands/OpenHands-Cloud/pull/1134)
* feat(replicated): gate dedicated sandbox nodes behind a config option by @jlav in [https://github.com/OpenHands/OpenHands-Cloud/pull/1135](https://github.com/OpenHands/OpenHands-Cloud/pull/1135)
* feat(preflight): warn when dedicated sandbox nodes are enabled with no sandbox node by @jlav in [https://github.com/OpenHands/OpenHands-Cloud/pull/1136](https://github.com/OpenHands/OpenHands-Cloud/pull/1136)
* feat(replicated): PLTF-3461 configure duplicate email checks by @aivong-openhands in [https://github.com/OpenHands/OpenHands-Cloud/pull/1139](https://github.com/OpenHands/OpenHands-Cloud/pull/1139)
* feat(azure-devops): wire the resolver webhook secret into the chart and KOTS config by @ak684 in [https://github.com/OpenHands/OpenHands-Cloud/pull/1160](https://github.com/OpenHands/OpenHands-Cloud/pull/1160)

## Bug Fixes

#### Enterprise Server

* fix: resolve LLM profile keys in /users/me expose-secrets response by @hieptl in [https://github.com/OpenHands/enterprise/pull/168](https://github.com/OpenHands/enterprise/pull/168)
* fix: handle null identity\_provider for direct Keycloak logins by @tofarr in [https://github.com/OpenHands/enterprise/pull/169](https://github.com/OpenHands/enterprise/pull/169)
* fix: URL-encode Redis password in authed URL for coredis/limits by @tofarr in [https://github.com/OpenHands/enterprise/pull/177](https://github.com/OpenHands/enterprise/pull/177)
* fix: close dropdown menu after selection when wrapped in a label by @hieptl in [https://github.com/OpenHands/enterprise/pull/176](https://github.com/OpenHands/enterprise/pull/176)
* fix: stop redacting the Jira DC base URL in agent output by @hieptl in [https://github.com/OpenHands/enterprise/pull/182](https://github.com/OpenHands/enterprise/pull/182)
* fix: inject Bitbucket DC server URL, repo URL, and token context into agent prompt by @hieptl in [https://github.com/OpenHands/enterprise/pull/183](https://github.com/OpenHands/enterprise/pull/183)
* fix(auth): make Keycloak HTTP retries configurable by @neubig in [https://github.com/OpenHands/enterprise/pull/186](https://github.com/OpenHands/enterprise/pull/186)
* fix: OHE-3100 : use sandbox\_spec.working\_dir instead of hardcoded /workspace by @tofarr in [https://github.com/OpenHands/enterprise/pull/188](https://github.com/OpenHands/enterprise/pull/188)
* fix(auth): make LiteLLM management timeout configurable by @neubig in [https://github.com/OpenHands/enterprise/pull/189](https://github.com/OpenHands/enterprise/pull/189)
* fix: handle null runtime context values by @ak684 in [https://github.com/OpenHands/enterprise/pull/112](https://github.com/OpenHands/enterprise/pull/112)
* fix: use agent server as conversation creation source by @malhotra5 in [https://github.com/OpenHands/enterprise/pull/156](https://github.com/OpenHands/enterprise/pull/156)
* fix: let managed LLM profiles take the org's current key on rotation by @dylan-openhands in [https://github.com/OpenHands/enterprise/pull/178](https://github.com/OpenHands/enterprise/pull/178)
* fix(budgets): persist maintenance updates by @saurya in [https://github.com/OpenHands/enterprise/pull/204](https://github.com/OpenHands/enterprise/pull/204)
* fix: let free-tier (no-credit) teams run \$0-cost models by @juanmichelini in [https://github.com/OpenHands/enterprise/pull/143](https://github.com/OpenHands/enterprise/pull/143)
* fix: protect personal organization billing credits by @saurya in [https://github.com/OpenHands/enterprise/pull/167](https://github.com/OpenHands/enterprise/pull/167)
* fix(budgets): prevent per-user allowance renewal on sync by @saurya in [https://github.com/OpenHands/enterprise/pull/205](https://github.com/OpenHands/enterprise/pull/205)
* fix: display usage monitoring timestamps in local time by @saurya in [https://github.com/OpenHands/enterprise/pull/208](https://github.com/OpenHands/enterprise/pull/208)
* fix: use verified repo provider in Jira Cloud conversation start request by @ak684 in [https://github.com/OpenHands/enterprise/pull/216](https://github.com/OpenHands/enterprise/pull/216)
* fix(billing): show personal-workspace credits without a member budget row by @aivong-openhands in [https://github.com/OpenHands/enterprise/pull/218](https://github.com/OpenHands/enterprise/pull/218)
* fix: clarify Jira email-visibility guidance with exact setting and delay by @ak684 in [https://github.com/OpenHands/enterprise/pull/222](https://github.com/OpenHands/enterprise/pull/222)
* fix(enterprise): match provisioned user on Keycloak sub, not email by @tofarr in [https://github.com/OpenHands/enterprise/pull/224](https://github.com/OpenHands/enterprise/pull/224)
* fix(enterprise): match on Keycloak sub in TOCTOU idempotent recovery too by @tofarr in [https://github.com/OpenHands/enterprise/pull/225](https://github.com/OpenHands/enterprise/pull/225)
* fix(enterprise): await session.merge in billing success callback by @tofarr in [https://github.com/OpenHands/enterprise/pull/226](https://github.com/OpenHands/enterprise/pull/226)
* fix: OHE-3127 : return null credits instead of 503 when budget is None by @tofarr in [https://github.com/OpenHands/enterprise/pull/228](https://github.com/OpenHands/enterprise/pull/228)
* fix: return 0 credits instead of None for users without a budget by @tofarr in [https://github.com/OpenHands/enterprise/pull/238](https://github.com/OpenHands/enterprise/pull/238)
* fix(settings): stop a member's settings save writing to the whole org by @jlav in [https://github.com/OpenHands/enterprise/pull/254](https://github.com/OpenHands/enterprise/pull/254)

#### Software Agent SDK

* fix(mcp): close reconciliation gaps left by #4367 by @VascoSch92 in [https://github.com/OpenHands/software-agent-sdk/pull/4369](https://github.com/OpenHands/software-agent-sdk/pull/4369)
* fix(acp): recover credential monitor after transient errors by @simonrosenberg in [https://github.com/OpenHands/software-agent-sdk/pull/4403](https://github.com/OpenHands/software-agent-sdk/pull/4403)
* fix(sdk): make ACP auth failures self-diagnosing by @simonrosenberg in [https://github.com/OpenHands/software-agent-sdk/pull/4404](https://github.com/OpenHands/software-agent-sdk/pull/4404)
* fix(observability): record non-executed tool results by @simonrosenberg in [https://github.com/OpenHands/software-agent-sdk/pull/4415](https://github.com/OpenHands/software-agent-sdk/pull/4415)
* fix(agent-server): compose ConversationInfo off the event loop to avoid GC wedge by @neubig in [https://github.com/OpenHands/software-agent-sdk/pull/4417](https://github.com/OpenHands/software-agent-sdk/pull/4417)
* fix(agent-server): initialize observability after deferred env by @Shimada666 in [https://github.com/OpenHands/software-agent-sdk/pull/4426](https://github.com/OpenHands/software-agent-sdk/pull/4426)
* fix(settings): inherit condenser max\_tokens from LLM effective\_max\_input\_tokens by @vnktadithya in [https://github.com/OpenHands/software-agent-sdk/pull/4435](https://github.com/OpenHands/software-agent-sdk/pull/4435)
* fix(goal): don't halt the goal loop on a STUCK run by @all-hands-bot in [https://github.com/OpenHands/software-agent-sdk/pull/4381](https://github.com/OpenHands/software-agent-sdk/pull/4381)
* fix(llm): stop serializing calls through global config by @neubig in [https://github.com/OpenHands/software-agent-sdk/pull/4473](https://github.com/OpenHands/software-agent-sdk/pull/4473)
* fix(security-scan): improve release security scan comment by @all-hands-bot in [https://github.com/OpenHands/software-agent-sdk/pull/4397](https://github.com/OpenHands/software-agent-sdk/pull/4397)
* fix(profiles): repair v1 skills migration by @neubig in [https://github.com/OpenHands/software-agent-sdk/pull/4320](https://github.com/OpenHands/software-agent-sdk/pull/4320)
* fix(agent-server): base\_state.json as single source of truth for the agent (end meta.json duplication) by @enyst in [https://github.com/OpenHands/software-agent-sdk/pull/4440](https://github.com/OpenHands/software-agent-sdk/pull/4440)
* fix(sdk): cap condenser token limit by agent context by @neubig in [https://github.com/OpenHands/software-agent-sdk/pull/4461](https://github.com/OpenHands/software-agent-sdk/pull/4461)
* fix(agent-server): move bash event search off event loop and replace glob with scandir by @neubig in [https://github.com/OpenHands/software-agent-sdk/pull/4481](https://github.com/OpenHands/software-agent-sdk/pull/4481)
* fix: redact API key from validate\_profile error responses and logs by @all-hands-bot in [https://github.com/OpenHands/software-agent-sdk/pull/4506](https://github.com/OpenHands/software-agent-sdk/pull/4506)
* fix: make dict-entry secret redaction case-insensitive by @chintan-diwakar in [https://github.com/OpenHands/software-agent-sdk/pull/4508](https://github.com/OpenHands/software-agent-sdk/pull/4508)
* fix(agent-server): propagate out-of-band run failures as ConversationErrorEvent (#16686) by @VascoSch92 in [https://github.com/OpenHands/software-agent-sdk/pull/4535](https://github.com/OpenHands/software-agent-sdk/pull/4535)
* fix(sdk): normalize Kimi K3 vision metadata by @malhotra5 in [https://github.com/OpenHands/software-agent-sdk/pull/4567](https://github.com/OpenHands/software-agent-sdk/pull/4567)
* fix(agent): keep terminal prefix aliases from doubling an existing executable by @onatozmenn in [https://github.com/OpenHands/software-agent-sdk/pull/4471](https://github.com/OpenHands/software-agent-sdk/pull/4471)
* fix(sdk): resolve workspace default from active LLM profile by @neubig in [https://github.com/OpenHands/software-agent-sdk/pull/4497](https://github.com/OpenHands/software-agent-sdk/pull/4497)

#### Runtime API

* fix: anchor runtime reaping and DB pruning on last activity, not creation time by @hieptl in [https://github.com/OpenHands/runtime-api/pull/707](https://github.com/OpenHands/runtime-api/pull/707)
* fix: anchor the idle-grace period on last\_state\_change, not created\_at by @hieptl in [https://github.com/OpenHands/runtime-api/pull/713](https://github.com/OpenHands/runtime-api/pull/713)
* fix: OHE-3100 : root-owned working\_dir subdirs on PVC via init container by @tofarr in [https://github.com/OpenHands/runtime-api/pull/714](https://github.com/OpenHands/runtime-api/pull/714)
* fix: reorder cleanup phases and resume expired deployment list tokens by @dylan-openhands in [https://github.com/OpenHands/runtime-api/pull/712](https://github.com/OpenHands/runtime-api/pull/712)

#### Automation

* fix: stop marking successful automation runs as FAILED by @hieptl in [https://github.com/OpenHands/automation/pull/331](https://github.com/OpenHands/automation/pull/331)

#### OpenHands Cloud (Helm Chart)

* fix: Bound Laminar ClickHouse diagnostic log retention by @juanmichelini in [https://github.com/OpenHands/OpenHands-Cloud/pull/1031](https://github.com/OpenHands/OpenHands-Cloud/pull/1031)
* fix: wire installer SMTP config into Keycloak realm email by @hieptl in [https://github.com/OpenHands/OpenHands-Cloud/pull/1090](https://github.com/OpenHands/OpenHands-Cloud/pull/1090)
* fix(e2e): handle onboarding-form and 2FA auto-navigate race conditions by @tofarr in [https://github.com/OpenHands/OpenHands-Cloud/pull/1091](https://github.com/OpenHands/OpenHands-Cloud/pull/1091)
* fix(e2e): enable role during static discovery by @saurya in [https://github.com/OpenHands/OpenHands-Cloud/pull/1099](https://github.com/OpenHands/OpenHands-Cloud/pull/1099)
* fix(e2e): replace networkidle waits and fix Promise.race short-circuit by @tofarr in [https://github.com/OpenHands/OpenHands-Cloud/pull/1108](https://github.com/OpenHands/OpenHands-Cloud/pull/1108)
* fix(automation): keep events service available during node drains by @aivong-openhands in [https://github.com/OpenHands/OpenHands-Cloud/pull/1112](https://github.com/OpenHands/OpenHands-Cloud/pull/1112)
* fix: refresh changes panel when empty in VSCode integration test by @tofarr in [https://github.com/OpenHands/OpenHands-Cloud/pull/1114](https://github.com/OpenHands/OpenHands-Cloud/pull/1114)
* fix(e2e): order API keys spec after billing so new-user has credits by @tofarr in [https://github.com/OpenHands/OpenHands-Cloud/pull/1118](https://github.com/OpenHands/OpenHands-Cloud/pull/1118)
* fix(e2e): PLTF-3461 honor AUTH\_BASE\_URL for Keycloak admin URL by @aivong-openhands in [https://github.com/OpenHands/OpenHands-Cloud/pull/1126](https://github.com/OpenHands/OpenHands-Cloud/pull/1126)
* fix(chart): set the warm pool working dir to /workspace/project by @jlav in [https://github.com/OpenHands/OpenHands-Cloud/pull/1140](https://github.com/OpenHands/OpenHands-Cloud/pull/1140)
* fix(deploy): tolerate a restarting kotsadm in replicated\_deploy.sh by @dylan-openhands in [https://github.com/OpenHands/OpenHands-Cloud/pull/1141](https://github.com/OpenHands/OpenHands-Cloud/pull/1141)
* fix(e2e): PLTF-3461 move the credit-gated API key check into the billing suite by @aivong-openhands in [https://github.com/OpenHands/OpenHands-Cloud/pull/1143](https://github.com/OpenHands/OpenHands-Cloud/pull/1143)
* fix(ci): PLTF-3461 call the E2E trigger from each release workflow by @aivong-openhands in [https://github.com/OpenHands/OpenHands-Cloud/pull/1144](https://github.com/OpenHands/OpenHands-Cloud/pull/1144)

## Maintenance

#### Enterprise Server

* chore: remove dead localStorage feature-flag mechanism by @tofarr in [https://github.com/OpenHands/enterprise/pull/230](https://github.com/OpenHands/enterprise/pull/230)
* docs: Replace with Polyform License by @jpelletier1 in [https://github.com/OpenHands/enterprise/pull/240](https://github.com/OpenHands/enterprise/pull/240)

#### Software Agent SDK

* chore: drop the OpenHands/OpenHands bump-PR target from version-bump-prs.yml by @VascoSch92 in [https://github.com/OpenHands/software-agent-sdk/pull/4400](https://github.com/OpenHands/software-agent-sdk/pull/4400)
* refactor(plugin): extract PluginFormat strategy (prep for Agent Plugins support) by @jpshackelford in [https://github.com/OpenHands/software-agent-sdk/pull/4420](https://github.com/OpenHands/software-agent-sdk/pull/4420)
* chore(ci): collapse the auto-posted Agent Server images PR section by @smolpaws in [https://github.com/OpenHands/software-agent-sdk/pull/4442](https://github.com/OpenHands/software-agent-sdk/pull/4442)
* Add ready-for-dev issue and PR gates by @neubig in [https://github.com/OpenHands/software-agent-sdk/pull/4464](https://github.com/OpenHands/software-agent-sdk/pull/4464)
* test(terminal): stabilize Windows Ctrl-C cleanup assertion by @neubig in [https://github.com/OpenHands/software-agent-sdk/pull/4290](https://github.com/OpenHands/software-agent-sdk/pull/4290)
* perf(agent-server): cache unchanged conversation summaries by @neubig in [https://github.com/OpenHands/software-agent-sdk/pull/4483](https://github.com/OpenHands/software-agent-sdk/pull/4483)
* ci: re-run PR description check when new commits are pushed by @VascoSch92 in [https://github.com/OpenHands/software-agent-sdk/pull/4486](https://github.com/OpenHands/software-agent-sdk/pull/4486)
* Weekly test sweep: remove low-value tests + simplify by @enyst in [https://github.com/OpenHands/software-agent-sdk/pull/4484](https://github.com/OpenHands/software-agent-sdk/pull/4484)
* test(sdk): pin events\_to\_messages boundaries + fix responses\_reasoning\_item batch drop by @georgeglarson in [https://github.com/OpenHands/software-agent-sdk/pull/4526](https://github.com/OpenHands/software-agent-sdk/pull/4526)
* test(sdk): pin send\_message skill-activation wiring by @georgeglarson in [https://github.com/OpenHands/software-agent-sdk/pull/4536](https://github.com/OpenHands/software-agent-sdk/pull/4536)

#### Automation

* chore: add success logging for tarball storage writes and deletes by @jpshackelford in [https://github.com/OpenHands/automation/pull/335](https://github.com/OpenHands/automation/pull/335)
* chore: remove QA changes workflow by @neubig in [https://github.com/OpenHands/automation/pull/340](https://github.com/OpenHands/automation/pull/340)

#### OpenHands Cloud (Helm Chart)

* test(e2e): add Playwright release harness by @saurya in [https://github.com/OpenHands/OpenHands-Cloud/pull/1048](https://github.com/OpenHands/OpenHands-Cloud/pull/1048)
* test(e2e): cover organization-scoped member API keys by @saurya in [https://github.com/OpenHands/OpenHands-Cloud/pull/1049](https://github.com/OpenHands/OpenHands-Cloud/pull/1049)
* test(e2e): add optional ReportPortal reporting by @saurya in [https://github.com/OpenHands/OpenHands-Cloud/pull/1088](https://github.com/OpenHands/OpenHands-Cloud/pull/1088)
* test(e2e): make returning/new-user roles opt-in via \*\_GITHUB\_USERNAME by @tofarr in [https://github.com/OpenHands/OpenHands-Cloud/pull/1092](https://github.com/OpenHands/OpenHands-Cloud/pull/1092)
* test(e2e): migrate Stripe credit purchase into billing suite by @tofarr in [https://github.com/OpenHands/OpenHands-Cloud/pull/1094](https://github.com/OpenHands/OpenHands-Cloud/pull/1094)
* test(e2e): migrate home avatar and user-menu tests by @tofarr in [https://github.com/OpenHands/OpenHands-Cloud/pull/1095](https://github.com/OpenHands/OpenHands-Cloud/pull/1095)
* test(e2e): remove example.spec.ts by @tofarr in [https://github.com/OpenHands/OpenHands-Cloud/pull/1096](https://github.com/OpenHands/OpenHands-Cloud/pull/1096)
* test(e2e): migrate API key creation and API access test by @tofarr in [https://github.com/OpenHands/OpenHands-Cloud/pull/1097](https://github.com/OpenHands/OpenHands-Cloud/pull/1097)
* test(e2e): migrate legacy conversation control tests by @tofarr in [https://github.com/OpenHands/OpenHands-Cloud/pull/1101](https://github.com/OpenHands/OpenHands-Cloud/pull/1101)
* ci: auto-deploy Replicated releases to internal instances by @dylan-openhands in [https://github.com/OpenHands/OpenHands-Cloud/pull/1123](https://github.com/OpenHands/OpenHands-Cloud/pull/1123)
* ci: PLTF-3461 run E2E after Replicated deploys by @aivong-openhands in [https://github.com/OpenHands/OpenHands-Cloud/pull/1129](https://github.com/OpenHands/OpenHands-Cloud/pull/1129)
* ci: name the Replicated release workflows consistently for README badges by @dylan-openhands in [https://github.com/OpenHands/OpenHands-Cloud/pull/1131](https://github.com/OpenHands/OpenHands-Cloud/pull/1131)
* ci: fix unparseable expression in deploy-replicated, lint workflows in CI by @dylan-openhands in [https://github.com/OpenHands/OpenHands-Cloud/pull/1132](https://github.com/OpenHands/OpenHands-Cloud/pull/1132)

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