What's Changed
- feat(mobile): add v2 preview store builds by @juliusmarminge in #11966
- fix(mobile): block incompatible server connections by @juliusmarminge in #11974
- fix(web): keep PR controls readable in narrow panels by @Bil0000 in #11962
- fix(server): block updates under legacy service launchers by @Gigioxx in #11940
- fix: reduce GitHub quota use with sharing enabled by @Bil0000 in #11888
- fix(usage): refresh limits when the tab opens by @Bil0000 in #11928
- fix(contracts): avoid Intl.Segmenter in monogram validation (Hermes crash) by @bompus in #11984
- feat(lint): extend Hermes API bans with a configurable API list by @juliusmarminge in #11982
- fix(server): reuse Git index metadata during checkpoint capture by @im-kvijay in #10792
- refactor: give project monograms their own icon variant by @juliusmarminge in #11993
- fix(clients): disable incompatible environments during discovery by @juliusmarminge in #11990
- fix(antigravity): stop health checks from filling the disk with _MEI folders by @t3dotgg in #12008
- fix(mobile): bare t3code:// links no longer reset navigation to Home by @SunkenInTime in #12002
- fix(server): keep Claude rewind when fork history length changes by @maria-rcks in #11954
- fix(mobile): use native toolbar search for licenses by @juliusmarminge in #12011
- fix(server): detect unsupported legacy Android command-line tools by @Yash-Singh1 in #12017
- fix(web): stop the worktree setup card from flashing and shifting by @juliusmarminge in #12015
- fix(clients): show unsupported environments as neutral rows with their machine icon by @juliusmarminge in #12026
- fix(clients): hold the discovered machine icon across relay refreshes by @juliusmarminge in #12030
- fix(server): resolve Node for standalone helper scripts by @juliusmarminge in #12033
- feat(web): reveal timestamps on tool rows and turn folds by @saphid in #8641
- docs: make the standalone installer the primary way to get the CLI by @juliusmarminge in #11696
- fix(web): submit PR comments with Cmd/Ctrl+Enter by @flamboh in #11994
- refactor(web): centralize pull request icon state presentation by @flamboh in #11144
- feat(providers): expose native slash commands across clients by @maria-rcks in #11519
- feat(web): add send shortcut and follow-up controls by @Bil0000 in #12075
- feat(chat): show provider thinking traces by @maria-rcks in #11784
- feat(usage): show OpenCode Go, Cursor, and Grok subscription limits by @maria-rcks in #12115
- fix(web): dropped folders become path chips on the local environment and are refused on remote ones by @SunkenInTime in #12001
- fix(web): adapt provider settings to available content width by @tris203 in #12138
- fix(web): show private repository media in pull request tabs by @maria-rcks in #11706
- fix(review): show complete counts and load large diffs progressively by @tris203 in #10822
- fix(web): prioritize linked pull requests over automatic diffs by @maria-rcks in #12142
- feat(cli): show installer and update download progress by @juliusmarminge in #12044
- fix(web): simplify agent approval prompts by @Bil0000 in #12082
- fix(web): show tooltips for composer environment and workspace controls by @flamboh in #11787
- fix(chat): group thoughts into the changing tool activity line by @maria-rcks in #12147
- fix(web): keep tool timestamps before disclosure chevrons by @Yash-Singh1 in #12152
- fix(web): default diff panel to working tree by @maria-rcks in #12139
- design(mobile): unify Android Material layouts and native controls by @PixPMusic in #11841
- feat(web): choose themes from chat with color previews by @maria-rcks in #12143
- fix(web): align follow-up and license settings controls by @Bil0000 in #12167
- fix(web): align composer task rows by @maria-rcks in #12165
- fix(mobile): prevent Android compose FAB animation jitter by @PixPMusic in #12169
- fix(server): keep large sparse checkouts on the fast checkpoint path by @vedprakash2302 in #12154
- feat(web): make pull request comments easier to scan by @maria-rcks in #12150
- fix(server): propagate linked pr changes and settle threads immediately by @maria-rcks in #12161
- fix(web): reuse cached GitHub PR details across entry points by @maria-rcks in #12168
- Remove
newbadge from Fable 5.1 by @juliusmarminge in #12173 - fix(web): show author avatars in pull request previews by @extoci in #12125
- fix(server): settle cancelled worktree setup before rollback by @juliusmarminge in #12176
- feat(mobile): port worktree setup progress and agent handoff by @juliusmarminge in #12177
- fix(server): flush checkpoint objects and refs before publishing them by @Mnigos in #10944
- fix(server): keep ready checkpoints when a later placeholder arrives by @Adolanium in #8432
- fix(server): keep VCS waits from blocking turn completion by @Vrtak-CZ in #11970
- fix(web): keep header spacing stable when sidebar drawer opens by @flamboh in #12162
- fix(web): fall back when pull request avatars fail by @tastelessjolt in #11728
- feat(web): enable rich text composer by default by @juliusmarminge in #12160
- feat(web): make keybindings searchable from settings search by @maria-rcks in #12175
- fix(web): preserve thread reading positions by @maria-rcks in #12144
- fix(diff): collapse files by default by @maria-rcks in #12190
- fix(web): folder links from chat open the file tree instead of a broken preview by @pc-style in #10909
- feat(web): command palette search matches thread IDs by @saphid in #11185
- fix(web): align notification icons with titles by @maria-rcks in #12202
- fix(skills): support unicode currency symbols as skill aliases by @WilgotM in #12098
- feat(settings): add automatic storage cleanup per machine and project by @maria-rcks in #11598
- feat(web): command palette finds the pull requests and usage pages by @flamboh in #12211
- feat(web): start new threads with multiple models in separate worktrees by @maria-rcks in #12179
- fix(mobile): keep screen awake during dictation by @juliusmarminge in #12227
- feat(mobile): add favorites to model picker by @juliusmarminge in #12231
- fix(desktop): keep preview picking active across subframe navigation by @Lucenx9 in #9741
- fix(shared): keep the newest shared usage scan by @yashranaway in #10315
- fix(web): keep thoughts and failed tool calls in one activity row by @maria-rcks in #12270
- fix(web): avoid reopening settled threads when adding projects by @dominic-r in #11804
- feat(mobile): make Settings easier to navigate and scope by @juliusmarminge in #12272
- fix(mobile): prevent overlapping text and UI on Android chat messages by @Exotic209093 in #11611
- feat(web): pull request files can be marked as viewed by @yordis in #7721
- fix(web): keep composer banners compact and readable by @Bil0000 in #12166
- fix(web): collapse thoughts within tool groups by @maria-rcks in #12302
- fix(usage): preserve saved totals after transcript cleanup by @maria-rcks in #12304
- fix(mobile): show Agent behavior icon on Android by @juliusmarminge in #12316
- fix(web): keep PR panel actions in the current thread by @Bil0000 in #12320
- fix(web): keep browser pages aligned during panel animations by @juliusmarminge in #12329
- fix(server): bound provider event log records before serialization by @juliusmarminge in #12305
- fix(server): reject file rewind in shared workspaces by @juliusmarminge in #12306
- fix(server): capture checkpoints when baseline lookup fails by @juliusmarminge in #12307
- fix(server): refresh file search outside checkpoint processing by @juliusmarminge in #12308
- fix(web): keep chat from jumping when the scroll-to-end pill mounts by @Yash-Singh1 in #12317
- fix(server): checkpoint workspaces with empty nested repositories by @saphid in #12181
- chore(review): keep review bots out of the vendored .repos references by @juliusmarminge in #12333
- fix(server): pass Codex image attachments by path to avoid oversized requests by @saphid in #11050
- feat(web): filter sidebar from thread menu by @saphid in #8719
- feat(web): open diff files from a right-click context menu by @saphid in #11842
- fix(web): keep numbered jumps from stealing browser tabs by @Yash-Singh1 in #12315
- fix(mobile): define Clerk colors in every Uniwind theme by @juliusmarminge in #12344
- refactor(web): reuse searchable picker inputs by @juliusmarminge in #12353
- fix(web): share touch-visible pull request edit actions by @juliusmarminge in #12370
- fix(mobile): share accessible connection trace controls by @juliusmarminge in #12371
- fix(mobile): share settings control row layout by @juliusmarminge in #12356
- refactor(web): share diagnostic process actions by @juliusmarminge in #12358
- refactor(mobile): share Android toolbar search fields by @juliusmarminge in #12359
- refactor(web): share settings group surfaces by @juliusmarminge in #12360
- refactor(web): reuse inline settings actions by @juliusmarminge in #12362
- refactor(mobile): share thread list section controls by @juliusmarminge in #12363
- refactor(mobile): share connection form fields by @juliusmarminge in #12364
- refactor(mobile): share local environment lists by @juliusmarminge in #12365
- refactor(mobile): share file preview feedback by @juliusmarminge in #12368
- refactor(web): share standalone page layout by @juliusmarminge in #12354
- fix(mobile): share settings action row defaults by @juliusmarminge in #12369
- fix(mobile): share request action button defaults by @juliusmarminge in #12366
- fix(web): share accessible color picker controls by @juliusmarminge in #12355
- fix(mobile): use singular label for one settings environment by @juliusmarminge in #12282
- feat(mobile): add copy thread ID to thread list actions by @jakeleventhal in #12228
- fix(mobile): remove Android input underline backgrounds by @juliusmarminge in #12394
- chore(deps): upgrade Effect to rc.115 and Alchemy to beta.78 by @juliusmarminge in #12326
- chore(refs): sync Effect and Alchemy references to rc.115 and beta.78 by @juliusmarminge in #12327
- chore(relay): deploy with the Alchemy CLI and publish client config through an Action by @juliusmarminge in #12401
- chore(deps): bump the npm_and_yarn group across 1 directory with 3 updates by @dependabot[bot] in #12411
- fix(git): prevent stale branch selections from restoring files by @yashranaway in #10574
- chore(deps): bump parents that carry vulnerable transitive dependencies by @juliusmarminge in #12417
- fix(web): keep a file-to-symlink type change from crashing the diff view by @Mnigos in #11075
- Use T3 Device panel for mobile testing by @juliusmarminge in #12414
- fix(web): client spans reach the trace proxy again by @yordis in #12332
- fix(bitbucket): preserve rate limits from optional PR reads by @juliusmarminge in #12486
- fix(mobile): synchronize native permission registry access by @juliusmarminge in #12482
- fix(build): retain multiple license notices for one package by @juliusmarminge in #12489
- fix(build): parse executable imports without matching source strings by @juliusmarminge in #12488
- fix(mobile): synchronize native notification delegates by @juliusmarminge in #12483
- fix(relay): accept delegated thread IDs in activity routes by @juliusmarminge in #12484
- fix(git): explain fetch failures without exposing remote output by @juliusmarminge in #12485
- fix(web): sidebar search matches message content by @koushikxd in #11761
- fix(server): restore secrets when settings persistence fails by @juliusmarminge in #12487
- fix(ci): accept V2 transfer reports without cross-scenario comparisons by @juliusmarminge in #12492
- fix(web): speed up PR previews with fewer GitHub requests by @dominic-r in #11825
- fix(server): retry transient git failures during checkpoint capture by @saphid in #11665
- fix(mobile): keep archived threads visible during iOS search by @juliusmarminge in #12420
- perf(mobile): isolate Material You conversion on Android by @juliusmarminge in #12379
- perf(mobile): isolate iOS Live Activity imports by @juliusmarminge in #12380
- refactor(mobile): split home headers by platform by @juliusmarminge in #12381
- refactor(mobile): split native menus by platform by @juliusmarminge in #12382
- refactor(mobile): isolate thread row appearance by platform by @juliusmarminge in #12383
- refactor(mobile): split settings selection rows by platform by @juliusmarminge in #12384
- refactor(mobile): centralize platform header rendering by @juliusmarminge in #12388
- refactor(mobile): configure thread headers through the shared core by @juliusmarminge in #12389
- refactor(mobile): share file header actions and search configuration by @juliusmarminge in #12390
- refactor(mobile): share terminal header and menu configuration by @juliusmarminge in #12391
- refactor(mobile): share archived thread header configuration by @juliusmarminge in #12399
- refactor(mobile): compose review menus through the shared header by @juliusmarminge in #12400
- feat(mobile): search projects when starting a task by @juliusmarminge in #12496
- fix(mobile): preserve multiple model favorites by @juliusmarminge in #12505
- feat(server): export log records over OTLP by @yordis in #12493
- fix(mobile): use native settings and snooze controls by @juliusmarminge in #12512
- feat(web): sort pull requests by what is blocked on me by @flamboh in #12508
- fix(mobile): prefer pull-to-refresh on list screens by @juliusmarminge in #12515
- fix(acp): accept SDK elicitation requests by @shivamhwp in #11294
- fix(release): read relay configuration without loading deployment providers by @juliusmarminge in #12518
- fix(ci): reconcile native change labels against pinned commits by @juliusmarminge in #12517
- fix(release): strip Alchemy progress before parsing relay state by @juliusmarminge in #12519
- refactor: remove obsolete code by @t3dotgg in #9917
- fix(server): release oversized pull request diff cache entries by @juliusmarminge in #12523
- feat(mobile): view and control agent devices by @juliusmarminge in #12531
- fix(preview): recover host registration after request timeouts by @juliusmarminge in #12535
- fix(mobile): align built-in theme colors with desktop by @juliusmarminge in #12534
- feat(desktop): export main process telemetry over OTLP by @yordis in #12520
- fix(codex): surface app permission requests as approvable by @Exotic209093 in #7861
- chore(desktop): leave main process metrics export off until a metric exists by @juliusmarminge in #12540
- fix(release): drop placeholder allowBuilds entry that broke desktop builds by @juliusmarminge in #12544
- fix(mobile): adapt workspace navigation and expand controls by @juliusmarminge in #12551
- chore(mobile): add dev client script with preview environment by @juliusmarminge in #12558
- fix: detect installed editors outside PATH by @Bil0000 in #12439
- fix(web): show plain text in collapsed thought previews by @Bil0000 in #12377
- fix(web): wrap long titles in confirmation dialogs by @saphid in #12571
- fix(mobile): keep the Android composer placeholder on one line by @SunkenInTime in #12605
- fix(web): restore providers settings heading by @maria-rcks in #12552
- Add new GitHub user 'yordis' to VOUCHED.td by @juliusmarminge in #12546
- chore: vouch cestercian by @juliusmarminge in #12638
- fix(web): keep desktop annotation screenshots under CSP by @cestercian in #12636
- fix(web): keep typed text when a question option is clicked by @cestercian in #12577
- fix(server): empty Claude homePath shares continuation with ~/.claude by @cestercian in #12624
- fix(desktop): include SnapShot app text for Flatpak and GTK4 by @cestercian in #12635
- fix(server): surface ACP stderr when cursor-agent exits at session start by @cestercian in #12625
- fix(web): align pull request state glyph to top of row by @akash3444 in #11268
- fix(web): align menu item icons in pull request detail panel by @akash3444 in #11263
- fix(web): honor whitespace settings in pull request diffs by @Bil0000 in #12438
- fix(web): keep citation comment when popover is dismissed by @flamboh in #10831
- fix(web): keep narrow chat headers readable and aligned by @shivamhwp in #12453
- refactor(observability): hold OTLP export settings per signal by @yordis in #12657
- fix(web): explain what enabling network access means in its confirmation by @Mnigos in #10098
- fix(web): reuse current PR status in the sidebar by @flamboh in #12545
- fix(web): stabilize pull request loading layout by @flamboh in #12721
- fix(desktop): align preview recording cursors and show input feedback by @juliusmarminge in #12779
- fix(web): the Run on / Workspace menu closes after a pick by @Mnigos in #12685
- fix(web): keep portaled menus clickable over Electron drag regions by @maria-rcks in #12527
- fix(web): render citations in queued messages by @maria-rcks in #12403
- fix(web): keep the timeline still when the resting composer expands by @flamboh in #12771
- fix: composer hero reads project name to screen readers by @Leos-Khai in #12397
- fix(mobile): respect word wrap in diffs by @jakeleventhal in #12590
- fix(web): allow full contrast in assistant replies by @maria-rcks in #12405
- fix(web): pull request chips share the link hover preview by @flamboh in #12719
- fix(web): compact the worktree setup glass popover by @maria-rcks in #12802
- fix(web): route keyboard submit through the primary worktree action by @maria-rcks in #12526
- fix(web): skip image inline chip when composer is empty by @maria-rcks in #12528
- fix(web): only show notice details when text is clipped by @t3-code[bot] in #12760
- fix(devices): recover simulator streams after failures by @juliusmarminge in #12639
- chore(server): bump device tooling versions by @juliusmarminge in #12809
- fix: allow more attachments without raising the image payload budget by @Bil0000 in #12620
- fix(web): device Reconnect starts one stream instead of two by @juliusmarminge in #12808
- fix(server): tolerate shutting down an iOS simulator that is already off by @juliusmarminge in #12807
- feat(web): use the linked pull request row layout on the pull requests page by @maria-rcks in #12536
- fix(clients): keep backslashes in copied Codex citations by @Lucenx9 in #12243
- feat(web): truncate branch names and paths in the middle by @maria-rcks in #12805
- fix(web): paste markdown with inline code inside bold, italic, or strikethrough by @Gigioxx in #12290
- feat(web): show the pull request refresh spinning in the detail header by @maria-rcks in #12833
- fix(web): dismiss composer suggestions with Escape by @Yash-Singh1 in #12836
- fix(mobile): keep the source worktree when starting a thread on a branch by @SunkenInTime in #12623
- fix(web): keep composer controls visible while they fit by @maria-rcks in #12837
- feat(devices): show installed and running tool versions per host by @juliusmarminge in #12816
- feat(devices): show automatic update progress and host retry by @juliusmarminge in #12817
- feat(devices): add read-only update discovery and remote ownership by @juliusmarminge in #12818
- fix(devices): safely reclaim obsolete managed tool versions by @juliusmarminge in #12819
- fix(web): match thread notification icons to sidebar status by @maria-rcks in #12806
- fix(web): move sidebar shelves as one block by @maria-rcks in #11772
- fix(web): offer undo after unpinning a thread by @saphid in #10744
- feat(web): undo settle, snooze and archive, with a mod+z shortcut by @juliusmarminge in #12848
- fix(mobile): use a proper pull request icon on iOS by @juliusmarminge in #12855
- test(web): remove redundant favicon test by @t3-code[bot] in #12856
- feat(devices): offer manual updates in tool version details by @juliusmarminge in #12877
- feat(web): answer pull request actions on the row at once by @maria-rcks in #12843
- fix(mobile): stop iOS autocorrect from rewriting search queries by @juliusmarminge in #12949
- fix(web): pull request embed chip shows the state icon by @flamboh in #12951
- fix(web): dismiss selection actions when pressing buttons by @Yash-Singh1 in #12950
- fix(web): name message copy actions accurately by @saphid in #12865
- fix(contracts): old message-sent events without turnId no longer stop the server from starting by @Mnigos in #12763
- fix(web): the custom snooze calendar starts the week where the locale does by @Mnigos in #12745
- feat(server): let t3.json limit or disable submodule init in new worktrees by @juliusmarminge in #12953
- feat(settings): resolve t3.json inside the project settings resolver by @juliusmarminge in #12954
- feat(settings): choose how new worktrees initialize submodules by @juliusmarminge in #12955
- fix(web): show thread undo notice in the sidebar by @juliusmarminge in #12972
- feat(web): merge the comment and review buttons into one composer by @Bil0000 in #12945
- fix(web): allow text selection when renaming threads by @carterwsmith in #12935
- chore(lint): report className restyling of components/ui exports by @juliusmarminge in #12982
- refactor(web): drop className overrides that repeat the base styles by @juliusmarminge in #12984
- fix(web): close menus when clicking into the browser tab by @Gigioxx in #11148
- refactor(web): give Spinner and RefreshIcon a size prop by @juliusmarminge in #12985
- fix(web): retry failed attachment uploads after reconnect by @StiensWout in #10338
- fix(web): respect panel motion in composer transitions by @gsimone in #11064
- fix(web): read panel animation settings in the composer by @juliusmarminge in #13098
- feat(models): add opus 5.5 without changing existing aliases by @t3-code[bot] in #13094
- refactor(web): use ghost-muted where ghost buttons restyled to muted by @juliusmarminge in #13020
- refactor(web): fold repeated overrides into ui defaults by @juliusmarminge in #13021
- refactor(web): mark the current menu value with MenuRadioGroup by @juliusmarminge in #13022
- refactor(web): add an active prop to CommandItem by @juliusmarminge in #13023
- chore(lint): exempt CollapsibleTrigger from no-restyle by @juliusmarminge in #13024
- refactor(web): use icon-xs where icon buttons were forced to size-6 by @juliusmarminge in #13025
- refactor(web): add radius="none" to ScrollArea by @juliusmarminge in #13026
- refactor(web): add font="mono" to Input by @juliusmarminge in #13027
- refactor(web): add SidebarInput by @juliusmarminge in #13028
- refactor(web): add a label variant to Badge by @juliusmarminge in #13029
- refactor(web): give Skeleton three shapes by @juliusmarminge in #13030
- refactor(web): one wrap width for tooltips, plus a code variant by @juliusmarminge in #13031
- refactor(web): one vertical rhythm for dialog bodies by @juliusmarminge in #13032
- refactor(web): ghost-muted icons follow the text; add ghost-destructive by @juliusmarminge in #13033
- refactor(web): InlineButton underlines on hover and takes a tone by @juliusmarminge in #13034
- refactor(web): one minimum width for menus, three widths for popovers by @juliusmarminge in #13035
- refactor(web): every textarea caps its growth; the diff comment box is a Textarea by @juliusmarminge in #13036
- refactor(web): stacked sidebar groups share one inset by @juliusmarminge in #13037
- refactor(web): Collapsible stays a plain container by @juliusmarminge in #13038
- refactor(web): show more / show less are ordinary sidebar sub-rows by @juliusmarminge in #13039
- refactor(web): Empty has three sizes by @juliusmarminge in #13040
- refactor(web): one row height for select, combobox and radio items by @juliusmarminge in #13041
- refactor(web): render menu and popover triggers through Button by @juliusmarminge in #13042
- refactor(web): sidebar alerts use the standard variants; one keycap by @juliusmarminge in #13043
- fix(server): bypass owned caches on explicit provider refresh by @juliusmarminge in #13109
- chore(devices): bump agent-device to 0.21.12 by @juliusmarminge in #13124
- chore(mobile): drop dead nitro-markdown tgz override and @expo/metro-runtime by @juliusmarminge in #13148
- feat(web): show settings scope as a sentence at the top of the page by @juliusmarminge in #13139
- refactor(web): move settings scope pickers into breadcrumbs by @Yash-Singh1 in #13165
- feat(auth): share provider sign-in flows and credential bindings by @juliusmarminge in #12983
- refactor(mobile): git sheets use uniwind platform variants instead of className ternaries by @juliusmarminge in #13161
- chore(mobile): name the two project favicon caches by their job by @juliusmarminge in #13160
- revert(mobile): git sheets back to Platform.OS ternaries (un-guarded uniwind variants broke both platforms) by @juliusmarminge in #13169
- docs(mobile): document the two mobile routes that intentionally skip deep links by @juliusmarminge in #13164
- refactor(mobile): break module cycles with focused extractions by @juliusmarminge in #13151
- fix(server): generate PR diffs from branch changes by @Yash-Singh1 in #13170
- fix(web): preserve nested scroll behavior in chat timeline by @Yash-Singh1 in #13167
- test(web): cover usage model ordering without static markup by @flamboh in #13104
- fix(desktop): find linuxbrew node for the WSL backend by @CodyRay in #7827
- chore(models): use GPT-6 Luna for text generation by @extoci in #13115
- fix(mobile): keep ordinary offline outbox failures out of console.warn by @juliusmarminge in #13144
- feat(providers): check remote compatibility ranges by @juliusmarminge in #13130
- chore(lint): keep mobile theme escape-hatch allowlist honest by @juliusmarminge in #13146
- fix(web): the pull request badge reads at the meta size again by @juliusmarminge in #13175
- fix(mobile): uniwind platform variants stay guarded on both platforms by @juliusmarminge in #13172
- refactor(mobile): git sheets use uniwind platform variants instead of className ternaries by @juliusmarminge in #13185
- refactor(mobile): remaining className platform ternaries become class variants by @juliusmarminge in #13188
- fix(web): align provider emails without clipping by @Derpedyea in #13174
- perf(mobile): recycle the default v2 home list and scope the snooze minute tick by @juliusmarminge in #13149
- refactor(mobile): retire the legacy grouped thread list by @juliusmarminge in #13183
- fix(server): background PR checks spend less GitHub quota by @juliusmarminge in #13189
- fix(server): background PR sync reads summaries in batches by @juliusmarminge in #13198
- fix(server): GitHub PR lookups stop probing owner-qualified heads by @juliusmarminge in #13200
- chore(mobile): clear the legacy-list deletion fallout by @juliusmarminge in #13203
- hatch/variant functions by @juliusmarminge in #13191
- refactor(web): context chips render through one ContextChip component by @juliusmarminge in #13192
- refactor(web): ui components drop their secondary className props by @juliusmarminge in #13193
- refactor(web): menu triggers and items stop restyling ui/menu by @juliusmarminge in #13205
- refactor(web): field controls stop restyling Input, Select, Combobox and Command by @juliusmarminge in #13206
- refactor(web): app code stops restyling sidebar, popover, table and misc ui exports by @juliusmarminge in #13207
- refactor(web): Button consumers outside the composer stop restyling it by @juliusmarminge in #13208
- refactor(web): composer controls own their look instead of restyling ui components by @juliusmarminge in #13209
- chore(web): no-restyle fails lint, and the ceiling gate goes by @juliusmarminge in #13210
- fix(mobile): recover from screen render errors by @juliusmarminge in #13197
- feat(web): navigate back and forward with mod+[ and mod+] by @juliusmarminge in #13212
- fix(web): sort title matches by recent activity by @Yash-Singh1 in #13219
- test(desktop): remove redundant keyring module-load test by @t3-code[bot] in #13220
- feat(mobile): capture Live Activities and agent notifications in showcase screenshots by @juliusmarminge in #13316
- feat(mobile): manage environment and provider updates by @juliusmarminge in #13302
- fix(ci): shard release tests like pull request CI by @juliusmarminge in #13321
- fix(web): show previous worktree branch on second line by @Yash-Singh1 in #13314
- fix(providers): restore compatibility ranges for every harness by @juliusmarminge in #13328
- fix(preview): use the visible browser for new agent sessions by @Bil0000 in #13064
- fix(server): stop replaying old agent alerts on restart by @juliusmarminge in #13340
- fix(web): use a brain icon for the effort dropdown by @t3-code[bot] in #13309
- fix(desktop): SnapShot shortcut helper no longer adds a Dock icon on macOS by @Gigioxx in #13286
- fix(web): composer chip rings no longer clip at the editor edge by @flamboh in #13301
- fix(web): switches announce their real state to screen readers by @Leos-Khai in #11580
- fix(shared): preserve final quoted empty CSV records by @Lucenx9 in #11425
- feat(web): add an interactive 3D device workspace by @juliusmarminge in #12787
- chore: add scratchyone to vouched list by @t3-code[bot] in #13353
- feat(observability): honor the OpenTelemetry kill switch by @juliusmarminge in #13355
- fix(server): preserve racy edits in review diff previews by @tris203 in #12613
- fix(web): show repository names on linked pull requests by @Bil0000 in #13061
- lint/unknown and static by @juliusmarminge in #13366
- fix(web): web colors come from theme tokens by @juliusmarminge in #13371
- fix(web): appearance classes use theme tokens and scale values by @juliusmarminge in #13397
- fix(server): keep Codex's reset answer when the re-probe fails by @juliusmarminge in #13363
- fix(mobile): branch search finds remote and space-typed branches by @Bil0000 in #13454
- chore(ci): use GPT 6 Sol Max for check agents by @juliusmarminge in #13473
- feat(server): show and redeem Claude banked resets by @Bil0000 in #13118
- fix(observability): a malformed OTEL_RESOURCE_ATTRIBUTES no longer stops startup by @yordis in #13469
- fix(antigravity): let Stop end commands that outlived their turn by @juliusmarminge in #13388
- fix(web,mobile): drop the baked-in tile from the Antigravity icon by @flamboh in #13373
- fix(marketing): use the official OpenCode and Antigravity logos by @flamboh in #13365
- fix(acp): keep one answer when a running tool reports progress by @juliusmarminge in #13386
- feat(web): run shell commands from chat in the thread terminal by @Bil0000 in #13060
- fix(antigravity): keep Windows runtime unpacking under MAX_PATH by @juliusmarminge in #13389
- fix(codex): the protocol generator runs again on Effect rc.115 by @juliusmarminge in #13480
- feat(codex): require Codex 0.156 and regenerate its protocol by @juliusmarminge in #13481
- feat(threads): add per-thread auto-settle switch by @t3dotgg in #11846
- fix(web): working and monitoring threads fade in the sidebar again by @t3dotgg in #13506
- fix(server): streamed section titles wait for the text under them by @t3dotgg in #13504
- fix(web): normalize disabled control opacity by @t3-code[bot] in #11441
- fix(web): sidebar Back always returns to the main app by @t3dotgg in #13516
- fix(desktop): desktop updates reconnect in seconds, not minutes by @t3dotgg in #12006
- fix(connect): remove tunnels after hosts go offline by @t3dotgg in #9386
- fix(mobile): capture a lit 6.9-inch lock screen in the agent-activity showcase by @juliusmarminge in #13522
- feat(grok): offer one-click updates through
grok updateby @juliusmarminge in #13523 - fix(mobile): make Android subscription usage widgets scrollable by @tris203 in #13474
- fix(web): keep sidebar terminal pulses in sync by @t3dotgg in #12962
- feat(web): add iPhone Duo 3D controls by @juliusmarminge in #12813
- fix(relay): export tunnel cleanup counters to Axiom by @juliusmarminge in #13528
- fix(server): Grok accounts with no usage yet no longer vanish from Limits by @jakeleventhal in #12799
- fix(server): report the Grok account email so usage limits merge across environments by @jakeleventhal in #12588
- feat(web): add usage page keybinding by @jakeleventhal in #9434
- chore: clear Effect language service suggestions by @juliusmarminge in #13536
- ci(relay): add a forced manual relay deploy by @juliusmarminge in #13550
- fix(web): selected text stays visible on a revealed file line by @t3dotgg in #13548
- fix(web): collapsed composer bar stops flipping its labels while you scroll by @t3dotgg in #13555
- fix(clients): sync status no longer flickers when opening running threads by @t3dotgg in #13551
- fix(server): newer Codex models get T3 Code's instructions again by @t3dotgg in #13547
- feat(web): control Android foldables in the Device panel by @juliusmarminge in #13534
- fix(mcp): preview snapshots fit in the agent's tool output again by @t3dotgg in #13558
- fix(web): paste after clicking away from the composer lands in it again by @t3dotgg in #13553
- feat(desktop): keep running threads synced in the background by @t3dotgg in #13554
- fix(mcp): preview errors tell agents what to do instead by @t3dotgg in #13559
- feat(web): agents working banner links to the Agents panel by @t3dotgg in #13572
- fix(web): size the Android fold model from the inner display by @juliusmarminge in #13574
- fix(clients): a preview app no longer knocks the desktop's own server offline by @t3dotgg in #13577
- fix(web): keep nested task states out of parent bullets by @dominic-r in #11477
- feat(release): ship a Linux .deb that updates itself by @t3dotgg in #13575
- perf(desktop): cache compiled JavaScript between launches by @t3dotgg in #13501
- fix(dev): one t3.json setup action that works on every OS by @t3dotgg in #13589
- fix(web): new worktree threads no longer say "checkout" during setup by @t3dotgg in #13590
- fix(desktop):
t3 appkeeps working after a second desktop app quits by @t3dotgg in #13585 - fix(usage): price Claude fast-mode requests at the fast rate by @t3dotgg in #13599
- fix: update OpenAI logo to current brand asset by @aaditagrawal in #13611
- fix(mobile): render assigned project icons in chat list by @SunkenInTime in #12810
- feat(usage): read cursor, opencode, and antigravity history by @maria-rcks in #10409
- fix(sqlite): retry failed statement preparations by @yashranaway in #10584
- fix(mobile): scale Android controls with appearance text size by @none23 in #13356
- fix(web): return focus to the composer after saving a citation note by @mackinleysmith in #13450
- feat(observability): honor the standard OTLP endpoint, headers, and protocol variables by @yordis in #13492
- fix(terminal): settling a thread closes its idle shells by @t3dotgg in #13673
- fix(server): load Cursor keyring with createRequire by @Yash-Singh1 in #13678
- perf(server): avoid rereading unchanged files in review previews by @shivamhwp in #13395
- feat(desktop): honor the standard OTLP variables in the main process and WSL backends by @yordis in #13641
- fix(web): restore compact provider instance badges by @t3-code[bot] in #13700
- perf(mobile): lighter Home rows away from the viewport by @AKolenda in #13702
- fix(usage): price Cursor cache savings by base model by @Yash-Singh1 in #13731
- perf(mobile): render Home rows further ahead while scrolling by @AKolenda in #13705
- refactor(observability): name each service after its application by @yordis in #13699
- perf(server): stop remapping every thread on each thread event by @t3dotgg in #13720
- Remove unused items tracking from Claude adapter state by @t3dotgg in #13718
- feat(observability): name the command on subprocess spans by @t3dotgg in #13701
- fix(cli): t3 triage points agents at log files that exist by @t3dotgg in #13685
- fix(server): the SQLite WAL file shrinks back after large writes by @t3dotgg in #13684
- feat(cli): summarize the server trace file from the command line by @t3dotgg in #13698
- perf(server): pull request sync reads only threads with linked pull requests by @t3dotgg in #13704
- feat(observability): write a server heap snapshot on SIGUSR2 by @t3dotgg in #13694
- perf(server): shutdown no longer rewrites every stopped session row by @t3dotgg in #13688
- perf(server): build the thread list snapshot without decoding it twice by @t3dotgg in #13693
- fix(client): slow servers finish loading the thread list instead of loading it twice by @t3dotgg in #13683
- perf(web): hidden terminal drawers no longer keep full thread history in memory by @t3dotgg in #13686
- perf(server): per-thread settlement and PR checks no longer rebuild the whole thread list by @t3dotgg in #13691
- fix(mobile): running threads open at the latest message by @AKolenda in #13530
- feat(observability): record event loop stalls in the server trace by @t3dotgg in #13697
- perf(server): stop re-running git for every project each minute by @t3dotgg in #13689
- fix(usage): hide the Cursor keychain prompt when Cursor isn't set up by @Gigioxx in #13714
- feat(web): add chat width setting for wide screens by @otavio in #11594
- fix(opencode): accept v2 serve ready line when spawning server by @shirishpothi in #13651
- fix(editors): stop treating the agy CLI as the Antigravity IDE by @ishaanko in #7079
- fix(web): make the empty workspace draggable on desktop by @otavio in #13713
- fix(server): installed editors no longer vanish when discovery is slow by @bfowler in #13669
- fix(git): exclude SSH ports from provider URLs by @GaMeRaM in #12537
- fix(web): Mod+B bolds on non-Latin layouts by @ValeraZSD in #13409
- fix(server): prune expired replay-protection files from the secrets directory by @t3dotgg in #13695
- fix(web): terminal links drop a trailing colon by @ValeraZSD in #13408
- fix(server): bump node-pty to 1.2.0-beta.15 for linux-arm64 prebuild by @Ephraim-9 in #13748
- Show a focus ring on sidebar thread and draft rows by @ryanilano in #13344
- fix(mobile): keep composer within folded screen after resume by @PixPMusic in #13310
- fix(server): let OpenCode generate session titles by @macodev00 in #13368
- fix(server): let Antigravity inspect unsupported files by path by @Bil0000 in #13339
- fix(mobile): link URLs with ports and single-label hosts by @Yash-Singh1 in #13795
- feat(web): add keyboard navigation for usage by @tris203 in #10158
- perf(observability): stop writing empty spans on spawns, projected events, and idle polls by @t3dotgg in #13756
- perf(server): opening Diagnostics no longer loads the whole trace ring into memory by @t3dotgg in #13763
- perf(clients): sort projects and settled threads without re-parsing dates per comparison by @t3dotgg in #13759
- fix(observability): the renderer trace proxy stops tracing itself by @t3dotgg in #13761
- perf(server): background sweeps only read threads that can still settle by @t3dotgg in #13765
- perf(clients): saving the thread list cache no longer freezes the UI by @t3dotgg in #13767
- perf(server): cut idle wakeups from the Connect relay and session reaper by @t3dotgg in #13774
- fix(mobile): keep trailing underscores and tildes in autolinked URLs by @Yash-Singh1 in #13807
- fix(web): queued messages send while their thread is not open by @t3dotgg in #13764
- fix(server): background git status fetches no longer fill the disk with failed repacks by @t3dotgg in #13812
- fix(mobile): thread list shows the pull request icon instead of # by @flamboh in #13742
- fix(accessibility): correct control announcements and sidebar traversal by @blinding-pixels in #13491
- fix(usage): tolerate newer provider variants by @tris203 in #10076
- fix(usage): omit Cursor warning when no login is saved by @tris203 in #13820
- fix(usage): identify client version mismatches by @tris203 in #8208
- fix(web): stop mistaking offline servers for updates by @tris203 in #13083
- test(usage): assert contract mismatch details by @Yash-Singh1 in #13861
- fix(build): validate Linux node-pty prebuilds in Windows artifacts by @Yash-Singh1 in #13867
- fix(clients): hide duplicate Cursor Keychain prompts by @Yash-Singh1 in #13870
- feat(observability): honor OTEL_*_EXPORTER=none per signal by @yordis in #13736
- fix(web): align reasoning arrows with tool calls by @Adamulek123 in #13850
- fix(server): let agents use simctl and adb alongside device tools by @juliusmarminge in #13908
- fix(web): environment status tooltip resizes when the status changes by @BearHuddleston in #13845
- test(relay): remove constant-restating database mode test by @t3-code[bot] in #13932
- fix(web): continue onboarding after incomplete history imports by @t3-code[bot] in #13935
- fix(server): let Claude abort turns before closing sessions by @Yash-Singh1 in #13999
- fix(web): prevent usage summary shift for unpriced records by @tris203 in #13991
- fix(web): skip unchanged shortcut modifier updates - 195x typing latency improvement by @callmemorgan in #13884
- fix(web,mobile): say that removing a T3 Connect environment keeps its account registration by @juliusmarminge in #14127
- Add Claude Sonnet 5.5 to the model manifest by @arturict in #14152
- fix(server): restore Windows terminal startup after node-pty upgrade by @SegFaultZero in #13927
- fix(desktop): make Linux URL handlers discoverable with the app icon by @limwa in #8673
- fix(server): prevent Windows PTY helper crashes in watch mode by @UtkarshUsername in #14179
- fix(shared): local-path remotes no longer crash legacy PR link projection by @pujitha24 in #13463
- fix(server): preserve usage in oversized transcript records by @shivamhwp in #13650
- fix(server): OpenCode stop no longer hangs when a turn is interrupted before submission by @SunkenInTime in #12003
- feat: save Bitbucket credentials from Source Control settings by @gabrielelpidio in #14103
- fix(provider): mark OpenCode v2 incompatible by @juliusmarminge in #14198
- fix(web): pull request badge sits on the sidebar row's baseline by @Jardo-51 in #14007
- feat(codex): connect ChatGPT accounts with managed authentication by @juliusmarminge in #14290
New Contributors
- @bompus made their first contribution in #11984
- @im-kvijay made their first contribution in #10792
- @vedprakash2302 made their first contribution in #12154
- @Adolanium made their first contribution in #8432
- @Vrtak-CZ made their first contribution in #11970
- @pc-style made their first contribution in #10909
- @Exotic209093 made their first contribution in #11611
- @dependabot[bot] made their first contribution in #12411
- @koushikxd made their first contribution in #11761
- @cestercian made their first contribution in #12636
- @akash3444 made their first contribution in #11268
- @CodyRay made their first contribution in #7827
- @aaditagrawal made their first contribution in #13611
- @AKolenda made their first contribution in #13702
- @otavio made their first contribution in #11594
- @shirishpothi made their first contribution in #13651
- @bfowler made their first contribution in #13669
- @GaMeRaM made their first contribution in #12537
- @ValeraZSD made their first contribution in #13409
- @Ephraim-9 made their first contribution in #13748
- @ryanilano made their first contribution in #13344
- @macodev00 made their first contribution in #13368
- @blinding-pixels made their first contribution in #13491
- @BearHuddleston made their first contribution in #13845
- @callmemorgan made their first contribution in #13884
- @arturict made their first contribution in #14152
- @SegFaultZero made their first contribution in #13927
- @limwa made their first contribution in #8673
- @pujitha24 made their first contribution in #13463
Full Changelog: v0.0.42...v0.0.43