pingdotgg/t3code v0.0.32 → v0.0.33

This release is a broad UX and stability pass across web, mobile, desktop, and server. The biggest themes are a much more capable sidebar and project settings flow, new usage visibility, and a long list of fixes around reconnects, background work, and provider/session handling.

What's new

  • The new sidebar is now the default, and it picked up several workflow upgrades in the same pass. Pinned threads can now be manually reordered with synced per-thread ordering that converges across clients and servers, and drafts you leave mid-composition now stay one click away at the top of the sidebar with their branch, worktree, model, and other settings intact when you come back. Subagent activity is also surfaced directly in the right-panel toggle with a live count badge. (#5672, #5581, #5767, #5777, #5745)

  • Project settings were expanded from a small modal into a real project-level settings experience. You can now edit a project’s default model, scripts, checkout metadata, and t3.json import state, and projects can choose whether new threads default to a new worktree or the current checkout using the priority chain explicit composer pick > per-project setting > t3.json > global setting. Project icons can also be overridden manually and that choice syncs across clients. (#5768, #5766, #5775, #5923)

  • Usage reporting is much more complete. The usage page now reads provider transcript files directly across connected environments, aggregates by day/provider/model without sending raw transcripts to clients, prices models from LiteLLM’s rate table with offline caching, and reports unpriced models explicitly instead of silently costing them at zero. Mobile also gets a cross-environment usage dashboard with 7/30/90-day views, provider charts, totals, model breakdowns, cache savings, and coverage summaries. (#5684, #5743)

  • On mobile, thread setup is now handled in one bottom sheet instead of nested menus. The composer shows the full thread setup in a single pill, lets you stage model and settings changes together before saving, groups provider model lists more cleanly, and keeps reasoning/context/runtime controls in compact stacked submenus. (#5625)

  • The desktop Browser panel now remembers recently used sites per project. It records successfully opened URLs from the address bar, local-server opens, terminal links, and chat preview links, then shows title, URL, relative visit time, and a remove action, which helps with custom domains like app.test that port scanning would miss. (#5270)

  • Agents can now open images you paste into chat. Attachment file paths are appended to the provider-bound turn text so adapters can work with the real file on disk, and Claude gets access to the attachments directory without broadening that grant to nearby files like secrets or state databases. (#5757)

  • Theme behavior is more configurable. Custom palette themes can opt out of sidebar artwork in favor of the version pill, and import/export actions in theme settings were cleaned up to better match their actual behavior. (#5636, #5964)

Breaking changes

  • Sidebar v2 is now the default sidebar. The old beta toggle is gone, the previous sidebarV2Enabled and sidebarV2ConfiguredByUser config keys are replaced by legacySidebarEnabled, and the old sidebar only remains behind a new “Sidebar (legacy)” setting in General → Legacy features. Prior beta opt-outs reset to the new default. (#5672)

  • Plan mode and token-by-token output were moved under Legacy features. Token streaming also moved to a new config key, enableLegacyTokenStreaming replacing enableAssistantStreaming, so existing opt-ins reset back to buffered output. (#5664)

  • Project settings moved from /settings/projects to contextual /projects/$projectKey routes. Sidebar and command-palette navigation were updated accordingly. (#5923)

Fixes

  • Settling a thread now also stops its live provider session, so monitors, background shells, subagents, and dev servers do not keep running after you mark the thread done. (#5774)

  • Server reaping no longer silently kills threads that still have live background work such as subagent fleets or monitor loops. (#5677)

  • Codex threads can now be stopped correctly even when a follow-up turn is queued. (#5762)

  • Claude resume handshakes no longer emit phantom completions for turns that never ran. (#5710)

  • Usage totals no longer jump as devices report in, and Codex usage no longer double-count copied history from forked or subagent rollout files. (#5772, #5887)

  • PR status polling now backs off correctly on GitHub failures and skips branches that were never pushed, reducing unnecessary rate-limit pressure. (#5673)

  • User-provided SVGs served from signed asset URLs are now sandboxed with a restrictive CSP. (#5916)

  • A large favicon scan no longer pins the server event loop and wedge the whole environment into reconnect loops. (#5538)

  • One OOM-killed agent process no longer stops the whole server unit with it. (#5788)

  • Mobile reconnects no longer shift the thread list, long-pressing a thread row no longer opens the thread underneath the context menu, and Android user bubbles with code blocks no longer overlap later messages. (#5372, #5901, #5659)

  • Desktop zoom shortcuts now always zoom the main app window, even when an embedded preview has focus. (#5691)

  • Windows CLI resolution now includes %USERPROFILE%\.local\bin, so native-installed providers like Claude are found more reliably. (#5074)

Other notable changes

  • vp run migrate-dev-db can now seed a worktree dev database from a pruned snapshot of your real ~/.t3 data, then run the current checkout’s migrations on top of real applied state. (#5773)
  • Web usage chrome, breadcrumbs, and title bars were unified with the rest of the app shell. (#5756, #5823, #5897, #5929)
  • Themed confirmation dialogs are now used for normal and destructive confirmations across more web and desktop flows. (#5624)
  • Mobile production EAS releases are now automated for qualifying merges, including OTA gating by native fingerprint compatibility. (#5609)

Contributors

@t3dotgg, @chrisdeeming, @maria-rcks, @caezium, @ipanasenko, @t3-code[bot], @juliusmarminge, @leorivastech, @naMqe-h, @gfsaaser24, @wobsoriano, @UtkarshUsername, @murenovich, @tsouth89, @nathangerday, @arhxam, @myacoub91, @Brechard, @Chrono-byte, @tris203, @Lucenx9, @carterwsmith, @StiensWout

Only a subset of merged work was shown here.

Only the most active 65 of 66 merged PRs were included. See the full compare view.