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

> Release notes for OpenHands Enterprise version 0.103.0

# OpenHands Enterprise 0.103.0

Released November 6, 2026.

## Highlights

* **Multi-Repository Conversations** — Start a conversation with several repositories from the web app, Slack, Jira, or Jira Data Center. The agent can clone private repositories from any connected git provider.
* **Model Routing** — Organization admins can create a Model Router that picks the model for each conversation. It is on by default; turn it off with **Enable Model Routing** in the Admin Console.
* **Bitbucket Data Center** — Add Bitbucket Data Center as a git provider and trigger automations from its pull request events.
* **Service Accounts (Beta)** — Super Admins can turn on service accounts from the Instance page and run automations under them instead of a personal account.
* **Installation and Security** — Use your own TLS certificate secret, restrict sandbox egress with an opt-in NetworkPolicy, and limit password login to permitted email patterns. Images now distrust the compromised emSign certificate authorities.

## Upgrade Notes

* **Public conversation links require organization membership** — A conversation shared publicly from an organization can now be opened only by signed-in members of that organization. Links shared from a Personal Workspace are unchanged.
* **Azure DevOps Organization setting removed** — Azure DevOps now works across every organization a user belongs to, so this Admin Console field is gone. No action is needed.
* **Docker Compose port changed to 9043** — The stack no longer conflicts with Agent Canvas on `3100`. Update bookmarks and tunnels, or set `APP_PORT=3100` to keep the old port.

## Features

#### Enterprise Server

* feat(compose): add HTTPS overlays for the compose stack by @jlav in [https://github.com/OpenHands/enterprise/pull/1015](https://github.com/OpenHands/enterprise/pull/1015)
* feat: Expose OAuth access tokens to conversations under a configurable named\_secret by @tofarr in [https://github.com/OpenHands/enterprise/pull/1024](https://github.com/OpenHands/enterprise/pull/1024)
* feat(compose): PLTF-3689 add Redis so GitLab webhook events are processed by @aivong-openhands in [https://github.com/OpenHands/enterprise/pull/1002](https://github.com/OpenHands/enterprise/pull/1002)
* feat(llm): offer OpenHands Cloud as an LLM provider when LiteLLM is off (OHE-3698) by @hieptl in [https://github.com/OpenHands/enterprise/pull/1017](https://github.com/OpenHands/enterprise/pull/1017)
* feat(sharing): limit public shares from team orgs to org members (OHE-3763) by @hieptl in [https://github.com/OpenHands/enterprise/pull/1026](https://github.com/OpenHands/enterprise/pull/1026)
* feat(secrets): replace organization secret values atomically (OHE-3674) by @rajshah4 in [https://github.com/OpenHands/enterprise/pull/917](https://github.com/OpenHands/enterprise/pull/917)
* feat(model-router): add org Model Router storage, API and feature flag (OHE-3766) by @hieptl in [https://github.com/OpenHands/enterprise/pull/1032](https://github.com/OpenHands/enterprise/pull/1032)
* feat(jira-dc): forward Jira DC events to every org with a Jira DC automation by @ak684 in [https://github.com/OpenHands/enterprise/pull/1043](https://github.com/OpenHands/enterprise/pull/1043)
* feat(app-conversations): start a conversation with several repositories by @ak684 in [https://github.com/OpenHands/enterprise/pull/1046](https://github.com/OpenHands/enterprise/pull/1046)
* feat(git): credential helper for every provider so hooks and the agent can clone any private repository by @ak684 in [https://github.com/OpenHands/enterprise/pull/1070](https://github.com/OpenHands/enterprise/pull/1070)
* feat(app-conversation): read files, diffs, skills and hooks of every repository in a multi-repository conversation by @ak684 in [https://github.com/OpenHands/enterprise/pull/1073](https://github.com/OpenHands/enterprise/pull/1073)
* feat(jira-dc): start one conversation when a ticket names several repositories by @ak684 in [https://github.com/OpenHands/enterprise/pull/1074](https://github.com/OpenHands/enterprise/pull/1074)
* feat(auth): configurable identity attribute mapping per auth provider by @tofarr in [https://github.com/OpenHands/enterprise/pull/1091](https://github.com/OpenHands/enterprise/pull/1091)
* feat: Show skill descriptions in expandable rows on the Skills settings page by @tofarr in [https://github.com/OpenHands/enterprise/pull/1101](https://github.com/OpenHands/enterprise/pull/1101)
* feat: generate conversation titles alongside sandbox startup by @ak684 in [https://github.com/OpenHands/enterprise/pull/1119](https://github.com/OpenHands/enterprise/pull/1119)
* feat(service-accounts): add the service account admin API by @henriquehirako in [https://github.com/OpenHands/enterprise/pull/1049](https://github.com/OpenHands/enterprise/pull/1049)
* feat(frontend): add the service accounts settings page by @henriquehirako in [https://github.com/OpenHands/enterprise/pull/1050](https://github.com/OpenHands/enterprise/pull/1050)
* feat(service-accounts): put service accounts behind the ENABLE\_SERVICE\_ACCOUNTS feature flag by @henriquehirako in [https://github.com/OpenHands/enterprise/pull/1088](https://github.com/OpenHands/enterprise/pull/1088)
* feat: Add Bitbucket Data Center option to the Add Provider modal (OHE-3815) by @tofarr in [https://github.com/OpenHands/enterprise/pull/1143](https://github.com/OpenHands/enterprise/pull/1143)
* feat(jira): start one conversation when a ticket names several repositories by @ak684 in [https://github.com/OpenHands/enterprise/pull/1085](https://github.com/OpenHands/enterprise/pull/1085)
* feat(slack): start with every repository named in the message; multi-select picker otherwise by @ak684 in [https://github.com/OpenHands/enterprise/pull/1086](https://github.com/OpenHands/enterprise/pull/1086)
* feat: Restrict password login to permitted email patterns (OHE-3912) by @tofarr in [https://github.com/OpenHands/enterprise/pull/1180](https://github.com/OpenHands/enterprise/pull/1180)
* feat(compose): add a support bundle script for log collection by @jlav in [https://github.com/OpenHands/enterprise/pull/1178](https://github.com/OpenHands/enterprise/pull/1178)
* feat(frontend): name the product and link its terms on the accept-ToS page (OHE-3865) by @hieptl in [https://github.com/OpenHands/enterprise/pull/1173](https://github.com/OpenHands/enterprise/pull/1173)
* feat(super-admin): add a Connect Git step to the setup guide (OHE-3901) by @hieptl in [https://github.com/OpenHands/enterprise/pull/1199](https://github.com/OpenHands/enterprise/pull/1199)

#### Software Agent SDK

* feat(workspace): clone Bitbucket Data Center repositories by @ak684 in [https://github.com/OpenHands/software-agent-sdk/pull/6281](https://github.com/OpenHands/software-agent-sdk/pull/6281)
* feat(sdk): make ThinkTool opt-in instead of a default tool by @neubig in [https://github.com/OpenHands/software-agent-sdk/pull/6159](https://github.com/OpenHands/software-agent-sdk/pull/6159)

#### Runtime API

* feat: PLTF-3529 make runtime command optional to preserve image entrypoint by @aivong-openhands in [https://github.com/OpenHands/runtime-api/pull/749](https://github.com/OpenHands/runtime-api/pull/749)

#### Automation

* feat: support tags on automations by @VascoSch92 in [https://github.com/OpenHands/automation/pull/622](https://github.com/OpenHands/automation/pull/622)
* feat(events): publish Jira DC and Bitbucket DC event catalogs by @ak684 in [https://github.com/OpenHands/automation/pull/653](https://github.com/OpenHands/automation/pull/653)
* feat: let automation run as a service account by @henriquehirako in [https://github.com/OpenHands/automation/pull/655](https://github.com/OpenHands/automation/pull/655)
* feat: record who started a manual run by @henriquehirako in [https://github.com/OpenHands/automation/pull/662](https://github.com/OpenHands/automation/pull/662)
* feat: name runs after Jira DC issues and Bitbucket DC pull requests by @ak684 in [https://github.com/OpenHands/automation/pull/684](https://github.com/OpenHands/automation/pull/684)
* feat(events): deduplicate Jira DC and Bitbucket DC events on their delivery ids by @ak684 in [https://github.com/OpenHands/automation/pull/686](https://github.com/OpenHands/automation/pull/686)
* feat(events): publish an Azure DevOps event catalog by @ak684 in [https://github.com/OpenHands/automation/pull/687](https://github.com/OpenHands/automation/pull/687)
* feat: plugin-spec automations from private repositories by @ak684 in [https://github.com/OpenHands/automation/pull/696](https://github.com/OpenHands/automation/pull/696)

#### OpenHands Cloud (Helm Chart)

* feat(openhands): add opt-in sandbox egress NetworkPolicy by @jlav in [https://github.com/OpenHands/OpenHands-Cloud/pull/1504](https://github.com/OpenHands/OpenHands-Cloud/pull/1504)
* feat(replicated): default new embedded cluster installs to a 3-day sandbox deletion time \[PLTF-3913] by @dylan-openhands in [https://github.com/OpenHands/OpenHands-Cloud/pull/1477](https://github.com/OpenHands/OpenHands-Cloud/pull/1477)
* feat(openhands): serve a customer-managed tls secret via tls.existingSecret \[PLTF-3913] by @dylan-openhands in [https://github.com/OpenHands/OpenHands-Cloud/pull/1478](https://github.com/OpenHands/OpenHands-Cloud/pull/1478)
* feat(replicated): add a certificate source option for customer-managed tls secrets \[PLTF-3913] by @dylan-openhands in [https://github.com/OpenHands/OpenHands-Cloud/pull/1479](https://github.com/OpenHands/OpenHands-Cloud/pull/1479)

## Bug Fixes

#### Enterprise Server

* fix(auth): link logins by email based on the provider setting alone (OHE-3723) by @tofarr in [https://github.com/OpenHands/enterprise/pull/986](https://github.com/OpenHands/enterprise/pull/986)
* fix: OHE-3737: only lock out unverified users when REQUIRE\_VERIFIED\_EMAILS is on by @tofarr in [https://github.com/OpenHands/enterprise/pull/992](https://github.com/OpenHands/enterprise/pull/992)
* fix: Skip git-info 401 auto-logout when OAuth v2 login is enabled (OHE-3739) by @tofarr in [https://github.com/OpenHands/enterprise/pull/994](https://github.com/OpenHands/enterprise/pull/994)
* fix(security): declare certifi>=2026.10.19 floor in pyproject.toml by @neubig in [https://github.com/OpenHands/enterprise/pull/981](https://github.com/OpenHands/enterprise/pull/981)
* fix(compose): PLTF-3689 let background jobs use linked git accounts by @aivong-openhands in [https://github.com/OpenHands/enterprise/pull/888](https://github.com/OpenHands/enterprise/pull/888)
* fix(slack): show the agent server's error when a conversation fails to start (OHE-3564) by @hieptl in [https://github.com/OpenHands/enterprise/pull/1021](https://github.com/OpenHands/enterprise/pull/1021)
* fix(skills): rebuild PathTrigger from agent-server skill paths (OHE-3565) by @hieptl in [https://github.com/OpenHands/enterprise/pull/1016](https://github.com/OpenHands/enterprise/pull/1016)
* fix: Clear Agent Canvas's active backend from storage on logout (OHE-3743) by @tofarr in [https://github.com/OpenHands/enterprise/pull/999](https://github.com/OpenHands/enterprise/pull/999)
* fix(budgets): make alert thresholds editable instead of preset values (OHE-3408) by @hieptl in [https://github.com/OpenHands/enterprise/pull/1022](https://github.com/OpenHands/enterprise/pull/1022)
* fix: Test linked git provider tokens on the Integrations page (OHE-3741) by @tofarr in [https://github.com/OpenHands/enterprise/pull/1006](https://github.com/OpenHands/enterprise/pull/1006)
* fix(secrets): reject unsupported org secret updates and invalid names (OHE-3674) by @rajshah4 in [https://github.com/OpenHands/enterprise/pull/916](https://github.com/OpenHands/enterprise/pull/916)
* fix(secrets): bind sandbox secret lookups to the launch organization (OHE-3674) by @rajshah4 in [https://github.com/OpenHands/enterprise/pull/915](https://github.com/OpenHands/enterprise/pull/915)
* fix(codex): write rotated Codex credentials back to CODEX\_AUTH\_JSON (OHE-3289) by @hieptl in [https://github.com/OpenHands/enterprise/pull/1018](https://github.com/OpenHands/enterprise/pull/1018)
* fix: Request offline\_access so OAuth v2 Azure DevOps tokens can refresh (OHE-3817) by @tofarr in [https://github.com/OpenHands/enterprise/pull/1077](https://github.com/OpenHands/enterprise/pull/1077)
* fix(integrations): serve git provider webhook routes with OAuth v2 login by @tofarr in [https://github.com/OpenHands/enterprise/pull/1080](https://github.com/OpenHands/enterprise/pull/1080)
* fix(app-conversations): install .openhands/pre-commit.sh in the repository by @ak684 in [https://github.com/OpenHands/enterprise/pull/1067](https://github.com/OpenHands/enterprise/pull/1067)
* fix(automations): use the provider connection of a pinned LLM profile by @henriquehirako in [https://github.com/OpenHands/enterprise/pull/1041](https://github.com/OpenHands/enterprise/pull/1041)
* fix(profiles): use the provider connection wherever a saved profile becomes a live LLM by @henriquehirako in [https://github.com/OpenHands/enterprise/pull/1051](https://github.com/OpenHands/enterprise/pull/1051)
* fix(auth): accept only session cookies as openhands\_auth (OHE-3812) by @hieptl in [https://github.com/OpenHands/enterprise/pull/1066](https://github.com/OpenHands/enterprise/pull/1066)
* fix(app-conversations): keep git tokens out of the sandbox clone URL (OHE-3812) by @hieptl in [https://github.com/OpenHands/enterprise/pull/1064](https://github.com/OpenHands/enterprise/pull/1064)
* fix(auth): scope every JwtService JWS to an audience (OHE-3812) by @tofarr in [https://github.com/OpenHands/enterprise/pull/1093](https://github.com/OpenHands/enterprise/pull/1093)
* fix: add direct admin user sandbox quota setter by @neubig in [https://github.com/OpenHands/enterprise/pull/1071](https://github.com/OpenHands/enterprise/pull/1071)
* fix: keep intentional logout free of credentials error toasts by @ak684 in [https://github.com/OpenHands/enterprise/pull/1116](https://github.com/OpenHands/enterprise/pull/1116)
* fix(skills): list the extensions public skills on the skills settings page by @tofarr in [https://github.com/OpenHands/enterprise/pull/1102](https://github.com/OpenHands/enterprise/pull/1102)
* fix(org): onboard new invitees through the integrated IDP sign-up form (OHE-3825) by @hieptl in [https://github.com/OpenHands/enterprise/pull/1082](https://github.com/OpenHands/enterprise/pull/1082)
* fix(auth): keep org-bound API keys in step with org membership by @henriquehirako in [https://github.com/OpenHands/enterprise/pull/1047](https://github.com/OpenHands/enterprise/pull/1047)
* fix: OAuth v2 user lookup for Bitbucket Data Center and Cloud (OHE-3815) by @tofarr in [https://github.com/OpenHands/enterprise/pull/1135](https://github.com/OpenHands/enterprise/pull/1135)
* fix(sandbox): scope quota cleanup to the sandbox owner by @ak684 in [https://github.com/OpenHands/enterprise/pull/1153](https://github.com/OpenHands/enterprise/pull/1153)
* fix(slack): handle mentions that arrive without client\_msg\_id by @ak684 in [https://github.com/OpenHands/enterprise/pull/1146](https://github.com/OpenHands/enterprise/pull/1146)
* fix(slack): complete the Slack install without Keycloak when OAuth v2 login is on (OHE-3876) by @tofarr in [https://github.com/OpenHands/enterprise/pull/1156](https://github.com/OpenHands/enterprise/pull/1156)
* fix(jira-dc): show the Jira DC connection in Settings to members of every org by @ak684 in [https://github.com/OpenHands/enterprise/pull/1192](https://github.com/OpenHands/enterprise/pull/1192)
* fix: Link OAuth provider form to provider app setup pages by @tofarr in [https://github.com/OpenHands/enterprise/pull/1190](https://github.com/OpenHands/enterprise/pull/1190)
* fix(llm): never launch a managed-proxy LLM with a member's custom key (OHE-3852) by @hieptl in [https://github.com/OpenHands/enterprise/pull/1152](https://github.com/OpenHands/enterprise/pull/1152)
* fix(idp): land sign-up link invitees in their org and hide personal workspaces on Compose (OHE-3902) by @hieptl in [https://github.com/OpenHands/enterprise/pull/1181](https://github.com/OpenHands/enterprise/pull/1181)
* fix(super-admin): clarify the LLM step and suggest the organization name in the install wizard (OHE-3906) by @hieptl in [https://github.com/OpenHands/enterprise/pull/1189](https://github.com/OpenHands/enterprise/pull/1189)
* fix(skills): say which Git provider to connect when a private marketplace cannot be cloned (OHE-3907) by @hieptl in [https://github.com/OpenHands/enterprise/pull/1182](https://github.com/OpenHands/enterprise/pull/1182)
* fix(secrets): hide edit and delete actions for the system-managed OPENHANDS\_API\_KEY (OHE-3879) by @hieptl in [https://github.com/OpenHands/enterprise/pull/1174](https://github.com/OpenHands/enterprise/pull/1174)
* fix: name provider tokens GITHUB\_TOKEN in sandbox secrets endpoints by @jpshackelford in [https://github.com/OpenHands/enterprise/pull/752](https://github.com/OpenHands/enterprise/pull/752)
* fix(compose): keep app and sandbox traffic on the Docker network by @jlav in [https://github.com/OpenHands/enterprise/pull/1207](https://github.com/OpenHands/enterprise/pull/1207)

#### Software Agent SDK

* fix(security): pin Debian snapshot to 20261021 so system ca-certificates distrusts emSign G3 by @neubig in [https://github.com/OpenHands/software-agent-sdk/pull/6167](https://github.com/OpenHands/software-agent-sdk/pull/6167)
* fix(security): update locked Zod to 4.6.7 by @smolpaws in [https://github.com/OpenHands/software-agent-sdk/pull/6202](https://github.com/OpenHands/software-agent-sdk/pull/6202)
* fix(security): ship Node.js fixed for CVE-2026-111497 (Brotli) in agent-server images by @ElanHasson in [https://github.com/OpenHands/software-agent-sdk/pull/6200](https://github.com/OpenHands/software-agent-sdk/pull/6200)
* fix(llm): honor provider retry delays without retrying early by @ak684 in [https://github.com/OpenHands/software-agent-sdk/pull/6274](https://github.com/OpenHands/software-agent-sdk/pull/6274)
* fix(agent-server): expand secret references in the MCP connection test by @ak684 in [https://github.com/OpenHands/software-agent-sdk/pull/6157](https://github.com/OpenHands/software-agent-sdk/pull/6157)
* fix(sdk): keep a conversation loadable when an event file is missing by @CodeAlex52 in [https://github.com/OpenHands/software-agent-sdk/pull/6197](https://github.com/OpenHands/software-agent-sdk/pull/6197)
* fix(llm): temporarily map exact SGLang context overflow errors by @neubig in [https://github.com/OpenHands/software-agent-sdk/pull/6301](https://github.com/OpenHands/software-agent-sdk/pull/6301)
* fix(agent-server): re-check containment for directory index.html by @VascoSch92 in [https://github.com/OpenHands/software-agent-sdk/pull/6316](https://github.com/OpenHands/software-agent-sdk/pull/6316)
* fix(sdk): never send an LLM request that ends with the assistant turn by @hieptl in [https://github.com/OpenHands/software-agent-sdk/pull/6309](https://github.com/OpenHands/software-agent-sdk/pull/6309)
* fix(tools): read the current page in browser\_get\_content by @ak684 in [https://github.com/OpenHands/software-agent-sdk/pull/6329](https://github.com/OpenHands/software-agent-sdk/pull/6329)
* fix(sdk): mask the longest overlapping secret value first by @yftx293 in [https://github.com/OpenHands/software-agent-sdk/pull/6356](https://github.com/OpenHands/software-agent-sdk/pull/6356)
* fix(tools): edit a symlink's target instead of replacing the link by @yftx293 in [https://github.com/OpenHands/software-agent-sdk/pull/6358](https://github.com/OpenHands/software-agent-sdk/pull/6358)
* fix(agent-server): encrypt bash event files at rest (OHE-3812) by @hieptl in [https://github.com/OpenHands/software-agent-sdk/pull/6343](https://github.com/OpenHands/software-agent-sdk/pull/6343)
* fix(llm): preserve gpt-oss reasoning across tool calls by @Oliveryfaso in [https://github.com/OpenHands/software-agent-sdk/pull/6111](https://github.com/OpenHands/software-agent-sdk/pull/6111)
* fix(sdk): skip auto-loaded plugins and installed extensions that fail to load by @VascoSch92 in [https://github.com/OpenHands/software-agent-sdk/pull/6439](https://github.com/OpenHands/software-agent-sdk/pull/6439)
* fix(git): keep file names verbatim in git changes and commit changes by @enyst in [https://github.com/OpenHands/software-agent-sdk/pull/5782](https://github.com/OpenHands/software-agent-sdk/pull/5782)
* fix(sdk): match the URL scheme case-insensitively when redacting credentials by @yftx293 in [https://github.com/OpenHands/software-agent-sdk/pull/6380](https://github.com/OpenHands/software-agent-sdk/pull/6380)
* fix(sdk): report auto-load marketplace and plugin failures to the user by @hieptl in [https://github.com/OpenHands/software-agent-sdk/pull/6460](https://github.com/OpenHands/software-agent-sdk/pull/6460)
* fix(mcp): start each MCP server separately so one failing server drops only its own tools by @ak684 in [https://github.com/OpenHands/software-agent-sdk/pull/6480](https://github.com/OpenHands/software-agent-sdk/pull/6480)
* fix(agent-server): fetch apt packages over HTTPS and pin the Debian base by @VascoSch92 in [https://github.com/OpenHands/software-agent-sdk/pull/6502](https://github.com/OpenHands/software-agent-sdk/pull/6502)
* fix(plugin): percent-encode secret values in plugin source URL user info by @ak684 in [https://github.com/OpenHands/software-agent-sdk/pull/6511](https://github.com/OpenHands/software-agent-sdk/pull/6511)

#### Runtime API

* fix(snapshots): skip re-snapshot while the old VolumeSnapshot is terminating by @simonrosenberg in [https://github.com/OpenHands/runtime-api/pull/774](https://github.com/OpenHands/runtime-api/pull/774)
* fix(security): distrust compromised eMudhra/emSign CAs (certifi/pip/uv) by @neubig in [https://github.com/OpenHands/runtime-api/pull/777](https://github.com/OpenHands/runtime-api/pull/777)

#### Automation

* fix: trust ingress forwarded headers by @Linxiushen in [https://github.com/OpenHands/automation/pull/305](https://github.com/OpenHands/automation/pull/305)
* fix(presets): fail the run when a configured repository cannot be cloned by @ak684 in [https://github.com/OpenHands/automation/pull/651](https://github.com/OpenHands/automation/pull/651)
* fix: let org admins and owners edit other users' automations by @jpelletier1 in [https://github.com/OpenHands/automation/pull/678](https://github.com/OpenHands/automation/pull/678)
* fix: allow cloud plugin sources on any HTTPS git host by @ak684 in [https://github.com/OpenHands/automation/pull/682](https://github.com/OpenHands/automation/pull/682)
* fix: retry git sync auth as Bearer when Basic x-access-token is rejected by @ak684 in [https://github.com/OpenHands/automation/pull/683](https://github.com/OpenHands/automation/pull/683)

#### OpenHands Cloud (Helm Chart)

* fix(replicated): retry a deploy call that gets no reply from kotsadm by @aivong-openhands in [https://github.com/OpenHands/OpenHands-Cloud/pull/1487](https://github.com/OpenHands/OpenHands-Cloud/pull/1487)
* fix(keycloak): import enterprise SAML profile attributes by @rajshah4 in [https://github.com/OpenHands/OpenHands-Cloud/pull/1423](https://github.com/OpenHands/OpenHands-Cloud/pull/1423)
* fix(infra): check Sysbox host prerequisites before deployment by @ak684 in [https://github.com/OpenHands/OpenHands-Cloud/pull/1520](https://github.com/OpenHands/OpenHands-Cloud/pull/1520)
* fix(openhands): add an opt-in cronjob that bounds clickhouse system logs \[PLTF-3913] by @dylan-openhands in [https://github.com/OpenHands/OpenHands-Cloud/pull/1481](https://github.com/OpenHands/OpenHands-Cloud/pull/1481)

## Component Versions

| Component | Version |
| - | - |
| enterprise-server | 1.87.1 |
| agent-server | 1.60.1-python |
| agent-canvas | 1.37.0 |
| automation | 1.30.2 |
| runtime-api | 0.12.0 |

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


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.