pingdotgg/t3code v0.0.20 → v0.0.21

v0.0.21 is a broad feature-and-fixes release. It adds new provider support and UI improvements, while also tightening up release automation and a handful of Windows, Linux, and session-resume edge cases.

What's new

  • Adds OpenCode as a first-class provider across the server and web app, including session streaming, approvals and question handling, and provider selection in the UI. It also uses OpenCode for git text generation, branch names, commit messages, thread titles, and PR content (#1758).
  • Adds ACP support with the Cursor provider. This brings Cursor in as a first-class provider with session lifecycle support, health checks, model selection, and adapter wiring across desktop, server, and web surfaces (#1355).
  • Redesigns the model picker with favorites and search. The new picker replaces provider submenus with a sidebar-based flow, adds model search and favorite model persistence, and handles locked providers more cleanly (#2153).
  • Shows thread status in the command palette. Thread rows now display the same status indicators as the sidebar, including PR state, thread status, terminal activity, and remote-environment state (#2107).
  • Adds close buttons to toasts, so standard and anchored toasts can be dismissed with a click instead of only swipe-to-dismiss (#2023).
  • Adds Claude Opus 4.5 to the built-in Claude models list (#2143).
  • Adds an IntelliJ project icon to favicon resolution so project icons can show up in the sidebar when an IntelliJ-based IDE provides that path (#1651).

Breaking changes

  • None documented in the release notes.

Fixes

  • @ workspace search now honors .gitignore again, so ignored files no longer leak into search results (#2078).
  • Windows PATH hydration and repair now work more reliably for packaged desktop startup, including shell/profile fallback and broader environment repair (#1729).
  • The settings header only shows “Restore defaults” on General, not Archive (#1710).
  • Non-empty projects can now be deleted from the warning toast by using the new confirmation flow (#1264).
  • Global terminal shortcuts now work even when the terminal is focused in the web app (#1580, #2142).
  • OpenCode commit message generation now handles the provider’s text response format instead of failing on structured-output parsing (#2202).
  • Claude auth probing now uses a longer timeout, which avoids false “Could not verify Claude authentication status” warnings on slower Windows startup paths (#2272).
  • Provider cache atomic writes no longer collide when two writes land on the same temp path at once (#2291).
  • Codex home paths now expand a leading ~ before being exported as CODEX_HOME for Codex launches (#2210, #2255).
  • OpenCode provider model names are trimmed before they are exposed to the app, avoiding bad provider snapshots when upstream returns whitespace-padded names (#2252).
  • The app now enforces opencode >= 1.14.19 and reveals the desktop window on did-finish-load as a Wayland fallback (#2262).
  • Claude session resumes now track workspace cwd more accurately, reducing stale-session drift after switching workspaces or returning to a session later (#2292).
  • Manual project sorting and grouped-project expand state no longer snap back or reset after refreshes (#2221).
  • Stale runtime projection snapshots are ignored instead of overwriting newer project/thread state (#2301).
  • dynamic_tool_call requests are now classified as command permissions, so Claude MCP tool calls surface the approval prompt instead of getting stuck (#2311).
  • The command palette no longer shows stale or incorrect thread state in some update sequences (#2107).

Other notable changes

  • The release workflow was modernized: GitHub-hosted runners were introduced for release steps, Windows runner handling was adjusted, upstream failures now stop downstream jobs, uploads use a GitHub App token, and nightly releases were retagged to valid semver format (#2101, #2103, #2110, #2129, #2146, #2147, #2149, #2186, #2134).
  • Desktop and server now use Node-native TypeScript, with supporting import and script adjustments (#2098).
  • Provider model selection was refactored to shared option arrays, which also updated built-in provider capability handling (#2246).
  • OpenCode runtime and structured-output handling were refactored, and Codex protocol bindings were refreshed to a newer upstream snapshot (#2218, #2276).
  • Backend startup readiness coordination was extracted into a shared helper, and latency tracking now excludes subscribe RPCs (#2133, #2313).

Contributors

@juliusmarminge, @nmharmon8, @Noojuno, @Badbird5907, @HaukeSchnau, @AriajSarkar, @nexxeln, @UtkarshUsername, @maria-rcks, @mvanhorn, @Chrono-byte, @mwolson, @adammansfield, @imabdulazeez, @reasv, @CodeZeno, @noxire-dev, @altjx, @Spitfire1900, @adinschmidt, @Heinz-G, @basmilius, @raulpesilva, @th1m0, @Pedro-Revez-Silva

Only the most active 46 of 47 merged PRs were included. See the full compare view.