Skip to content

Commit dc2ffcf

Browse files
release: v2.2.6
1 parent 33f94fc commit dc2ffcf

36 files changed

Lines changed: 168 additions & 66 deletions

File tree

‎CHANGELOG.md‎

Lines changed: 102 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,108 @@
22

33
Release notes for OpenCode V2, newest first.
44

5+
## v2.2.6 — 2026-11-06
6+
7+
### Highlights
8+
9+
- **Shared MCP Connections**: Turn on pooling for an MCP server to share one connection across projects with the same setup, so you run fewer processes and start faster. ([#61185](https://github.com/anomalyco/opencode/pull/61185))
10+
- **GUI Plugin Themes and New Slots**: GUI plugins can now add color themes, render or add actions to code blocks, and use native settings and menu components. ([#61485](https://github.com/anomalyco/opencode/pull/61485), [#61533](https://github.com/anomalyco/opencode/pull/61533), [#61527](https://github.com/anomalyco/opencode/pull/61527), [#61509](https://github.com/anomalyco/opencode/pull/61509))
11+
- **Mobile Composer Dock**: On phones and tablets, composer actions now sit in a touch dock above the keyboard with larger buttons. ([#61773](https://github.com/anomalyco/opencode/pull/61773))
12+
- **Scripted Runs in Worktrees**: Run `opencode run -w` to start the session in a new git worktree, or `--worktree=<name>` to name it. ([#60712](https://github.com/anomalyco/opencode/pull/60712))
13+
- **Automatically Archived Runs**: Add `--archived` to `opencode run` to keep scripted and CI sessions out of your inbox and session lists. ([#61270](https://github.com/anomalyco/opencode/pull/61270))
14+
15+
### Core
16+
17+
#### Improvements
18+
19+
- Added opt-in MCP connection sharing through `pool: true`. ([#61185](https://github.com/anomalyco/opencode/pull/61185))
20+
- Added `opencode run --archived`, which creates the session already archived so scripted and CI runs stay out of the inbox, home, and session lists. Archived sessions are also hidden from the TUI session list and skipped by `--continue`. ([#61270](https://github.com/anomalyco/opencode/pull/61270))
21+
- Added `opencode run --worktree` (`-w`), which starts the session in a new git worktree. Use `--worktree=<name>` to choose the worktree name. It cannot be combined with `--continue` or `--session`. ([#60712](https://github.com/anomalyco/opencode/pull/60712))
22+
- Added provider- and model-specific session warming settings, including an `interval: "auto"` mode based on cache TTL. ([#60025](https://github.com/anomalyco/opencode/pull/60025), [#60969](https://github.com/anomalyco/opencode/pull/60969))
23+
- Added the `websearch.use` policy action and switches for enabling all feature flags with `OPENCODE_FLAGS=all` or `experimental.all_flags`. ([#61557](https://github.com/anomalyco/opencode/pull/61557), [#61826](https://github.com/anomalyco/opencode/pull/61826))
24+
- Added an experimental bytecode VM for Code Mode. It is off by default; turn it on with `experimental.codemode_vm: true` or `OPENCODE_FLAGS=codemode_vm`. ([#62358](https://github.com/anomalyco/opencode/pull/62358))
25+
- Added support for Microsoft Store installations of PowerShell 7 on Windows. ([#61952](https://github.com/anomalyco/opencode/pull/61952))
26+
- Added Azure Messages support for Foundry Claude models. ([#60934](https://github.com/anomalyco/opencode/pull/60934))
27+
28+
#### Bug fixes
29+
30+
- `opencode run` now waits for the background shell commands, subagents, and image jobs that its prompt started, then lets the model respond to their results before it exits. While it waits, it prints `waiting for N background job(s)` (a `background_wait` event with `--format json`). There is no time limit: a job that never exits, such as a dev server or file watcher, keeps the run open until you press Ctrl+C or send SIGTERM, so set a timeout on CI jobs. ([#60699](https://github.com/anomalyco/opencode/pull/60699), [#61911](https://github.com/anomalyco/opencode/pull/61911))
31+
- Reworked noninteractive `opencode run` execution so arguments, cancellation, compiled WebSocket upgrades, and service shutdown complete reliably. SIGTERM now cancels the session and its background jobs and exits with code 143. ([#61911](https://github.com/anomalyco/opencode/pull/61911), [#61721](https://github.com/anomalyco/opencode/pull/61721), [#61518](https://github.com/anomalyco/opencode/pull/61518), [#61564](https://github.com/anomalyco/opencode/pull/61564))
32+
- Serve file reads and media from the server API as sandboxed downloads, and refuse cross-site browser navigations and requests from disallowed origins to `/api/*`, so a file in your project cannot run scripts on the server's origin. ([#62422](https://github.com/anomalyco/opencode/pull/62422))
33+
- Webfetch and Code Mode `fetch` now reject URLs that contain credentials and ignore the `#fragment` when matching permission rules, and Code Mode `fetch` checks every redirect against your webfetch rules. ([#60502](https://github.com/anomalyco/opencode/pull/60502), [#61701](https://github.com/anomalyco/opencode/pull/61701), [#62373](https://github.com/anomalyco/opencode/pull/62373))
34+
- Ask for `external_directory` permission before `session_move` leaves the current project. ([#62204](https://github.com/anomalyco/opencode/pull/62204))
35+
- Wait up to 2 seconds for MCP servers that are still connecting before a model call, so tools from servers that connect quickly reach the first prompt and `opencode run`. Also expand `~` in local MCP working directories, handle legacy stdio servers, and send `logo_uri` during dynamic registration. ([#60490](https://github.com/anomalyco/opencode/pull/60490), [#61496](https://github.com/anomalyco/opencode/pull/61496), [#61817](https://github.com/anomalyco/opencode/pull/61817), [#59031](https://github.com/anomalyco/opencode/pull/59031))
36+
- Time out OpenCode Console config requests after 5 seconds, so startup no longer hangs when the Console accepts the connection but never answers. ([#62404](https://github.com/anomalyco/opencode/pull/62404))
37+
- Retry provider requests while their host is unreachable and recover prematurely ended Cohere streams. ([#61880](https://github.com/anomalyco/opencode/pull/61880), [#61184](https://github.com/anomalyco/opencode/pull/61184))
38+
- Keep legacy custom providers whose models set only part of `limit`, such as only `limit.context`, instead of dropping the whole provider without an error. Thanks @Tarquinen. ([#62240](https://github.com/anomalyco/opencode/pull/62240))
39+
- `opencode acp` now removes a session that a client creates with `session/new` and closes without prompting, so IDE integrations no longer leave empty sessions behind. ([#62189](https://github.com/anomalyco/opencode/pull/62189))
40+
- Prevent repeated zsh `q` flags from freezing shell permission scanning. Thanks @yangguan-xue. ([#60791](https://github.com/anomalyco/opencode/pull/60791))
41+
- Allow npm upgrade install scripts again. Thanks @renatomoselli. ([#51554](https://github.com/anomalyco/opencode/pull/51554))
42+
43+
### TUI
44+
45+
#### Improvements
46+
47+
- Added **Scroll on send** in Settings. Choose **Keep** (`session.submit_scroll: "keep"`) to retain your reading position after submitting a prompt. ([#61460](https://github.com/anomalyco/opencode/pull/61460))
48+
49+
#### Bug fixes
50+
51+
- Allow Ctrl+Z to suspend OpenCode while a form or dialog is open. ([#62118](https://github.com/anomalyco/opencode/pull/62118))
52+
- Keep focus on an open dialog when a question arrives and contain plugin dialogs that throw during rendering. ([#60365](https://github.com/anomalyco/opencode/pull/60365), [#62110](https://github.com/anomalyco/opencode/pull/62110))
53+
- Show an error when Ctrl+V cannot read the clipboard. Thanks @jimmyallinai. ([#61094](https://github.com/anomalyco/opencode/pull/61094))
54+
- Prevent session titles containing newlines from crashing the TUI. Thanks @vishalshekhar. ([#57523](https://github.com/anomalyco/opencode/pull/57523))
55+
- Improved message spacing and prevented older history from flashing while scrolling. ([#62104](https://github.com/anomalyco/opencode/pull/62104), [#59236](https://github.com/anomalyco/opencode/pull/59236))
56+
- Jump to the first or last message with Home, End, and Ctrl+G in subagent sessions. Thanks @ricky9408. ([#60817](https://github.com/anomalyco/opencode/pull/60817))
57+
- Keypad Home, End, Page Up, and Page Down now navigate the transcript like the main keys in terminals that use the kitty keyboard protocol. Thanks @argszero. ([#59770](https://github.com/anomalyco/opencode/pull/59770))
58+
- `opencode mini` now uses the agent colors from your config. Thanks @ferdinandyb. ([#62067](https://github.com/anomalyco/opencode/pull/62067))
59+
- Return to the `/mcp` list after signing in to an MCP server, with that server still selected. Thanks @Tarquinen. ([#62245](https://github.com/anomalyco/opencode/pull/62245))
60+
- Allow favoriting models with Ctrl+F in `/models` when they come from a provider declared in config or an add-on instead of a saved connection. Thanks @Tarquinen. ([#62244](https://github.com/anomalyco/opencode/pull/62244))
61+
62+
### Desktop
63+
64+
#### Improvements
65+
66+
- Added a mobile composer dock for touch devices, with 44px action targets and predictable multiline input. ([#61773](https://github.com/anomalyco/opencode/pull/61773))
67+
- Added close-other-tabs and close-tabs-after actions to the tab menu. ([#61631](https://github.com/anomalyco/opencode/pull/61631))
68+
- Added unread-session grouping in Inbox and failed-run indicators on tabs. ([#61691](https://github.com/anomalyco/opencode/pull/61691), [#62077](https://github.com/anomalyco/opencode/pull/62077))
69+
- MCP sign-in now accepts a pasted redirect URL when automatic redirection is unavailable. ([#61706](https://github.com/anomalyco/opencode/pull/61706))
70+
- Markdown file previews now display frontmatter as a properties list. ([#60333](https://github.com/anomalyco/opencode/pull/60333))
71+
- The command palette shows a date instead of "Xd ago" for sessions 7 or more days old. Hover the time to see the full date and time. ([#62314](https://github.com/anomalyco/opencode/pull/62314))
72+
- Prompt history now keeps up to 200 prompts. Past the newest 100, only prompts without attachments are kept. ([#62313](https://github.com/anomalyco/opencode/pull/62313))
73+
74+
#### Bug fixes
75+
76+
- Improved prompt submission and timeline behavior during loading, reconnects, retries, scrolling, compaction, and optimistic delivery. ([#62025](https://github.com/anomalyco/opencode/pull/62025), [#62037](https://github.com/anomalyco/opencode/pull/62037), [#61932](https://github.com/anomalyco/opencode/pull/61932), [#62151](https://github.com/anomalyco/opencode/pull/62151))
77+
- Surface loading and offline failures in review previews, file search, details, Word pages, and review diffs instead of showing empty or clean results. ([#62114](https://github.com/anomalyco/opencode/pull/62114), [#61862](https://github.com/anomalyco/opencode/pull/61862))
78+
- Fixed provider connection, MCP sign-in, settings, and plugin loading flows that could become stuck after failures. ([#62102](https://github.com/anomalyco/opencode/pull/62102), [#61917](https://github.com/anomalyco/opencode/pull/61917), [#61580](https://github.com/anomalyco/opencode/pull/61580))
79+
- Preserve drafts, focus, caret position, queued prompts, and selected terminal tabs across failed or concurrent transitions. ([#61579](https://github.com/anomalyco/opencode/pull/61579), [#61969](https://github.com/anomalyco/opencode/pull/61969), [#61852](https://github.com/anomalyco/opencode/pull/61852))
80+
- Restart plugins after failed update handoffs and recover the renderer, storage, event stream, and background-service connection from transient failures. ([#61649](https://github.com/anomalyco/opencode/pull/61649), [#61908](https://github.com/anomalyco/opencode/pull/61908), [#61804](https://github.com/anomalyco/opencode/pull/61804), [#61748](https://github.com/anomalyco/opencode/pull/61748))
81+
- Corrected V2 file labels and mention syntax. Thanks @velmet and @cheapredwine. ([#55677](https://github.com/anomalyco/opencode/pull/55677), [#60737](https://github.com/anomalyco/opencode/pull/60737))
82+
- Attach only the `@mentions` in a line comment that match an existing file or folder, so a comment such as `Check @here` no longer fails the send. Render partial diffs in the review pane when it shows all lines, instead of a blank pane. Thanks @Tarquinen. ([#62242](https://github.com/anomalyco/opencode/pull/62242), [#62241](https://github.com/anomalyco/opencode/pull/62241))
83+
- Keep pasted images sendable after the clipboard tool deletes its temporary file. Thanks @lfscqk67. ([#62057](https://github.com/anomalyco/opencode/pull/62057))
84+
- While an input method is composing text, Escape, Enter, and Tab go to the input method instead of stopping the agent or picking a suggestion. ([#62318](https://github.com/anomalyco/opencode/pull/62318))
85+
- Fixed padding in the WSL distribution picker, the position of worktree and branch labels in Home search results, and the selected ring on the Interface layout setting. Thanks @inuyume. ([#53676](https://github.com/anomalyco/opencode/pull/53676), [#62317](https://github.com/anomalyco/opencode/pull/62317), [#62309](https://github.com/anomalyco/opencode/pull/62309))
86+
87+
### SDK
88+
89+
#### Improvements
90+
91+
- Added `client.experimental.job.list()` and its Effect equivalent for listing background shell, subagent, and image jobs, with session, descendant, kind, and status filters. ([#60698](https://github.com/anomalyco/opencode/pull/60698))
92+
- Server embedders can provide a custom `fetch` implementation for OpenCode HTTP, model, web, and remote MCP traffic. ([#61582](https://github.com/anomalyco/opencode/pull/61582))
93+
94+
### Extensions
95+
96+
#### Improvements
97+
98+
- Added `CodeBlock` and `CodeBlockAction` GUI registries for custom fenced-code rendering and actions. ([#61533](https://github.com/anomalyco/opencode/pull/61533))
99+
- GUI plugins can contribute themes through the `Theme` registry. ([#61485](https://github.com/anomalyco/opencode/pull/61485))
100+
- Added `ctx.ui.Select`, settings layout components, and menu-row components for native-looking plugin interfaces. ([#61527](https://github.com/anomalyco/opencode/pull/61527))
101+
- GUI plugin side panels can set, read, and persist their preferred width. ([#61509](https://github.com/anomalyco/opencode/pull/61509))
102+
103+
#### Bug fixes
104+
105+
- Isolated plugin dialogs, Markdown renderers, terminal views, lazy chunks, and artifact viewers so failures do not take down their host surface. ([#62110](https://github.com/anomalyco/opencode/pull/62110), [#62123](https://github.com/anomalyco/opencode/pull/62123), [#61993](https://github.com/anomalyco/opencode/pull/61993))
106+
5107
## v2.2.5 — 2026-10-30
6108

7109
### Highlights

0 commit comments

Comments
 (0)