Highlights
- Active work: one place to see which sessions need input, are running, or finished recently, across every repository. It appears as an Activity tool on the desktop tool rail, as an Active tab in the session picker, and at the top of the mobile More drawer.
- Per-session sandboxing: each sandboxed session runs its agent shell in its own microVM, which mounts only that session's repository or worktree. You can toggle it per session from the composer and set CPU and memory per session.
- Agent-built change walkthroughs: a separate walkthrough agent session reads the diff and builds an interactive HTML walkthrough. You can stop it, refine it, or open its session.
- HTML artifacts: an agent can write a self-contained HTML page and show it inline in the chat with the
ocmtool'sshow_artifactaction. - Session picker tabs: switch between Active, Sessions and Projects with
Ctrl+S. - Read what's on screen: leader then
Sreads aloud the assistant messages currently visible.
What's Changed
Features
- feat(activity): surface active work across the session picker, tool rail and mobile (#436, #438): grouped as Needs input, Running and Recent. Subagent work rolls up to its root session, worktree sessions show under the repository that owns them, and the sidebar and repo cards show an activity spinner. The recent window is set in Settings → General → Activity (15 minutes to 24 hours, default 30 minutes).
- feat(sandbox): per-session sandbox VMs with resource settings and provider arbitration (#430):
- One microVM per sandboxed root session; child sessions inherit the setting.
- New sessions are sandboxed by default while sandbox support is on.
- VMs are removed when a session's sandbox is turned off, the session is deleted, or the VM sits idle. A cap limits how many VMs run at once.
- When another sandbox provider such as opencode-forge also wants to wrap a command, one provider is chosen per call, and the tool call badge shows which one ran it.
- feat(walkthrough): build the change walkthrough in a spawned agent session (#435, #437): replaces the stop-by-stop walkthrough. A version appears in the panel as soon as one is published, and the build stops after 15 minutes. The
open_walkthroughtool now waits until the walkthrough is ready. - feat(walkthrough): stop an in-flight change walkthrough generation (#417)
- feat(artifacts): render agent HTML files inline in the session chat (#420): the page renders in a sandboxed frame with Reload and Open in new tab. It must be an
.htmlor.htmfile of at most 5 MB inside the session directory. - feat(sessions): switch between sessions and projects in the session picker (#425)
- feat(tts): play TTS for visible messages with a keyboard shortcut (#426): the floating speaker button also reads the replies on screen when you have scrolled up.
- feat(chat): tailor replies for mobile and text-to-speech (#429): prompts sent from a phone ask the agent for replies that read well on a small screen and aloud.
- feat(markdown): render inline images in messages and markdown files (#424)
- feat(sessions): show background activity for shells and child sessions (#419)
- feat(composer): keep the mobile send button and move dictation into the tools menu (#423)
- feat(workspaces): group multi-run worktrees in the worktrees tab (#415)
- feat(session): show the workspace branch in the session detail header
Fixes
- fix(permissions): prioritize the viewed session and add request context to the permission dialog (#428)
- fix(session): stop the background activity indicator going stale (#431), and follow a moved session's new directory without a reload.
- fix(sse): close the event stream on pagehide and reconnect on bfcache restore (#434)
- fix(sessions): match OpenCode TUI context usage (#421)
- fix(tts): prevent overlapping playback and corrupted audio cache (#416)
- fix(chat): show a stopped message as a small muted status line instead of a large red error
Tests
- test(e2e): Playwright suite for every app route, core session streaming, stop and permission prompts (#422, #427)
- test(backend): isolate the sandbox environment in binary-backed tests (#433)
Upgrade Notes
- Database migrations run on first start: per-session sandbox modes, and new walkthrough storage. Migrations only go forward, so back up the data volume first if you might need to roll back to v1.0.0.
- Existing change walkthroughs are cleared. Walkthroughs are now built as HTML by an agent session, so walkthroughs saved by v1.0.0 are dropped. Generate them again.
- Sandboxing is now per session. With sandbox support on, new sessions are sandboxed by default. Change this with Sandbox new sessions by default in Settings → OpenCode Config → Server maintenance → Sandbox. Each sandboxed session only sees its own repository or worktree, not every project.
- Installer users: re-run
curl -fsSL https://opencodemanager.app/install | shto update. Source checkouts update as before withgit pulland./scripts/docker-upgrade.sh.
Full Changelog: v1.0.0...v1.0.1