## Core
### Improvements
- Added a diff viewer in the TUI for reviewing changes.
- Collapsed single-child directories in the diff viewer file tree.
- Added shell mode to the `run` prompt.
- Replaced subagent tabs with an on-demand picker in `run`.
- Plugin file load errors no longer break the rest of plugin loading.
- Anthropic API-key models now use the native runtime.
- The v2 HTTP API now exposes structured public error schemas.
### Bugfixes
- Zed editor context now only activates inside Zed terminals.
- The v2 HTTP API now exposes catalog errors.
- The v2 HTTP API now exposes request errors.
- The v2 OpenAPI spec now preserves endpoint error responses.
- `opencode login` now defaults to `https://console.opencode.ai`.
- Agent and command names now resolve correctly from relative config paths.
- Invalid `OPENCODE_PERMISSION` JSON no longer crashes startup.
- Plugin tools with missing `args` no longer break tool loading.
- Restored legacy `PgUp` and `PgDn` TUI keybind aliases.
- Native runtime now prefers the console provider token for OpenCode models.
## TUI
### Improvements
- The diff viewer now focuses the first file automatically.
### Bugfixes
- Imported sessions now refresh their directory and relative path fields correctly. (@OpeOginni)
## Desktop
### Improvements
- Added initial desktop tabs support.
- Added a native app menu on Windows.
- Added Ukrainian locale support. (@MYMDO)
### Bugfixes
- Custom providers now appear immediately after config updates. (@tianxiaoliang)
## SDK
- Updated `opentui` dependencies to `0.2.15`.
**Thank you to 4 community contributors:**
- @MYMDO:
- feat(i18n): add Ukrainian (uk) locale support (#28061)
- @StarpTech:
- chore(team): add starptech to the team members list (#28320)
- chore(docs): remove beta zen go (#28317)
- chore(triage): add 'starptech' to core and inference teams (#28376)
- @tianxiaoliang:
- fix(app): invalidate provider queries after config update to show custom providers immediately (#28313)
- @OpeOginni:
- fix(opencode): Update directory and path fields of imported session (#27516)
- fix(enterprise): message nav hovercard and active state (#23964)