OpenCode 2.2 defaults MCP to Code Mode and answers elicitation OpenCode released version 2.2.0, which makes MCP default to Code Mode and adds elicitation support, alongside experimental Desktop plugins and image and decision generation APIs for plugins and the SDK. The release carries three breaking changes: the @opencode/ai package root now exports the Promise API with the Effect API moved to @opencode/ai/effect and @opencode/ai/promise removed, the OpenCode GitHub Action is no longer published, and TUI plugins now require @opentui/core and @opentui/solid 0.7.0, up from 0.6.8. Plugins can also attach and update keyed session instructions via ctx.session.instructions.entry.put/list/remove without busting the prompt cache, and prompt cache TTLs are now configurable per provider and model. Repository navigation v2.2.0 github-actions https://github.com/apps/github-actions released this 307 commits https://github.com/anomalyco/opencode/compare/v2.2.0...dev to dev since this release Highlights - Create, install and share Desktop plugins https://opencode.ai/v2/docs/build/plugins/gui experimental 55246 https://github.com/anomalyco/opencode/pull/55246 , 59469 https://github.com/anomalyco/opencode/pull/59469 , 59489 https://github.com/anomalyco/opencode/pull/59489 - Refreshed the desktop app experience 56898 https://github.com/anomalyco/opencode/pull/56898 , 58865 https://github.com/anomalyco/opencode/pull/58865 , 55838 https://github.com/anomalyco/opencode/pull/55838 , 57962 https://github.com/anomalyco/opencode/pull/57962 - Add experimental image and decision generation APIs to plugins and sdk, allowing image generation or decision model think typesafe, clef, etc workflows. 59190 https://github.com/anomalyco/opencode/pull/59190 , 59380 https://github.com/anomalyco/opencode/pull/59380 , 58758 https://github.com/anomalyco/opencode/pull/58758 - Plugins can now attach and update keyed session instructions with ctx.session.instructions.entry.put/list/remove. Instead of editing the system prompt and busting the prompt cache, each change is added as a small update at the next step. The entries also survive compaction and reverts, and they don't start an extra model turn. 56550 https://github.com/anomalyco/opencode/pull/56550 - Restored the Todo tool in desktop via opt-in 59092 https://github.com/anomalyco/opencode/pull/59092 - Add configurable prompt cache TTLs per provider/model 59157 https://github.com/anomalyco/opencode/pull/59157 Breaking changes @opencode/ai root is now the Promise API @opencode/ai now works like @opencode/sdk and @opencode/client : the package root exports the Promise API, and the Effect API moved to @opencode/ai/effect . @opencode/ai/promise is removed, and the wildcard subpath export is replaced with an explicit list of provider and protocol entry points. 58847 https://github.com/anomalyco/opencode/pull/58847 , 59183 https://github.com/anomalyco/opencode/pull/59183 js -import { AI } from "@opencode/ai/promise" -import { LLM } from "@opencode/ai" +import { AI } from "@opencode/ai" +import { LLM } from "@opencode/ai/effect" The OpenCode GitHub Action is removed The OpenCode GitHub Action is no longer published. Remove it from your workflows. 59032 https://github.com/anomalyco/opencode/pull/59032 TUI plugins require OpenTUI 0.7 @opencode/plugin now requires @opentui/core and @opentui/solid 0.7.0, up from 0.6.8 or later. Plugins that depend on OpenTUI 0.6 fail to install until they upgrade. In OpenTUI 0.7, custom renderables read their hooks from their class at construction: assign renderBefore , renderAfter , and onLifecyclePass in the constructor instead of as class fields, call refreshHooks after adding a hook by reflection, and replace defineNativeIntegration with a static nativeIntegration declaration. See the OpenTUI 0.7.0 release notes https://opentui.com/docs/releases/0.7.0 . 59295 https://github.com/anomalyco/opencode/pull/59295 Core Improvements - Add experimental image and decision generation API endpoints. 59190 https://github.com/anomalyco/opencode/pull/59190 - Add image and decision entrypoints for catalog providers. 59380 https://github.com/anomalyco/opencode/pull/59380 - Improve integration rebuild performance. 59402 https://github.com/anomalyco/opencode/pull/59402 - Let custom model configuration set a model type. 59388 https://github.com/anomalyco/opencode/pull/59388 - Let model-list API requests filter by type. 59355 https://github.com/anomalyco/opencode/pull/59355 - Make external-directory permission checks use the project's filesystem. 59089 https://github.com/anomalyco/opencode/pull/59089 - Reduce memory use when code search finds very large lines. 59205 https://github.com/anomalyco/opencode/pull/59205 - Let plugins filter event subscriptions by type. 58864 https://github.com/anomalyco/opencode/pull/58864 - Add configurable prompt-cache TTLs. 59157 https://github.com/anomalyco/opencode/pull/59157 - Move image resizing off the main process and release idle image memory. 58820 https://github.com/anomalyco/opencode/pull/58820 - Reduce repeated session-history loading during a step. 59091 https://github.com/anomalyco/opencode/pull/59091 - Add an experimental API for session media and opt-in media URI support. 59103 https://github.com/anomalyco/opencode/pull/59103 - Add the machine hostname to /api/info . 59090 https://github.com/anomalyco/opencode/pull/59090 - Add experimental content-addressed blob storage for session media behind experimental.media blob . 58656 https://github.com/anomalyco/opencode/pull/58656 , 58741 https://github.com/anomalyco/opencode/pull/58741 - Start session history from the latest completed compaction. 59020 https://github.com/anomalyco/opencode/pull/59020 - Reduce work encoding durable event payloads that are not persisted. 58923 https://github.com/anomalyco/opencode/pull/58923 - Expose MCP server titles from serverInfo . 58950 https://github.com/anomalyco/opencode/pull/58950 - Apply OpenCode Console workspace configuration as a configuration layer. 57703 https://github.com/anomalyco/opencode/pull/57703 - Replace experimental evaluations with Decision APIs in the AI pkg, including OpenAI Decisions, System One, and Cloudflare Run models. 58758 https://github.com/anomalyco/opencode/pull/58758 , 58382 https://github.com/anomalyco/opencode/pull/58382 , 58379 https://github.com/anomalyco/opencode/pull/58379 , 58381 https://github.com/anomalyco/opencode/pull/58381 - Convert tool schemas once to speed up tool execution. 58798 https://github.com/anomalyco/opencode/pull/58798 , 58848 https://github.com/anomalyco/opencode/pull/58848 - Make Git project discovery faster while recognizing repository changes. 58616 https://github.com/anomalyco/opencode/pull/58616 - Show OpenCode Console budget limits and Go usage where they block you. 58694 https://github.com/anomalyco/opencode/pull/58694 , 58714 https://github.com/anomalyco/opencode/pull/58714 - Record provider-reported session costs. 58562 https://github.com/anomalyco/opencode/pull/58562 - Find Git more reliably on macOS. 58602 https://github.com/anomalyco/opencode/pull/58602 - Resolve model details once per prompt step. 58601 https://github.com/anomalyco/opencode/pull/58601 - Let plugins manage session instruction entries for subsequent model requests. 56550 https://github.com/anomalyco/opencode/pull/56550 - Add GPT-6.1 Terra and GPT-6.1 Terra Fast to Sign in with ChatGPT. 59359 https://github.com/anomalyco/opencode/pull/59359 Bug fixes - Wait for plugins to finish reloading before each session step and tool call. Thanks @kernel-oops https://github.com/kernel-oops and @Tarquinen https://github.com/Tarquinen . 51133 https://github.com/anomalyco/opencode/pull/51133 - Size session compaction from the provider's reported token count to preserve usable context. 59441 https://github.com/anomalyco/opencode/pull/59441 - Skip unavailable models.dev API entrypoints instead of failing model catalog updates. 59475 https://github.com/anomalyco/opencode/pull/59475 - Return a server error with a reference ID when the server cannot encode a response. 59459 https://github.com/anomalyco/opencode/pull/59459 - Avoid warming a session while its model request is running. 59325 https://github.com/anomalyco/opencode/pull/59325 - Preserve legacy MCP codemode settings during migration. Thanks @tneemo https://github.com/tneemo . 59126 https://github.com/anomalyco/opencode/pull/59126 - Use the correct Vertex AI endpoints for the eu and us multi-regions. 59335 https://github.com/anomalyco/opencode/pull/59335 - Accept Databricks hosts that include http:// or https:// . 59334 https://github.com/anomalyco/opencode/pull/59334 - Keep files intact when patch edits move a file onto itself. 59197 https://github.com/anomalyco/opencode/pull/59197 - Preserve literal $0 and $ARGUMENTS text in custom command input. 59198 https://github.com/anomalyco/opencode/pull/59198 - Close project locations concurrently during shutdown. 59326 https://github.com/anomalyco/opencode/pull/59326 - Treat equivalent directory paths, including trailing slashes, as one location. 59327 https://github.com/anomalyco/opencode/pull/59327 - Send valid tool schemas to Kimi for tuple, default, and keyword-like arguments. 59207 https://github.com/anomalyco/opencode/pull/59207 - Expose Code Mode MCP tools directly when the execute permission is denied. 59315 https://github.com/anomalyco/opencode/pull/59315 - Coordinate OAuth credential refreshes across locations and processes. 54023 https://github.com/anomalyco/opencode/pull/54023 - List and search remote Git branches correctly without bare remote names. 58597 https://github.com/anomalyco/opencode/pull/58597 - Detect AVIF, HEIC/HEIF, QuickTime, and M4A attachments correctly. 58480 https://github.com/anomalyco/opencode/pull/58480 , 58886 https://github.com/anomalyco/opencode/pull/58886 , 58887 https://github.com/anomalyco/opencode/pull/58887 - Reduce memory retained by long-running tool calls and unchanged hooked model requests. 58448 https://github.com/anomalyco/opencode/pull/58448 , 58449 https://github.com/anomalyco/opencode/pull/58449 - Load session diffs without reading every message, improving performance for large sessions. 57686 https://github.com/anomalyco/opencode/pull/57686 - Keep active locations alive when session events use an equivalent directory path. 56259 https://github.com/anomalyco/opencode/pull/56259 - Reload compatibility skills only when their own sources change. 59086 https://github.com/anomalyco/opencode/pull/59086 - Avoid publishing redundant catalog updates when configuration is unchanged. 56267 https://github.com/anomalyco/opencode/pull/56267 - Avoid booting idle or deleted project locations while polling session forms. 59083 https://github.com/anomalyco/opencode/pull/59083 - Wait for plugins before returning agent and provider lists, preventing incomplete catalogs. 59082 https://github.com/anomalyco/opencode/pull/59082 - Manage sessions and instruction entries after their project directory is deleted. 58997 https://github.com/anomalyco/opencode/pull/58997 - Start fuzzy file search only on first use, reducing project startup work. 58959 https://github.com/anomalyco/opencode/pull/58959 - Exit after 10 seconds when shutdown hangs and report pending work. 58817 https://github.com/anomalyco/opencode/pull/58817 - Keep the models catalog fresh without redownloading it when unchanged. 58813 https://github.com/anomalyco/opencode/pull/58813 - Send xAI Responses top k settings and stop sending unsupported penalties. 58868 https://github.com/anomalyco/opencode/pull/58868 - Honor shared parallel tool-call and service-tier settings for Groq. 58871 https://github.com/anomalyco/opencode/pull/58871 - Retry throttled requests instead of misreporting them as context overflows. 58866 https://github.com/anomalyco/opencode/pull/58866 - Preserve streamed text and reasoning that arrive after an OpenAI Chat finish reason. 58851 https://github.com/anomalyco/opencode/pull/58851 - Classify AWS REST JSON errors consistently regardless of where the error type appears. 58770 https://github.com/anomalyco/opencode/pull/58770 - Validate large base64 attachments without slowdowns or hangs. 58811 https://github.com/anomalyco/opencode/pull/58811 - Retry Bedrock throttling errors as rate limits instead of context overflows. Thanks @Irish-Joseph https://github.com/Irish-Joseph . 58759 https://github.com/anomalyco/opencode/pull/58759 - Keep working MCP tools available when a server returns malformed ones. 58350 https://github.com/anomalyco/opencode/pull/58350 - Match absolute instruction-file globs across directories. Thanks @heimoshuiyu https://github.com/heimoshuiyu . 58749 https://github.com/anomalyco/opencode/pull/58749 - Use configured provider regions in Bedrock endpoint URLs. 58538 https://github.com/anomalyco/opencode/pull/58538 - Handle unknown OpenAI Chat finish reasons without failing the response. 58608 https://github.com/anomalyco/opencode/pull/58608 - Avoid unnecessary Azure model updates when endpoint transforms make no change. 58600 https://github.com/anomalyco/opencode/pull/58600 - Prefer JPEG for opaque browser screenshots, reducing attachment size. 56990 https://github.com/anomalyco/opencode/pull/56990 - Detect generated image types from their bytes when compatible hosts omit the format. 58475 https://github.com/anomalyco/opencode/pull/58475 - Keep project services alive while sessions run long tools or wait for input, with a 24-hour inactivity cap. 57274 https://github.com/anomalyco/opencode/pull/57274 - Prevent unrelated configuration changes and compatibility-skill update bursts from repeatedly reloading skills. 56260 https://github.com/anomalyco/opencode/pull/56260 TUI Improvements - Reduce CPU use while animated session-tab pulses are visible. 59235 https://github.com/anomalyco/opencode/pull/59235 - List OpenCode Console before OpenCode Go in the integration picker. 59107 https://github.com/anomalyco/opencode/pull/59107 - Add /usage , model-picker, prompt, sidebar, warning, and error details for OpenCode Console usage limits. 58731 https://github.com/anomalyco/opencode/pull/58731 - Make CLI service registration more reliable when concurrent processes update its files. 59105 https://github.com/anomalyco/opencode/pull/59105 Bug fixes - Return opencode run --format json server connection errors as JSON. Thanks @andreivince https://github.com/andreivince . 59366 https://github.com/anomalyco/opencode/pull/59366 - Preserve pasted prompt text when copying it back out. 59209 https://github.com/anomalyco/opencode/pull/59209 - Reliably update the background service on Windows when its files are briefly locked. 59105 https://github.com/anomalyco/opencode/pull/59105 - Keep the background service state directory out of tool shells and identify processes blocking its port. 58815 https://github.com/anomalyco/opencode/pull/58815 - Refresh Git branch details after switching branches. 58982 https://github.com/anomalyco/opencode/pull/58982 - Keep the TUI running when a plugin slot or route renders bare text. Thanks @anmol0b https://github.com/anmol0b and @Tarquinen https://github.com/Tarquinen . 58144 https://github.com/anomalyco/opencode/pull/58144 - Accept --server and --standalone anywhere in supported CLI commands. 58505 https://github.com/anomalyco/opencode/pull/58505 - Release closed and background session transcripts to prevent memory growth. 58434 https://github.com/anomalyco/opencode/pull/58434 , 57025 https://github.com/anomalyco/opencode/pull/57025 - Connect remote access tunnels through HTTP proxies. 58464 https://github.com/anomalyco/opencode/pull/58464 - Keep development builds on a separate server, database, and port from released builds. 58331 https://github.com/anomalyco/opencode/pull/58331 Desktop Improvements - Manage desktop plugins from Settings › Extensions › Plugins. 59489 https://github.com/anomalyco/opencode/pull/59489 - Add a persistent desktop zoom setting. 59277 https://github.com/anomalyco/opencode/pull/59277 - Capture heap snapshots in desktop debug builds on SIGUSR2 when explicitly enabled. 58317 https://github.com/anomalyco/opencode/pull/58317 - Show the open session title in the browser tab. 59131 https://github.com/anomalyco/opencode/pull/59131 - Show todowrite tasks above the composer. 59092 https://github.com/anomalyco/opencode/pull/59092 - Load session history once when returning to a session tab. 59166 https://github.com/anomalyco/opencode/pull/59166 - Answer questions with number keys and show multi-select choices as checkboxes. 58595 https://github.com/anomalyco/opencode/pull/58595 - Add an always-available Add project action to the location picker. 57962 https://github.com/anomalyco/opencode/pull/57962 - Let you rewind or fork from any message. 58865 https://github.com/anomalyco/opencode/pull/58865 - Let you edit line comments and copy shell output. 58970 https://github.com/anomalyco/opencode/pull/58970 , 58974 https://github.com/anomalyco/opencode/pull/58974 - Render Mermaid diagrams in messages much faster, sized to fit the column. 57483 https://github.com/anomalyco/opencode/pull/57483 , 57004 https://github.com/anomalyco/opencode/pull/57004 - Add opt-in memory logging and remote debugging for desktop debug builds. 58315 https://github.com/anomalyco/opencode/pull/58315 - Show web sources for a turn behind the experimental Sources setting. 58307 https://github.com/anomalyco/opencode/pull/58307 - Jump from a completed shell notification to its shell output. 58663 https://github.com/anomalyco/opencode/pull/58663 - Keep the composer usable while the voice-call panel floats. 58587 https://github.com/anomalyco/opencode/pull/58587 - Use the Soft Radar activity spinner by default and provide experimental variations. 58010 https://github.com/anomalyco/opencode/pull/58010 , 57903 https://github.com/anomalyco/opencode/pull/57903 - Add an experimental new model picker. 58413 https://github.com/anomalyco/opencode/pull/58413 - Add experimental Console voice calls in Desktop beta. 58249 https://github.com/anomalyco/opencode/pull/58249 - Add a timeline width setting. 58308 https://github.com/anomalyco/opencode/pull/58308 - Improve command, session, and model search lists with sticky sections. 58222 https://github.com/anomalyco/opencode/pull/58222 - Add search to recently closed sessions. 55721 https://github.com/anomalyco/opencode/pull/55721 - Open extension configuration and skills in side tabs. 58023 https://github.com/anomalyco/opencode/pull/58023 - Open session extension lists on hover and follow keyboard navigation. 58021 https://github.com/anomalyco/opencode/pull/58021 - Add video previews with zoom controls. 57924 https://github.com/anomalyco/opencode/pull/57924 - Add generated project avatars and an experimental avatar-style switcher. 57871 https://github.com/anomalyco/opencode/pull/57871 , 57930 https://github.com/anomalyco/opencode/pull/57930 - Add recently closed side tabs to the new-tab view. 57863 https://github.com/anomalyco/opencode/pull/57863 - Add a searchable prompt history picker. 57716 https://github.com/anomalyco/opencode/pull/57716 - Find settings from the command palette. 57651 https://github.com/anomalyco/opencode/pull/57651 - Group queued and steered messages, and group consecutive user messages under one metadata line. 57561 https://github.com/anomalyco/opencode/pull/57561 , 57552 https://github.com/anomalyco/opencode/pull/57552 - Improve file-tree and folder-picker performance. 57573 https://github.com/anomalyco/opencode/pull/57573 , 57557 https://github.com/anomalyco/opencode/pull/57557 - Keep branch search results visible while new results load. 57531 https://github.com/anomalyco/opencode/pull/57531 - Add a session-details menu to the session header. 57528 https://github.com/anomalyco/opencode/pull/57528 - Show a subagent's model, status, and elapsed time in its composer area. 57473 https://github.com/anomalyco/opencode/pull/57473 - Let you delete sessions from tab menus and rename the current session with Ctrl+R. 57453 https://github.com/anomalyco/opencode/pull/57453 , 57423 https://github.com/anomalyco/opencode/pull/57423 - Restore session summary and project menu actions. 57781 https://github.com/anomalyco/opencode/pull/57781 - Let you place the background-activity capsule at the left, center, right, or hide it. 57962 https://github.com/anomalyco/opencode/pull/57962 - Show project and worktree details in the session header and location menu. 57962 https://github.com/anomalyco/opencode/pull/57962 - Add text-rendering controls to the debug bar. 57326 https://github.com/anomalyco/opencode/pull/57326 - Show elapsed time for background work. 57218 https://github.com/anomalyco/opencode/pull/57218 - Improve streamed Markdown rendering reliability and performance. 57016 https://github.com/anomalyco/opencode/pull/57016 - Split the side pane and add a draggable bottom pane with tabs. 56960 https://github.com/anomalyco/opencode/pull/56960 - Add consistent MCP sign-in and error-status links across connection, session, and Settings views. 57962 https://github.com/anomalyco/opencode/pull/57962 - Open multiple file tabs at once and open side-panel content in tabs. 57182 https://github.com/anomalyco/opencode/pull/57182 , 57094 https://github.com/anomalyco/opencode/pull/57094 - Move running work to the background when you steer a session. 57142 https://github.com/anomalyco/opencode/pull/57142 - Let the timeline scroll beneath the composer while keeping its content visible. 57141 https://github.com/anomalyco/opencode/pull/57141 - Simplify Settings into a flat list with a per-server switcher. 57962 https://github.com/anomalyco/opencode/pull/57962 - Quote selected timeline or terminal text into the composer. 55664 https://github.com/anomalyco/opencode/pull/55664 , 58420 https://github.com/anomalyco/opencode/pull/58420 - Search sessions across online servers from the title bar. 57962 https://github.com/anomalyco/opencode/pull/57962 - Add a Reduce motion appearance setting. 57103 https://github.com/anomalyco/opencode/pull/57103 - Show projects from all servers in the new-session location picker. 57962 https://github.com/anomalyco/opencode/pull/57962 - Pick models from a searchable dialog with favorites and recent models. 55838 https://github.com/anomalyco/opencode/pull/55838 - Attach the new-session location picker below the composer. 56952 https://github.com/anomalyco/opencode/pull/56952 - Open image previews directly from message and composer thumbnails. 56896 https://github.com/anomalyco/opencode/pull/56896 - Start new worktrees from the current branch in the simplified location picker. 57962 https://github.com/anomalyco/opencode/pull/57962 - Manage running subagents and shells from the composer activity capsule. 57962 https://github.com/anomalyco/opencode/pull/57962 - Sync projects from each server and prioritize projects you use on Home. 57962 https://github.com/anomalyco/opencode/pull/57962 - Choose between Focus and Pro interface layouts in Settings. 56898 https://github.com/anomalyco/opencode/pull/56898 - Open terminals as side-panel tabs. 57962 https://github.com/anomalyco/opencode/pull/57962 - Choose a project and worktree from one new-session location dialog. 57962 https://github.com/anomalyco/opencode/pull/57962 - Show subagents as separate timeline rows by default. 57962 https://github.com/anomalyco/opencode/pull/57962 - Add a sidebar toggle for vertical tabs. 55646 https://github.com/anomalyco/opencode/pull/55646 - Add ⌘1–9 and ⇧⌘ / ⇧⌘ shortcuts for side-panel tabs. 57301 https://github.com/anomalyco/opencode/pull/57301 - Let you choose a new directory or worktree when a session location is unavailable. 56087 https://github.com/anomalyco/opencode/pull/56087 - Refresh the Manage models, MCP, and fork dialogs with compact searchable lists. 56029 https://github.com/anomalyco/opencode/pull/56029 , 56028 https://github.com/anomalyco/opencode/pull/56028 - Install future Windows desktop updates in about a second. 55933 https://github.com/anomalyco/opencode/pull/55933 - Show individual Code Mode tool calls in Execute rows. 55649 https://github.com/anomalyco/opencode/pull/55649 - Add a Commentary timeline category and display setting. 55248 https://github.com/anomalyco/opencode/pull/55248 - Support @ links to other sessions in messages. 57480 https://github.com/anomalyco/opencode/pull/57480 - Polish spacing, alignment, borders, and typography across the session header, titlebar, composer, file tree, browser pane, timeline, and Settings. 58195 https://github.com/anomalyco/opencode/pull/58195 , 57776 https://github.com/anomalyco/opencode/pull/57776 , 57570 https://github.com/anomalyco/opencode/pull/57570 , 57782 https://github.com/anomalyco/opencode/pull/57782 , 57336 https://github.com/anomalyco/opencode/pull/57336 , 57363 https://github.com/anomalyco/opencode/pull/57363 , 58100 https://github.com/anomalyco/opencode/pull/58100 , 58979 https://github.com/anomalyco/opencode/pull/58979 Bug fixes - Prevent duplicate tab shortcuts and remove uninstalled plugin commands from Shortcuts. 59499 https://github.com/anomalyco/opencode/pull/59499 - Keep todo items from shrinking in the todo panel. 59430 https://github.com/anomalyco/opencode/pull/59430 - Keep question-dock answers and controls positioned correctly when changing questions. 59383 https://github.com/anomalyco/opencode/pull/59383 - Keep the @ menu open while it searches. 59425 https://github.com/anomalyco/opencode/pull/59425 - Finish quitting after Cmd+Q on macOS. Thanks @anmol0b https://github.com/anmol0b . 59144 https://github.com/anomalyco/opencode/pull/59144 - Toggle MCP servers for the current session location from Settings. 59132 https://github.com/anomalyco/opencode/pull/59132 - Deliver steering messages when an earlier move was missed. 58984 https://github.com/anomalyco/opencode/pull/58984 - Keep session and command-palette search results stable while searching. 58908 https://github.com/anomalyco/opencode/pull/58908 , 57479 https://github.com/anomalyco/opencode/pull/57479 - Restrict Search projects to the project list. 58978 https://github.com/anomalyco/opencode/pull/58978 - Let custom Close tab shortcuts close terminal and browser tabs. 58945 https://github.com/anomalyco/opencode/pull/58945 - Prevent live status rows from jumping or leaving gaps above the composer. 58691 https://github.com/anomalyco/opencode/pull/58691 , 58697 https://github.com/anomalyco/opencode/pull/58697 - Keep browser tabs still behind open dialogs. 58958 https://github.com/anomalyco/opencode/pull/58958 - Keep side-panel content and browser pages visible while the sidebar or panel moves. 58202 https://github.com/anomalyco/opencode/pull/58202 , 58185 https://github.com/anomalyco/opencode/pull/58185 - Render session diffs reliably. - Keep keyboard focus in terminals, side panels, dialogs, and the composer when appropriate. 57980 https://github.com/anomalyco/opencode/pull/57980 , 57297 https://github.com/anomalyco/opencode/pull/57297 , 56273 https://github.com/anomalyco/opencode/pull/56273 - Preserve empty browser and side-panel tabs instead of closing them automatically. 58440 https://github.com/anomalyco/opencode/pull/58440 - Reduce desktop memory use by releasing closed transcripts, discarded tool-result images, retained UI batches, and aborted timeline work. 57025 https://github.com/anomalyco/opencode/pull/57025 , 58434 https://github.com/anomalyco/opencode/pull/58434 , 58427 https://github.com/anomalyco/opencode/pull/58427 , 58560 https://github.com/anomalyco/opencode/pull/58560 , 58447 https://github.com/anomalyco/opencode/pull/58447 , 58439 https://github.com/anomalyco/opencode/pull/58439 , 58432 https://github.com/anomalyco/opencode/pull/58432 - Restore horizontal scrolling and sticky change badges in the file tree. 58117 https://github.com/anomalyco/opencode/pull/58117 - Show live Thinking for reasoning-only turns. 58299 https://github.com/anomalyco/opencode/pull/58299 - Stop loading older history after completing the initially visible turn and prioritize the first transcript page. 57700 https://github.com/anomalyco/opencode/pull/57700 , 57741 https://github.com/anomalyco/opencode/pull/57741 - Keep Home project and session lists reliable during refreshes. - Keep deleted sessions from reappearing on Home. 55349 https://github.com/anomalyco/opencode/pull/55349 - Find sessions immediately in @ mentions, including multi-word titles. 57683 https://github.com/anomalyco/opencode/pull/57683 - Keep queued messages editable while changes sync with the server. 57569 https://github.com/anomalyco/opencode/pull/57569 - Open image and video URLs in the browser pane. 57562 https://github.com/anomalyco/opencode/pull/57562 - Mark submitted generated forms as complete and send each response only once. 57537 https://github.com/anomalyco/opencode/pull/57537 - Improve file-view performance with reused views, virtualized medium files, and cached diffs. 57551 https://github.com/anomalyco/opencode/pull/57551 - Group untracked folders into one expandable review row. 57527 https://github.com/anomalyco/opencode/pull/57527 - Let you paste into the composer from the session view. 57545 https://github.com/anomalyco/opencode/pull/57545 - Recover failed beta background servers and preserve their required CLI versions. 57321 https://github.com/anomalyco/opencode/pull/57321 - Restore branch selection when starting a new worktree session. 57962 https://github.com/anomalyco/opencode/pull/57962 - Keep the running server available while beta updates install. 57309 https://github.com/anomalyco/opencode/pull/57309 - Make links in user messages, shell output, and Code Mode output clickable. 57211 https://github.com/anomalyco/opencode/pull/57211 , 57303 https://github.com/anomalyco/opencode/pull/57303 - Make Check for Updates always report its result. 57296 https://github.com/anomalyco/opencode/pull/57296 - Reopen the last closed side-panel tab with ⇧⌘T and open a browser tab with ⌘T. 57269 https://github.com/anomalyco/opencode/pull/57269 , 57156 https://github.com/anomalyco/opencode/pull/57156 - Keep OpenCode keyboard shortcuts working in the browser pane. 56697 https://github.com/anomalyco/opencode/pull/56697 , 55240 https://github.com/anomalyco/opencode/pull/55240 - Preview image attachments supplied by file path. 57249 https://github.com/anomalyco/opencode/pull/57249 - Apply configured code and UI fonts consistently. 57242 https://github.com/anomalyco/opencode/pull/57242 - Keep activity and busy indicators steady while switching sessions. 57196 https://github.com/anomalyco/opencode/pull/57196 - Reserve ⇧⌘W for closing the window so ⌘W does not. 57150 https://github.com/anomalyco/opencode/pull/57150 - Make image preview transitions resize smoothly without clipping or blocking clicks. 56997 https://github.com/anomalyco/opencode/pull/56997 , 57324 https://github.com/anomalyco/opencode/pull/57324 - Keep in-session search reliable alongside titlebar session search. 57962 https://github.com/anomalyco/opencode/pull/57962 - Return focus to the prompt after keyboard model selection. - Open searchable pickers at the top with search focused. 57962 https://github.com/anomalyco/opencode/pull/57962 - Keep tables visible beneath sticky headers. 57050 https://github.com/anomalyco/opencode/pull/57050 - Fit provider connection steps without shifting a dialog's top edge. 57006 https://github.com/anomalyco/opencode/pull/57006 - Give unavailable-server panels clear error styling. 57003 https://github.com/anomalyco/opencode/pull/57003 - Make mouse-wheel and keyboard scrolling respond immediately on Linux. 57962 https://github.com/anomalyco/opencode/pull/57962 - Keep long Execute tool code contained and show successful Code Mode output. 56915 https://github.com/anomalyco/opencode/pull/56915 - Focus the most useful control when dialogs open, including Cancel in delete confirmations. 57453 https://github.com/anomalyco/opencode/pull/57453 - Install Windows beta, stable, and nightly builds into separate directories. 56904 https://github.com/anomalyco/opencode/pull/56904 - Keep session tabs recoverable when their server becomes unreachable. 56248 https://github.com/anomalyco/opencode/pull/56248 - Keep the composer model's provider and session-model resolution consistent with the TUI. 56225 https://github.com/anomalyco/opencode/pull/56225 - Reread open files without resetting their scroll position. 55899 https://github.com/anomalyco/opencode/pull/55899 - Hide agent names when agents are disabled. 57525 https://github.com/anomalyco/opencode/pull/57525 - Polish sidebar, panel, composer, activity, question-dock, loading, and motion behavior across light and dark themes. 57449 https://github.com/anomalyco/opencode/pull/57449 , 58013 https://github.com/anomalyco/opencode/pull/58013 , 58577 https://github.com/anomalyco/opencode/pull/58577 , 57944 https://github.com/anomalyco/opencode/pull/57944 , 58052 https://github.com/anomalyco/opencode/pull/58052 , 58494 https://github.com/anomalyco/opencode/pull/58494 , 58073 https://github.com/anomalyco/opencode/pull/58073 , 58114 https://github.com/anomalyco/opencode/pull/58114 - Polish hover states, cursors, tooltips, focus rings, scrollbars, and transitions across desktop controls. 57653 https://github.com/anomalyco/opencode/pull/57653 , 57787 https://github.com/anomalyco/opencode/pull/57787 , 57304 https://github.com/anomalyco/opencode/pull/57304 , 58971 https://github.com/anomalyco/opencode/pull/58971 , 57221 https://github.com/anomalyco/opencode/pull/57221 , 57192 https://github.com/anomalyco/opencode/pull/57192 , 58575 https://github.com/anomalyco/opencode/pull/58575 , 58580 https://github.com/anomalyco/opencode/pull/58580 SDK Improvements - Add GUI plugin APIs for toasts, dialogs, notifications, tabs, composer controls, and custom UI. 59469 https://github.com/anomalyco/opencode/pull/59469 Bug fixes - Fix generated Promise client input types for TypeScript consumers. 58875 https://github.com/anomalyco/opencode/pull/58875 - Let SDK clients discard inline tool-result file payloads to reduce memory use. 59101 https://github.com/anomalyco/opencode/pull/59101 - Avoid unnecessary catalog refreshes for locations an SDK client has not loaded. 55237 https://github.com/anomalyco/opencode/pull/55237 , 59099 https://github.com/anomalyco/opencode/pull/59099 - Restore running sessions created while an SDK client was disconnected. 53012 https://github.com/anomalyco/opencode/pull/53012 - Release omitted tool-image payloads from memory instead of retaining their base64 data. 58560 https://github.com/anomalyco/opencode/pull/58560