Core
Improvements
- Added the v2 model and provider listing API.
- Added DigitalOcean OAuth and Inference Router support. (@Spherrrical)
- Create a global
opencode.jsoncautomatically when no config exists. - Enable
customize-opencodeby default with a linked full schema. - Autocomplete configured
@mentionsin prompts. - Parse fenced Markdown code blocks in patch diffs by default.
Bugfixes
- Fix keymap fallback priority and make TUI config errors clearer.
- Restore model suggestions for unloaded providers and missing models.
- Preserve layered permission rule order in config merges. (@asuffield)
- Preserve attachments returned by custom tools.
- Keep recent turns after compaction instead of folding them into the summary.
- Fix prompt cursor movement and mentions for wide characters.
- Prevent duplicate submits from creating empty phantom sessions.
- Keep compacted tail history when forking a session.
- Return proper busy-session errors from the HTTP API.
TUI
Improvements
- Add pinned recent sessions, quick slots, and recent-session cycling.
Bugfixes
- Restore non-interactive
runexit behavior. - Make the websearch provider label update reactively. (@NormallyGaussian)
- Reduce flicker when switching workspaces.
- Fix
run --jsonoutput draining. - Fix prompt history and line up/down commands.
Desktop
Improvements
- Add Ctrl/Cmd+number shortcuts to switch projects.
- Remember whether the todo dock is collapsed.
- Restore AppStream metadata in Linux desktop builds.
Bugfixes
- Show clearer wrapped server errors in the app. (@OpeOginni)
- Use the login shell when loading desktop environment variables. (@qwq202)
- Remember the selected model variant when switching sessions or projects.
- Open the next available project when closing the current one.
- Prevent streamed Markdown from being cut off.
Thank you to 5 community contributors:
- @NormallyGaussian:
- fix(tui): make websearch provider label reactive (#26943)
- @Spherrrical:
- feat(plugin): add DigitalOcean OAuth + Inference Routers (#26095)
- @asuffield:
- fix: preserve permission ordering by accepting a layered array (#23214)
- @qwq202:
- fix(desktop): resolve login shell when loading env (#26449)
- @OpeOginni:
- fix(app): enhance error handling by unwrapping SDK-wrapped errors in formatServerError (#27061)