v0.1.9 · 198 changes from 31 contributors
- T3 Connect agent sign-in. Approve agent sign-ins with T3 Connect instead of copying a pairing code.
- Send during uploads. Send messages with attachments while they are still uploading.
- Claude session approvals. Allow an MCP app for a Claude session instead of approving each action individually.
- Screen reader announcements. Hear agent messages and steps during a turn without leaving the composer.
- GitLab revert. Revert a merged GitLab merge request from T3 Code.
- OpenCode goals. Use OpenCode's native goals and keep their state in sync across clients.
- Pull request links. Open pull request links directly to their referenced comment, diff line, checks, or commit.
Plus 164 more bug fixes and performance improvements.
Full changelog
What's Changed
- fix(web): checking for updates finds provider updates on every machine by @t3dotgg in #33538
- fix(web): settings say custom instructions cover pull request descriptions by @maria-rcks in #33113
- feat(web): send messages while attachments upload by @maria-rcks in #33092
- fix(mobile): Android PDF preview double-tap zoom and easier link taps by @juliusmarminge in #33570
- feat: approve agent sign-ins with T3 Connect instead of a code by @juliusmarminge in #33600
- fix(mobile): the composer and search bars move with their iOS columns by @juliusmarminge in #33543
- ci(mobile): build Android store releases on Blacksmith by @juliusmarminge in #33565
- fix(web): thread title menu opens without a half-second wait on desktop by @t3dotgg in #33598
- fix(web): a new side chat focuses its message input by @darioielardi in #32929
- perf(opencode): bound usage reads to in-window messages by @Yash-Singh1 in #33612
- chore(web): upgrade @pierre/diffs to 1.7 and use its built-in find by @juliusmarminge in #33627
- fix(web): expanding hidden diff context works after a diff refresh by @juliusmarminge in #33629
- feat: approve agent sign-ins on app.t3.codes with T3 Connect by @juliusmarminge in #33632
- perf(cursor): improve account usage scanning by @Yash-Singh1 in #33636
- fix(web): dropdown items over the desktop title bar respond to clicks by @screen-gd in #32643
- fix: hosted agent approval no longer fails with "Your session cannot approve" by @juliusmarminge in #33645
- fix(web): new threads use the last used project by @Yash-Singh1 in #33626
- fix(mobile): distinguish local ACP instances by name by @shivamhwp in #32467
- ci(mobile): dev clients build on Blacksmith, and mobile:install starts that build by @juliusmarminge in #33617
- fix(mobile): Android sidebar and composer transitions no longer reflow at rest by @juliusmarminge in #33599
- fix(server): price Antigravity Gemini Flash effort variants by @Ephraim-9 in #13809
- fix(mobile): Android feed stays at its end after the keyboard or sidebar changes by @juliusmarminge in #33611
- fix(server): Antigravity install no longer fails on a stale Windows Crashpad pipe by @juliusmarminge in #26374
- ci(mobile): Android PR preview clients build on Blacksmith by @juliusmarminge in #33618
- fix(web): scrolling pans expanded images and Mermaid diagrams by @shivamhwp in #26630
- fix(desktop): agents see visible:true while the desktop shows their tab by @shivamhwp in #23589
- fix(server): allow requested WebMCP writes by @shivamhwp in #26570
- fix(antigravity): resolve model names from usage metadata by @Yash-Singh1 in #33661
- fix(web): show details for background commands by @Yash-Singh1 in #33647
- fix(ci): store-build checkouts drop credentials without submodule cleanup by @juliusmarminge in #33664
- fix(web): "Use T3 Code in another app" opens the Grok Bot app by @juliusmarminge in #33663
- ci(mobile): keep the Android store AAB as a workflow artifact by @juliusmarminge in #33674
- fix(mobile): hide compose in the detail rail while starting a task by @juliusmarminge in #33678
- ci(mobile): version bump commits no longer credit Codex by @juliusmarminge in #33689
- fix(server): stop PR watch flapping while workflows await approval by @shivamhwp in #24599
- fix(server): show idle paragraphs before the assistant turn ends by @shivamhwp in #28221
- fix(mobile): fit usage view selector beside the date range at large text by @PixPMusic in #33682
- fix(web): center short PR titles in thread details by @Yash-Singh1 in #33724
- fix(server): Claude threads can allow an MCP app for the session by @t3dotgg in #33707
- fix(web): reclaim notice says the machine will be offline by @shivamhwp in #33730
- fix(server): detaching a session no longer strands its pending approval by @juliusmarminge in #33535
- fix(opencode): long command turns no longer fail when the command request times out by @juliusmarminge in #27677
- fix(server): a queued message that names no model keeps the model picked ahead of it by @juliusmarminge in #33591
- fix(ssh): tunnel readiness no longer counts ssh's connection time by @juliusmarminge in #33554
- fix(server): preview_evaluate accepts top-level await by @juliusmarminge in #31925
- fix(server): quitting no longer restarts the relay client mid-shutdown by @juliusmarminge in #33628
- fix(shared): relative Windows file links open the file by @juliusmarminge in #33643
- fix(server): a steer that restarts a completion wake no longer strands later subagent results by @juliusmarminge in #33469
- fix(server): provider status checks no longer make mise download missing CLIs by @juliusmarminge in #33448
- fix(forgejo): find merged pull requests whose head branch was deleted by @juliusmarminge in #33675
- perf(shared): speed up escaped Markdown in long PR descriptions by @AksharP5 in #33438
- fix(server): a background agent tab survives a desktop window reload by @juliusmarminge in #33666
- fix(server): Commit, push & PR no longer pushes the default branch into itself by @juliusmarminge in #33695
- fix(acp): OMP threads show html_render pages by @juliusmarminge in #33677
- fix(ssh): Intel Mac hosts no longer try to download a missing t3 archive by @juliusmarminge in #33325
- fix(server): opening the branch menu no longer wipes PR status by @juliusmarminge in #33263
- fix(server): failed updates report download diagnostics by @tanav29 in #33239
- fix(web): remote Lineage rows keep their title when the environment name is long by @f4llenz in #33181
- fix(web): custom snooze footer stays inside the dialog by @juliusmarminge in #33759
- fix(desktop): right-clicking a mailto link offers Copy Email Address by @juliusmarminge in #33262
- fix(acp-registry): commands past the 128th are no longer dropped by @juliusmarminge in #33768
- fix(server): one finished turn looks up its branch's pull request once by @juliusmarminge in #33752
- fix(mobile): Android Files sheet scrolls its tree instead of dragging the sheet by @RadekManak in #33223
- fix(web): prompt suggestions show after a steered turn by @thelogicmatrix in #33706
- fix(server): usage prices Claude Mythos 5.2 from its Bedrock rate by @juliusmarminge in #33721
- fix(server): Claude turns whose CLI exits before its first frame fail instead of running forever by @juliusmarminge in #33008
- fix(web): panel resize handles follow touch drags by @juliusmarminge in #33066
- fix(server): signed-out Claude instances with their own config dir name it in the sign-in hint by @juliusmarminge in #32951
- perf(server): opening a long thread reads from its latest segments, not its whole history by @t3dotgg in #33305
- fix(server): repos without a remote no longer record failed spans on status refresh by @ferhtgoldaraz in #32905
- fix(mobile): missing files in previews name the checked path instead of asking to reconnect by @juliusmarminge in #32994
- fix(server): a restart that misses its turn starts as a new turn by @juliusmarminge in #32899
- fix(desktop): new browser tabs no longer lose waits, clicks and snapshots for good by @juliusmarminge in #32861
- fix(web): Go to source on a side chat quote keeps you on its parent thread by @juliusmarminge in #33160
- fix(server): removing a queued completion message keeps its siblings' wakes by @juliusmarminge in #32815
- fix(server): dev database seed drops active pull request watches by @juliusmarminge in #32744
- fix(server): capture iOS screenshots on Xcode 26's simctl by @shivamhwp in #28353
- fix(mobile): medium Android windows keep the rail's room and the sidebar's place by @dongxingong in #33021
- fix(web): notify when a new request replaces the pending one in a run by @juliusmarminge in #32719
- fix(server): Codex first-request usage limits keep their reset time by @shivamhwp in #27791
- fix(web): minimap next turn is disabled at the bottom of a thread by @juliusmarminge in #33038
- fix(cursor): a steer keeps the prompt it interrupted by @juliusmarminge in #32583
- test: remove redundant short-string truncation test by @t3-code-bot[bot] in #33867
- fix(pi): Pi models whose provider ID contains a slash can be selected by @juliusmarminge in #32585
- perf(server): MCP tool calls no longer read the caller's whole thread by @t3dotgg in #33295
- fix(ssh): concurrent launches on one remote home share one server by @juliusmarminge in #32587
- fix(mobile): iOS 18 iPad sidebar and thread feed start below the header by @juliusmarminge in #32936
- fix(web): Tab reaches the add-project and new-project submit buttons by @juliusmarminge in #32605
- fix(web): screen readers hear the add-project submit shortcut by @juliusmarminge in #32576
- fix(server): Antigravity limits read the quota host the account is metered on by @juliusmarminge in #32425
- fix(web): the thread menu works for an older settled thread the sidebar hasn't loaded by @juliusmarminge in #32507
- fix(opencode): show questions asked while OpenCode wakes a session on its own by @juliusmarminge in #32434
- fix(server): blank .gitignore lines no longer make checkpoints drop new files by @juliusmarminge in #32374
- test(web): minimap next-turn test no longer flakes after a resize by @t3dotgg in #33964
- feat(opencode): mirror native goals across clients by @Yash-Singh1 in #33758
- feat(web): bindable shortcut to regenerate a thread's title by @sharanry in #33987
- fix(server): linked projects keep their repository identity while it refreshes by @juliusmarminge in #32359
- fix(mobile): tool call commands are highlighted and monospaced like on web by @juliusmarminge in #33957
- fix: Claude monitor wakes no longer fire a completion alert per line by @juliusmarminge in #32520
- fix(server): removed thread worktrees keep their project's skills in the picker by @juliusmarminge in #32471
- fix(web): drag command palette threads into the composer by @Yash-Singh1 in #33990
- fix(shared): show zero seconds in minute durations by @Yash-Singh1 in #33994
- fix(web): closing the right panel returns focus to where it was by @juliusmarminge in #32569
- fix(server): say why threads without a project are unavailable by @juliusmarminge in #32342
- fix: chat file links open the file agents cite by @juliusmarminge in #33943
- fix(clients): scroll truncated command output notice with logs by @Yash-Singh1 in #34011
- fix(web): show app bundle icons and open apps from markdown links by @Yash-Singh1 in #33950
- feat(opencode): project native todo updates into checklists by @Yash-Singh1 in #34000
- fix(antigravity): recognize Gemini 4 Carbon and its quota by @DrSeedon in #33991
- perf(client): reopening a finished command row no longer refetches its output by @juliusmarminge in #34002
- perf(server): user-only message reads use the user-message index for ordinals by @juliusmarminge in #33009
- fix(web): keep HTML previews anchored when accordions expand by @Yash-Singh1 in #34003
- fix(web): preserve search result titles in drag previews by @Yash-Singh1 in #34017
- fix: file links with line ranges open at their first line by @juliusmarminge in #34006
- fix(codex): show image generation tool calls by @Yash-Singh1 in #34020
- fix(pi): a steer Pi has not read yet shows as waiting, not steered by @juliusmarminge in #33982
- fix(server): provider switches hand off started cancelled runs by @juliusmarminge in #34016
- fix(web,mobile): replace sparkles icons and ban them with a lint rule by @flamboh in #25422
- fix(github): a proxy's 403 with Retry-After is no longer reported as a rate limit by @juliusmarminge in #33676
- fix(web): sending from an empty citation comment clears the composer by @juliusmarminge in #33440
- fix(server): text generation fallback respects project provider settings by @Muzammil-Bit in #33741
- feat(usage): show Muse Code limits, and xAI and Antigravity accounts from a CLIProxyAPI hub by @StiensWout in #33800
- fix(web): preserve previews during attachment preparation by @Yash-Singh1 in #33949
- fix(desktop): input during window teardown no longer throws in the main process by @juliusmarminge in #33620
- fix(web): sent messages keep the numbers written on list items by @tsapa44 in #33820
- fix(server): quitting stops an agent-device daemon left by an earlier server by @juliusmarminge in #33587
- fix(mobile): attaching larger images no longer crashes with a BigInt error by @juliusmarminge in #34087
- feat(mobile): pick a voice environment once, then its method by @juliusmarminge in #34073
- fix(server): a t3 thread send to a finished delegated child notifies its parent by @juliusmarminge in #33446
- fix(web): question panel header text sits centered in its row by @juliusmarminge in #34095
- feat(scripts): scenarios prove a fix in the real app with e2e, on web and iOS by @juliusmarminge in #34007
- feat(claude): Fable resets are offered and redeemed apart from weekly resets by @juliusmarminge in #34106
- fix(desktop): desktop IPC only answers the main app window by @juliusmarminge in #34094
- feat(server): voice models reuse copies already on disk by @juliusmarminge in #34096
- fix(web): scroll project picker to top on first result by @Yash-Singh1 in #34113
- feat(opencode): track native image job outcomes and previews by @Yash-Singh1 in #34089
- fix(scripts): scenarios run where localhost resolves to IPv6 first by @juliusmarminge in #34121
- ci: browser secret helper apt step fetches fewer indexes by @t3dotgg in #33966
- fix(client-runtime): a search query pasted from github.com lists pull requests again by @juliusmarminge in #30150
- fix(web): tighter outdated-conversation cards in the PR code panel by @Yash-Singh1 in #34140
- fix(web): MCP App cards no longer flash white in dark mode while the app loads by @juliusmarminge in #33352
- fix(peer): link requests use the addresses the app already has for a machine by @t3dotgg in #34139
- fix(server): Find frees searched thread text after one idle minute by @t3dotgg in #34132
- fix(web): settings search shortcuts follow the physical key on non-US layouts by @juliusmarminge in #33395
- fix(server): import Codex chats moved into a project from the scratch folder by @juliusmarminge in #32880
- fix(desktop): clear stale GPU caches when the Electron version changes by @juliusmarminge in #33641
- fix(web): PR links jump to the comment, diff line, checks or commits they name by @Yash-Singh1 in #33989
- fix(cli): installers retry transient GitHub errors by @juliusmarminge in #32913
- fix(web): opening the terminal with Cmd+J no longer re-renders the whole sidebar by @juliusmarminge in #33129
- refactor(web): remove icon morphing by @maria-rcks in #33985
- feat(opencode): track native shell jobs across turns by @Yash-Singh1 in #34141
- fix(server): restart send stops a Claude turn and runs the message next by @juliusmarminge in #32902
- fix(shared): login-shell environment probe ignores DEBUG trap output by @juliusmarminge in #32646
- fix(web): make Q&A option outlines visible across themes by @Yash-Singh1 in #34178
- fix(web): hide empty replies when renders show the result by @Yash-Singh1 in #34182
- fix(web): mouse tilt wheel no longer switches threads on Windows and Linux desktop by @juliusmarminge in #32963
- fix(web): timeline minimap preview no longer steals hover or jumps around by @NoomStuff in #32151
- fix(server): auto thread sends queue while a turn is stopping by @tanav29 in #34163
- fix(server): stream the usage-scan cache to disk instead of one string by @juliusmarminge in #34030
- fix(clients): images the agent opens stay visible in the chat by @fedeinfe in #30473
- fix(client-runtime): pasted repository page URLs clone the repository into its own folder by @juliusmarminge in #32681
- fix(web): trackpad flicks over the right panel tabs no longer navigate back by @juliusmarminge in #33396
- fix: new threads move from draft to Working in one step by @juliusmarminge in #33783
- fix(gitlab): review comments can cover a range of lines by @TonybynMp4 in #30535
- test(web): right panel tab swipe test runs as macOS on any CI host by @juliusmarminge in #34191
- fix(shared): cite assistant messages with IDs over 512 characters by @juliusmarminge in #28084
- fix(server): updates copy the database while the server still runs when it cannot be cloned by @binjamshid in #33058
- fix(mobile): file links in question cards open the file viewer by @juliusmarminge in #29151
- fix(server): cloning into a stranded clone project's empty folder reuses that project by @juliusmarminge in #33439
- fix(desktop): stable updates no longer show a nightly's release notes by @juliusmarminge in #32832
- fix(shared): Open in Zed ignores the OpenZFS zed daemon on Linux by @juliusmarminge in #33479
- fix(mobile): chat code blocks colour diff, kotlin, sql and other languages again by @juliusmarminge in #33680
- fix(server): fork Claude threads after project root changes by @juliusmarminge in #22836
- fix(web): snooze times read naturally in context menus by @TonybynMp4 in #24945
- feat(web): label chips show the label's description on hover by @TonybynMp4 in #28732
- feat(web): composer strip names the worktree folder by @TonybynMp4 in #28459
- feat(gitlab): revert a merged merge request by @TonybynMp4 in #30556
- fix(claude): version errors from a custom endpoint no longer say to run claude update by @binjamshid in #34176
- fix(web): files marked Viewed stay folded when a pull request's Code tab opens again by @Umais-Adeed in #34168
- feat(server): watched GitHub pull requests react to host events, not only the 2-minute sweep by @juliusmarminge in #33548
- fix(server): hide passive Claude Stop-hook summaries by @juliusmarminge in #22964
- fix(web): dismiss image path tooltips after preview and scroll by @voltcrash in #30620
- fix(server): PR sync and run-status checks stop reading whole thread histories by @juliusmarminge in #25728
- fix(server): preview snapshots keep page text beside large accessibility trees by @juliusmarminge in #33745
- feat(web): screen readers can hear the agent's messages and steps during a turn by @shivamhwp in #33900
- fix(server): thread search finds phrases inside quotes and their comments by @only21mil in #22553
- fix(web): local server cards in the browser empty state take pointer clicks by @juliusmarminge in #34050
- fix(server): worktrees cut from a non-default base no longer show the base's PR by @t3dotgg in #22861
- fix(desktop): wait for the local server to exit when quitting by @juliusmarminge in #22996
- fix(server): agent continuations preserve the working timer start by @juliusmarminge in #22947
- fix(web): disable the git actions menu when nothing in it is usable by @Serendeep in #31972
- fix(server): preserve active turns when switching provider instances by @juliusmarminge in #22755
- fix(server): scheduled task updates keep the saved workspace unless the binding changes by @juliusmarminge in #32494
- fix(web): full-screen HTML pages fit their content and zoom by reflowing by @Zeus-Deus in #22349
- fix(web): project actions auto-open Preview in web clients by @juliusmarminge in #34048
- fix(server): a follow-up delegated task waits for a run its child queued on its own thread by @juliusmarminge in #32504
New Contributors
- @darioielardi made their first contribution in #32929
- @tanav29 made their first contribution in #33239
- @RadekManak made their first contribution in #33223
- @thelogicmatrix made their first contribution in #33706
- @ferhtgoldaraz made their first contribution in #32905
- @dongxingong made their first contribution in #33021
- @sharanry made their first contribution in #33987
- @tsapa44 made their first contribution in #33820
- @NoomStuff made their first contribution in #32151
- @fedeinfe made their first contribution in #30473
Full Changelog: v0.1.8...v0.1.9