You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
OpenHands v1.21.0 contains one feature, seven bug fixes, two documentation changes to the OpenHands repository's own contributor docs, and eight maintenance items. The feature teaches the Agent Canvas client to read the agent server's advertised execution_runtime from /server_info and explicitly request a DockerExecutionWorkspace when Docker execution is available, keeping LocalWorkspace as the default for local and older servers. The fixes address stale conversation-history merges, routing Forgejo PR/issue lists to the Forgejo host, accepting git-host folder/tree URLs as an app source, disabling PostHog autocapture, keeping the local static server serving current assets after a Canvas rebuild, presenting non-resumable local conversations as archived, and advertising host services to Docker conversations. Maintenance bumps the default runtime versions twice (SDK/Agent Server/TypeScript client 1.49.2 then 1.49.3; Automation 1.13.2 then 1.13.3) and adds or strengthens several test suites. @Harsh23Kashyap is credited as a new contributor.
Documentation review checklist
feat: request Docker execution workspaces from Docker servers (PR #17177) — needs maintainer confirmation. The agent-server adapter now reads execution_runtime from /server_info and explicitly requests DockerExecutionWorkspace when a Docker server advertises Docker execution, preserving LocalWorkspace as the default for local/older servers. The Docker-execution docs page (/openhands/usage/agent-canvas/backend-setup/docker-execution) already states that Agent Server creates a DockerExecutionWorkspace per conversation, so it is unclear whether the client-side request changes any documented operator procedure. Source: feat: request Docker execution workspaces from Docker servers OpenHands#17177
fix: prevent stale conversation history merges (PR #16913) — probably no documentation change. Discards stale older-events responses using a per-load marker and event-store ownership check so a request started in one conversation cannot merge into another after navigation. Internal correctness fix to conversation history loading; no documented procedure changed. Source: fix: prevent stale conversation history merges OpenHands#16913
fix: query the Forgejo host for Forgejo PR and issue lists (PR #17486) — needs maintainer confirmation.listPullRequests/listIssues previously routed Forgejo requests through fetchGithubJson (hardcoded api.github.com), so a Forgejo-backed conversation's overview panel showed an error or another repository's items. The fix adds a Gitea-style fetch against {baseUrl}/api/v1 authenticated with Authorization: token <FORGEJO_TOKEN>. Forgejo is only mentioned in environment-variables.mdx for the ALLOW_INSECURE_GIT_ACCESS variable; triage whether git-provider docs describe the overview PR/issue panel for Forgejo. Source: fix: query the Forgejo host for Forgejo PR and issue lists OpenHands#17486
fix(apps): accept GitHub tree URLs as app source (PR #17504) — documentation needed. Pasting a git host's browser folder/tree URL (GitHub, GitLab, Bitbucket, Gitea/Forgejo) into Customize → Apps → Add app → App source now installs the app; the modal splits the URL into source, ref, and repo_path before calling POST /api/canvas-extensions/install. The Canvas Extensions "Install an App" section (/openhands/usage/agent-canvas/canvas-extensions) documents entering a Git source such as github:owner/repository and a separate Repo path, but does not mention that a full browser tree URL is accepted. Source: fix(apps): accept GitHub tree URLs as app source OpenHands#17504
fix: Disable PostHog autocapture (PR #17502) — probably no documentation change. Sets autocapture: false in the named agent-canvas PostHog init config (src/services/telemetry.ts). Telemetry/analytics consent behavior is not documented on a user-facing page (the only related docs are historical release notes). Note for reviewer: this reduces client-side click telemetry; consider whether any analytics/consent docs should mention it. Source: fix: Disable PostHog autocapture OpenHands#17502
fix(static-server): serve current assets after rebuilding Canvas (PR #17402) — probably no documentation change. Switches the local static server to filesystem lookup mode so a rebuild's hashed assets are served instead of the stale startup inventory. Internal local-development tooling fix; no documented procedure changed. Source: fix(static-server): serve current assets after rebuilding Canvas OpenHands#17402
fix: show non-resumable local conversations as archived (PR #17500) — needs maintainer confirmation. After an installation switches from host-local conversation runtimes to Docker runtimes, historical local conversations have no Docker provisioning identity; Canvas now presents them using the existing archived-conversation UI, skips WebSocket connections, and continues loading persisted event history over REST. Depends on agent-sdk #5128. The conversations.mdx archive section describes archiving as a user action stored per backend; triage whether the runtime-switch archiving behavior warrants a note. Source: fix: show non-resumable local conversations as archived OpenHands#17500
fix: advertise host services to Docker conversations (PR #17518) — probably no documentation change. Changes the local dev launcher (scripts/dev-with-automation.mjs) to advertise host services through host.docker.internal and route Automation traffic through the Canvas ingress in Docker mode. Affects a developer script, not a documented user procedure. Source: fix: advertise host services to Docker conversations OpenHands#17518
docs: refresh AGENTS.md guidance (PR #17590) — probably no documentation change. Documentation-only correction to AGENTS.md in the OpenHands repository (an internal contributor guide), not user-facing product documentation in OpenHands/docs. Source: docs: refresh AGENTS.md guidance OpenHands#17590
docs(codereview): clarify Agent Canvas checkpoints (PR #17523) — probably no documentation change. Reorganizes .agents/skills/custom-codereview-guide.md and AGENTS.md in the OpenHands repository (internal reviewer guidance), not user-facing product documentation. Source: docs(codereview): clarify Agent Canvas checkpoints OpenHands#17523
chore: consume SDK 1.49.2 and Automation 1.13.2 (PR #17515) — needs maintainer confirmation. Bumps default runtime version pins in config/defaults.json, package.json, and related scripts. If docs reference specific default runtime versions or compatibility minimums, they may need updating; the current docs version references found are release-notes text. Source: chore: consume SDK 1.49.2 and Automation 1.13.2 OpenHands#17515
chore: consume SDK 1.49.3 and Automation 1.13.3 (PR #17600) — needs maintainer confirmation. Second default-runtime bump within this release (supersedes the 1.49.2/1.13.2 pin from #17515). Confirm the intended final defaults against the release's config/defaults.json before documenting any version. Source: chore: consume SDK 1.49.3 and Automation 1.13.3 OpenHands#17600
feat: request Docker execution workspaces from Docker servers OpenHands#17177 — Reads execution_runtime from /server_info and requests DockerExecutionWorkspace when the server advertises Docker execution; changed files are Canvas src/api/agent-server-adapter.ts (plus tests) and agent-server-compatibility.ts. Documentation impact: verify whether docker-execution.mdx should describe client-requested Docker workspaces.
fix: query the Forgejo host for Forgejo PR and issue lists OpenHands#17486 — Adds fetchForgejoJson and routes Forgejo PR/issue list calls through it in src/api/git-provider-items-service.ts, with tests. Documentation impact: any git-provider overview documentation for Forgejo; otherwise no user-facing procedure changed.
fix(apps): accept GitHub tree URLs as app source OpenHands#17504 — Adds src/utils/parse-git-tree-url.ts and updates add-canvas-extension-modal.tsx so git-host folder/tree URLs install as apps. Documentation impact: canvas-extensions.mdx "Install an App" should mention accepting a browser tree URL.
fix: Disable PostHog autocapture OpenHands#17502 — Sets autocapture: false in src/services/telemetry.ts with an updated test assertion. Documentation impact: only if analytics/consent docs describe autocapture (none found in OpenHands/docs).
fix: show non-resumable local conversations as archived OpenHands#17500 — Normalizes optional runtime metadata and presents non-resumable local conversations as archived (agent-server-adapter.ts, agent-server-conversation-service.api.ts, websocket-provider-wrapper.tsx) with tests. Documentation impact: possible note in conversations.mdx about runtime-switch archiving.
Docker execution workspace request (PR #17177): Point Canvas at an agent server whose /server_info advertises Docker execution and start a new conversation. Expected: the conversation runs in a DockerExecutionWorkspace with /workspace as its working directory. Then point Canvas at a local or older server and expected: LocalWorkspace remains the default.
Forgejo PR/issue lists (PR #17486): With a Forgejo-backed repository and FORGEJO_TOKEN configured, open a Forgejo conversation's overview panel. Expected: it lists that repository's PRs and issues fetched from the Forgejo host (no error state, and no same-named GitHub repository's items). A control case is a GitHub/GitLab repo, whose behavior should be unchanged.
Git tree URL as app source (PR #17504): Paste a git host's browser folder URL (e.g. https://github.com/OpenHands/canvas-apps/tree/main/conversation-search-sidecar) into Customize → Apps → Add app → App source. Expected: install succeeds, splitting the URL into source/ref/repo_path. Repeat for GitLab, Bitbucket, and Gitea/Forgejo folder URLs.
Archived non-resumable local conversations (PR #17500): After switching an installation to Docker runtime, open a conversation created before Docker provisioning metadata existed. Expected: it is presented as archived, its persisted event history is readable over REST, and no WebSocket connection is attempted.
Runtime default versions (PR #17515, PR #17600): Confirm the intended default Agent Server/SDK/TypeScript client and Automation versions against the release's config/defaults.json, and check whether any published docs page references specific default runtime versions that now need updating.
Suggested documentation locations
/openhands/usage/agent-canvas/release-notes/ — Add a new v1.21.0.mdx page following the existing format (see v1.20.0.mdx) and add the matching entry to the Agent Canvas release-notes group in docs.json. Rationale: this version has no release-notes page, unlike every prior release.
/openhands/usage/agent-canvas/canvas-extensions.mdx (Install an App) — Note that a git host's browser folder/tree URL is accepted as the App source, in addition to the github:owner/repository shorthand and Repo path. Rationale: PR #17504 changes that user-facing install flow.
/openhands/usage/agent-canvas/backend-setup/docker-execution.mdx — Verify whether the client-side request of DockerExecutionWorkspace from Docker servers needs documentation. Rationale: PR #17177 changes how Canvas selects the execution workspace.
/openhands/usage/agent-canvas/conversations.mdx (archive section) — Consider noting that non-resumable local conversations appear archived after a runtime switch. Rationale: PR #17500.
/openhands/usage/environment-variables.mdx or a git-provider page — Triage Forgejo PR/issue list behavior (PR #17486) and any default-runtime version references (PR #17515, PR #17600). Needs maintainer triage for the exact location.
Release
Release summary
OpenHands v1.21.0 contains one feature, seven bug fixes, two documentation changes to the OpenHands repository's own contributor docs, and eight maintenance items. The feature teaches the Agent Canvas client to read the agent server's advertised
execution_runtimefrom/server_infoand explicitly request aDockerExecutionWorkspacewhen Docker execution is available, keepingLocalWorkspaceas the default for local and older servers. The fixes address stale conversation-history merges, routing Forgejo PR/issue lists to the Forgejo host, accepting git-host folder/tree URLs as an app source, disabling PostHog autocapture, keeping the local static server serving current assets after a Canvas rebuild, presenting non-resumable local conversations as archived, and advertising host services to Docker conversations. Maintenance bumps the default runtime versions twice (SDK/Agent Server/TypeScript client 1.49.2 then 1.49.3; Automation 1.13.2 then 1.13.3) and adds or strengthens several test suites.@Harsh23Kashyapis credited as a new contributor.Documentation review checklist
execution_runtimefrom/server_infoand explicitly requestsDockerExecutionWorkspacewhen a Docker server advertises Docker execution, preservingLocalWorkspaceas the default for local/older servers. The Docker-execution docs page (/openhands/usage/agent-canvas/backend-setup/docker-execution) already states that Agent Server creates aDockerExecutionWorkspaceper conversation, so it is unclear whether the client-side request changes any documented operator procedure. Source: feat: request Docker execution workspaces from Docker servers OpenHands#17177listPullRequests/listIssuespreviously routed Forgejo requests throughfetchGithubJson(hardcodedapi.github.com), so a Forgejo-backed conversation's overview panel showed an error or another repository's items. The fix adds a Gitea-style fetch against{baseUrl}/api/v1authenticated withAuthorization: token <FORGEJO_TOKEN>. Forgejo is only mentioned inenvironment-variables.mdxfor theALLOW_INSECURE_GIT_ACCESSvariable; triage whether git-provider docs describe the overview PR/issue panel for Forgejo. Source: fix: query the Forgejo host for Forgejo PR and issue lists OpenHands#17486Customize → Apps → Add app → App sourcenow installs the app; the modal splits the URL intosource,ref, andrepo_pathbefore callingPOST /api/canvas-extensions/install. The Canvas Extensions "Install an App" section (/openhands/usage/agent-canvas/canvas-extensions) documents entering a Git source such asgithub:owner/repositoryand a separateRepo path, but does not mention that a full browser tree URL is accepted. Source: fix(apps): accept GitHub tree URLs as app source OpenHands#17504autocapture: falsein the namedagent-canvasPostHog init config (src/services/telemetry.ts). Telemetry/analytics consent behavior is not documented on a user-facing page (the only related docs are historical release notes). Note for reviewer: this reduces client-side click telemetry; consider whether any analytics/consent docs should mention it. Source: fix: Disable PostHog autocapture OpenHands#17502conversations.mdxarchive section describes archiving as a user action stored per backend; triage whether the runtime-switch archiving behavior warrants a note. Source: fix: show non-resumable local conversations as archived OpenHands#17500scripts/dev-with-automation.mjs) to advertise host services throughhost.docker.internaland route Automation traffic through the Canvas ingress in Docker mode. Affects a developer script, not a documented user procedure. Source: fix: advertise host services to Docker conversations OpenHands#17518AGENTS.mdin the OpenHands repository (an internal contributor guide), not user-facing product documentation in OpenHands/docs. Source: docs: refresh AGENTS.md guidance OpenHands#17590.agents/skills/custom-codereview-guide.mdandAGENTS.mdin the OpenHands repository (internal reviewer guidance), not user-facing product documentation. Source: docs(codereview): clarify Agent Canvas checkpoints OpenHands#17523config/defaults.json,package.json, and related scripts. If docs reference specific default runtime versions or compatibility minimums, they may need updating; the current docs version references found are release-notes text. Source: chore: consume SDK 1.49.2 and Automation 1.13.2 OpenHands#17515config/defaults.jsonbefore documenting any version. Source: chore: consume SDK 1.49.3 and Automation 1.13.3 OpenHands#17600__tests__/hooks/use-draft-persistence.test.tsx). Source: test: cover draft persistence OpenHands#17334--oh-*tokens into the Tailwind theme (PR #17435) — probably no documentation change. Internal linting/theming refactor across many Canvas components; no documented behavior or configuration change identified. Source: refactor(shadcn-lint): agentic linting - first pass, map --oh-* tokens into the Tailwind theme OpenHands#17435Pull request review
execution_runtimefrom/server_infoand requestsDockerExecutionWorkspacewhen the server advertises Docker execution; changed files are Canvassrc/api/agent-server-adapter.ts(plus tests) andagent-server-compatibility.ts. Documentation impact: verify whetherdocker-execution.mdxshould describe client-requested Docker workspaces.src/hooks/use-load-older-events.tsandchat-interface.tsxwith tests. Internal correctness fix; no documented procedure changed.fetchForgejoJsonand routes Forgejo PR/issue list calls through it insrc/api/git-provider-items-service.ts, with tests. Documentation impact: any git-provider overview documentation for Forgejo; otherwise no user-facing procedure changed.src/utils/parse-git-tree-url.tsand updatesadd-canvas-extension-modal.tsxso git-host folder/tree URLs install as apps. Documentation impact:canvas-extensions.mdx"Install an App" should mention accepting a browser tree URL.autocapture: falseinsrc/services/telemetry.tswith an updated test assertion. Documentation impact: only if analytics/consent docs describe autocapture (none found in OpenHands/docs).scripts/static-server.mjsto serve current assets; local dev tooling. No documented procedure changed.agent-server-adapter.ts,agent-server-conversation-service.api.ts,websocket-provider-wrapper.tsx) with tests. Documentation impact: possible note inconversations.mdxabout runtime-switch archiving.scripts/dev-with-automation.mjsto advertise host services viahost.docker.internalin Docker mode. Developer tooling; no user-facing documentation impact found.AGENTS.mdin the OpenHands repo (internal contributor guide). No user-facing documentation impact found..agents/skills/custom-codereview-guide.mdandAGENTS.mdin the OpenHands repo. Internal reviewer guide; no user-facing documentation impact found.config/defaults.json,package.json, scripts). Documentation impact limited to any docs referencing default runtime versions.config/defaults.json,package.json, scripts); supersedes 1.49.2/1.13.2. Confirm final defaults before documenting.--oh-*token refactor across Canvas components. No documented behavior change identified.Human testing required
/server_infoadvertises Docker execution and start a new conversation. Expected: the conversation runs in aDockerExecutionWorkspacewith/workspaceas its working directory. Then point Canvas at a local or older server and expected:LocalWorkspaceremains the default.FORGEJO_TOKENconfigured, open a Forgejo conversation's overview panel. Expected: it lists that repository's PRs and issues fetched from the Forgejo host (no error state, and no same-named GitHub repository's items). A control case is a GitHub/GitLab repo, whose behavior should be unchanged.https://github.com/OpenHands/canvas-apps/tree/main/conversation-search-sidecar) intoCustomize → Apps → Add app → App source. Expected: install succeeds, splitting the URL into source/ref/repo_path. Repeat for GitLab, Bitbucket, and Gitea/Forgejo folder URLs.config/defaults.json, and check whether any published docs page references specific default runtime versions that now need updating.Suggested documentation locations
/openhands/usage/agent-canvas/release-notes/— Add a newv1.21.0.mdxpage following the existing format (seev1.20.0.mdx) and add the matching entry to the Agent Canvas release-notes group indocs.json. Rationale: this version has no release-notes page, unlike every prior release./openhands/usage/agent-canvas/canvas-extensions.mdx(Install an App) — Note that a git host's browser folder/tree URL is accepted as the App source, in addition to thegithub:owner/repositoryshorthand andRepo path. Rationale: PR #17504 changes that user-facing install flow./openhands/usage/agent-canvas/backend-setup/docker-execution.mdx— Verify whether the client-side request ofDockerExecutionWorkspacefrom Docker servers needs documentation. Rationale: PR #17177 changes how Canvas selects the execution workspace./openhands/usage/agent-canvas/conversations.mdx(archive section) — Consider noting that non-resumable local conversations appear archived after a runtime switch. Rationale: PR #17500./openhands/usage/environment-variables.mdxor a git-provider page — Triage Forgejo PR/issue list behavior (PR #17486) and any default-runtime version references (PR #17515, PR #17600). Needs maintainer triage for the exact location.Source links
This issue was created by an AI agent (OpenHands) on behalf of the user.