## Core
### Improvements
- 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.
### Bugfixes
- 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
### Improvements
- Add `debug info` to print environment and diagnostic details.
### Bugfixes
- 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
### Bugfixes
- Prevent terminal reconnect loops after recovery failures.
- Preserve auth-token credentials when reopening the app.
**Thank you to 4 community contributors:**
- @PanAchy:
- chore(opencode): exclude .map files from CLI binary build (#25500)
- @OpeOginni:
- fix(httpapi): add basic auth challenge for browser login
- fix(auth): add username option for basic auth in RunCommand (#25600)
- fix(opencode): strip transfer-encoding in UI proxy and allow public manifest assets (#25698)
- @Utkub24:
- fix: allow Codex Spark with Codex OAuth (#25640)
- @cgilly2fast:
- chore(docs): rename firmware provider to frogbot (#25453)