Changelog
Nye opdateringer og forbedringer til OpenCode
Core
- Restored formatter output handling so formatting still works when formatters write to stdout or stderr.(@ferdinandyb)
- Warping a session to another workspace can now carry over your uncommitted file changes.
TUI
- Restored custom provider setup in `/connect`.
Desktop
- Added a macOS Settings menu entry.(@jessedi0n)
- Moved the desktop app's local server into a separate utility process for more reliable startup and shutdown.
Extensions
- ACP clients now restore the last model, mode, and effort when loading sessions, and can close sessions cleanly.
Core
- Support `.well-known/opencode` configs that point to a separate remote config file.
- Preserve assistant text when replaying signed reasoning blocks.(@edevil)
- Return consistent not-found errors for missing sessions.
- Apply CORS headers before auth so browser clients can reach legacy server endpoints.
- Fix `serve`, `web`, and ACP network options triggering runtime re-entry errors.
- Only show connected workspaces in warp flows, and carry the new directory into the session after warping.
- Restore web terminal CSP allowances.
- Sanitize invalid surrogate characters before provider transforms.
- Fix Cloudflare AI Gateway provider options for OpenAI-compatible models.(@NathanDrake2406)
- Use the current workspace with `/new`, including local-project warps.
- Keep editor selection context stable until it is sent.
- Retry `server_is_overloaded` API errors automatically.
- Restore Mistral Medium 3.5 variants so model selection works correctly.
- Show compaction summaries before retained tail messages.
TUI
- Keep the selected model when model data refreshes.
- Fix `/agent create` to use the `/agents` path.(@OpeOginni)
Desktop
- Allow trusted app windows to write to the clipboard without permission failures.
- Ignore broken pipe (`EPIPE`) errors in desktop console logging.
- Stop auto-installing updates when quitting the app.
- Silence noisy browser API Sentry reports in production.
- Prevent sync bootstrap queries from failing during app startup.
Desktop
- Respect `HTTP_PROXY` and related proxy environment variables in the desktop app.
- Return `null` instead of failing when the desktop app cannot read a stored value.
Core
- Embedded UI requests now work with arbitrary `connect-src` origins under the default CSP.
Desktop
- Desktop now trusts system CA certificates for HTTPS connections.
Core
- Canceling a task now also cancels child subtask sessions.
- Improved v2 session rendering with cleaner tool states, better compaction summaries, and more accurate timing.
- Warp a session into another workspace or back to the local project.
Desktop
- Run the desktop migration on startup so existing installs transition correctly after the desktop packaging move.
- Stabilized the Windows titlebar when changing zoom levels.
Core
- Preserve diff patch boundaries so session diffs keep rendering correctly when file contents include `diff --git` text.
Core
- Add PTY connection tickets so authenticated terminal websockets work more reliably across clients.
- Add v2 session failure events so clients can detect and show failed runs.
- Improve shell command handling for Bash, PowerShell, and cmd sessions.
- Return structured error bodies from the effect HTTP server instead of empty failures.
- Reload server auth environment variables correctly for each new HTTP listener.
- Stop worktree creation from hanging while bootstrap commands run.
- Fix Azure Anthropic model resolution when using the Anthropic SDK.
- Fix the web UI proxy so public manifest assets load and proxied responses do not break on `transfer-encoding`.(@OpeOginni)
- Allow Codex Spark models when signing in with Codex OAuth.(@Utkub24)
- Fix embedded UI serving from the standalone server build.
- Fix PTY websocket connections from Desktop when using the HttpApi server.
- Respect custom basic auth usernames in opencode clients.
- Prompt browsers for basic auth on protected server logins.(@OpeOginni)
- Show real server error messages in the CLI and SDK instead of bare `{}`.
- Prevent large diffs from using unbounded memory.
- Fix v2 session API responses to encode optional fields correctly.
- Fix pagination `Link` headers to use the real request host.
TUI
- Add `debug info` to print environment and diagnostic details.
- Add a `--username` option for basic-auth server connections.(@OpeOginni)
- Pass server auth through internal ACP connections.
- Show provider login errors from stderr instead of swallowing them.
Desktop
- Prevent terminal reconnect loops after recovery failures.
- Preserve auth-token credentials when reopening the app.
Core
- Fix issue with custom agents in plugins not loading
Core
- Shell mode in the prompt stays editable, so backspace, cursor movement, and other editing keys work again.
- Fixed HTTP API workspace adapters losing instance context, which could break workspace create, sync, and routing flows.
- Fixed experimental workspace creation requests that omit `extra`.
- Fixed OpenAPI parameter schemas so generated clients match the public API.
- Unsupported image formats now fall back to text reads instead of being sent as image attachments.(@zeke)
- Agents can use the global temp directory without extra permission prompts.
- Fixed Bedrock sessions that include reasoning content when switching models.
- Session archive timestamps now reject non-finite values, avoiding invalid JSON in API payloads.
TUI
- Reduced startup theme flashing when using the system theme.
- The animated logo now avoids subpixel rendering on terminals without truecolor support.
Core
- Azure setup now prompts for the resource name when needed and saves it with the API key.
- Task child sessions now preserve parent `external_dir` and deny permissions.(@remorses)
- Invalid remote MCP URLs now fail with a clear error instead of breaking setup.
Desktop
- Restoring saved messages no longer crashes the app when a model is missing.
Core
- Fixed missing sessions in Desktop caused by path mismatches, including recovery for existing stored data.
- Fixed Azure Responses defaults to avoid reasoning item ordering errors.
- Improved DeepSeek compatibility with providers that vary model naming.
- Added Mistral Medium 3.5 with reasoning support.(@rubdos)
- Made instruction precedence more predictable by applying global instructions before project and skill instructions.
- Reconnected editor context when switching to a session in another directory.
- Fixed forked sessions so compacted history stays intact.(@spark4862)
- Reduced memory growth in long-running bash tool usage.
- Sessions now filter to the current path by default, with a setting to show the whole project.
- Kept GitHub Copilot model variants in sync with the latest API capabilities.
- Fixed Zed selections with UTF-8 text so editor context uses the right ranges.
TUI
- Added a quick toggle for paste summaries.
- Invalid custom themes no longer crash the TUI on startup.
Core
- Sessions now keep a relative workspace path.
- Moonshot and Kimi tool schemas are sanitized to avoid rejected tool calls.
- MCP OAuth errors now match the native API more closely.
- Provider OAuth authorize errors now match the native API more closely.
- Shell cancellations now finish cleanly instead of leaving aborted commands in a bad state.
- Creating a session over HTTP now works with an empty request body.
- Workspace HTTP API routes are now mounted through the bridge.
- Tool streaming now defaults off for non-Anthropic models when using the Anthropic SDK.
- DeepSeek OpenAI-compatible setups now keep `reasoning_content` interleaved by default.
- The experimental LSP tool now forwards the workspace symbol query.
- Google Vertex now defaults tool call streaming off.
TUI
- Zed context polling stays responsive.
- Pressing Enter in dialogs now triggers the dialog instead of leaking through.(@CasualDeveloper)
- File context is clearer, can be turned off, and clears after sending.
- `opencode agent create` now writes a valid `permissions.deny` config.(@21pounder)
Desktop
- Per-workspace icon overrides now stay applied for subdirectories in the same repo.
- Sync state loading is more reliable for MCP, LSP, and workspace refreshes.
Core
- Fixed issue with `opencode upgrade` failing for bun installs unless in a directory with package.json
Core
- Added a configurable default shell for terminals and agent shell commands, with a Desktop setting to manage it.
- Reduced extra terminal noise while creating TUI workspaces.
TUI
- Hid provider connection checks until onboarding is complete.
- Restored the default toast timeout when no custom duration is provided.(@OpeOginni)
Core
- Fixed config parsing to preserve permission rule order.
- Fixed OpenRouter DeepSeek reasoning output handling.
- Sent an `opencode/<version>` `User-Agent` header with HTTP requests.
TUI
- Added Zed editor selection support for editor context.
- Show a `/connect` tip when no models are configured.
- Fixed editor lock detection to ignore locks from unrelated workspaces.(@jjjermiah)
Core
- Fixed permission config preserving rule order and exposes full IntelliSense for tool permission keys
- LSP permission prompts now include request details like the operation, file, and cursor position
- Shell commands keep the correct working directory after login shell startup files run
- Added Roslyn LSP support for Razor, `.cshtml`, and C# script files
- GPT-5.5 with OpenAI OAuth now uses the correct context limits to avoid compaction issues
Core
- Fixed DeepSeek assistant messages so reasoning is always included, avoiding provider formatting failures.
- Fixed inherited model configs so interleaved-capability models keep working when that field falls back to an existing model.(@07akioni)
- Added an experimental HTTP API endpoint for MCP server status.
- Added experimental HTTP API endpoints to list files, read file contents, and check project file status.
Core
- Respect custom `.npmrc` registry settings when checking package versions and updates.
TUI
- Render all non-synthetic text in a user message instead of showing only the first text block.
Core
- Respect `.npmrc` settings during npm installs.
- Let projects store a custom icon override so the chosen icon persists correctly.
Desktop
- Fix session views and nested session items not getting stuck with stale state when switching between sessions.
Core
- Support pull diagnostics from LSP servers that use them, including C# and Kotlin.
- Fix project detection and caching for bare Git repos and worktrees.(@StevenTCramer)
- Improve session compaction so long threads keep more useful context when older history is summarized.
- Preserve UTF-8 BOMs when files are edited, patched, or rewritten through tools.
- Use Roslyn Language Server for C# support instead of `csharp-ls`.(@jmbryan4)
- Add the high reasoning variant for supported Mistral Small models.(@rubdos)
- Hide unsupported variants for Kimi models that do not expose them.
TUI
- Fail fast when opening an invalid or missing session instead of starting the TUI in a broken state.
- Skip upgrade checks when auto-update is disabled.(@rahuliyer95)
Desktop
- Keep project avatar previews consistent between the sidebar and edit dialog.
- Improve project icon overrides so uploaded icons and color fallbacks behave correctly in the edit dialog.
- Improve Linux desktop metadata for app listings and categorization.(@NN708)