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_contentinterleaved 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 createnow writes a validpermissions.denyconfig. (@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.
Thank you to 3 community contributors:
- @21pounder:
- fix(opencode): agent create generates permissions field with deny ins… (#24482)
- @SeashoreShi:
- docs: fix duplicated word in CLI env var table (#24614)
- @CasualDeveloper:
- fix(tui): consume Enter in dialog useKeyboard handlers (#23390)