Ask questions in side chats without derailing the main thread. Pin favorite projects and archive old ones. Review local commits in the Diff pane. Use 1Password for provider and source-control credentials.
fix(web): reconnecting notice no longer shifts the new thread composer by @t3dotgg in #26958
feat(marketing): homepage looks like the app by @t3dotgg in #26960
fix(cli): restore Windows desktop launcher console input by @t3-code-bot[bot] in #24870
feat(settings): add and list 1Password secret providers behind T3CODE_FEATURE_SECRETS by @yordis in #25709
fix(mobile): use monospace in the Android terminal preview by @only21mil in #23401
fix(web): edit from here uses a pencil icon by @voltcrash in #21878
fix(desktop): clear Cache Storage when deleting browser profile data by @only21mil in #22002
fix(web): respect reduced motion in thread loading controls by @saphid in #22100
fix(provider-acp): redact API keys with underscores in ACP stderr logs by @only21mil in #24015
fix(provider-core): redact compound credential keys in provider errors by @only21mil in #23313
fix(web): show rounded diff counts as 1m instead of 1000k by @only21mil in #23723
fix(desktop): a timed-out login-shell probe no longer skips the server's PATH repair by @tiliakoos in #21771
fix(server): keep the previous preview browser version on a shared home by @only21mil in #23771
fix(settings): servers check secret provider writes and keep unknown configs to themselves by @juliusmarminge in #27044
fix(web): keep a closed split terminal's tab in view by @only21mil in #22106
fix(web): the ~ breadcrumb opens the home folder by @Onkarj012 in #22412
fix(gitlab): accept merge request URLs from self-hosted hosts by @only21mil in #23848
fix(server): commits no longer land on a branch switched in mid-action by @only21mil in #24473
fix(server): image attachments report their size when the T3 home is behind a symlink by @MarcoDotIO in #24245
fix(ssh): skip directories in config includes by @maria-rcks in #25187
fix(server): Authorized clients names Edge, Firefox and Opera on phones correctly by @MarcoDotIO in #23340
fix(mobile): fork rows show a readable label instead of a thread ID by @JeremiahDJordan in #22064
fix(markdown): formulas ending in a comma render by @NikitaMGrimm in #22883
fix(scripts): dev runner expands ~ in --home-dir and T3CODE_HOME by @MarcoDotIO in #25560
fix(desktop): keep development protocol requests on the configured server by @only21mil in #22010
fix(mobile): apply terminal toolbar modifiers to arrow keys by @only21mil in #22161
fix(server): clean old logs and artifacts under a symlinked T3 home by @only21mil in #24097
fix(server): preserve URL arguments in Android device actions by @maria-rcks in #25205
fix(server): keep terminal history after cancelled sequences by @maria-rcks in #25193
fix(auth): accept a typed pairing code regardless of letter case by @only21mil in #22089
fix(web): find in thread opens from the thread title menu, so phones can reach it by @mkantautas in #22352
fix(desktop): resolve executable commands when checking CLI shadowing by @only21mil in #22046
fix(server): SQLite temp files no longer block the event loop by @only21mil in #24194
fix(server): a branch named like a tag no longer reads as heads/ by @MarcoDotIO in #24258
fix(server): cap generated worktree folder names by @maria-rcks in #25212
perf(server): checkpoint capture scans the index listing by record instead of by byte by @josephv123 in #21329
fix(server): PR discovery sweeps skip hidden subagent threads by @juliusmarminge in #26983
fix(shared): stop parsing CLI flags after -- by @maria-rcks in #25204
fix(server): remove abandoned v1 database copies on startup by @maria-rcks in #25301
fix(web): Enter no longer skips an unanswered question by @mkantautas in #23626
fix(web): keep wide characters in terminal links by @only21mil in #24013
fix(server): session stops no longer trigger storage sweeps unless a deleted worktree waits by @juliusmarminge in #26038
fix(provider-core): subagent threads no longer inherit the parent's pin by @only21mil in #21271
fix(device): report failed Android permission changes by @only21mil in #22358
fix(server): thread lists load beyond SQLite variable limit by @juliusmarminge in #25696
fix(server): allow large git status metadata by @maria-rcks in #25207
perf(mobile): flatten large file trees without copying descendants by @luke2x in #21276
fix(web): show theme conflicts even when another import fails by @only21mil in #23223
fix(usage): reject cyclic model mappings before saving by @only21mil in #23963
fix(settings): offer Use existing CLI in managed Codex settings by @only21mil in #23160
fix(git): honor project provider settings by @parmartejass in #23672
fix(desktop): force-close stalled Linux MIME cache helpers by @maria-rcks in #25210
fix(cli): auth pairing create rejects a --base-url without http(s):// by @MarcoDotIO in #23343
fix(server): signed asset and upload URLs stay out of HTTP traces by @only21mil in #24556
fix(server): clone errors no longer show a token from the URL's query by @only21mil in #24698
fix(claude): pass every --add-dir launch directory to Claude by @only21mil in #23281
fix(composer): retry expired catalogs after failed discovery by @only21mil in #23174
fix(auth): preserve pairing codes after scope rejection by @maria-rcks in #25222
fix(mobile): discard unchanged queued edits after starting by @maria-rcks in #25232
fix(server): t3 project commands wait for a busy server's reply by @only21mil in #24090
fix(web): wait for fresh diff pages in review guides by @only21mil in #23225
fix(server): Antigravity stops retrying session startup while signed out by @only21mil in #24939
fix(web): create tasks on a permitted connected environment by @only21mil in #23244
fix(mobile): recognize this thread's main checkout by @only21mil in #23764
fix(web): keep usage hubs that share a host by @only21mil in #23767
fix(github): read text and mixed-case pull request templates by @maria-rcks in #25025
fix(web): keep HTML prototype selection rings visible by @stevan-borus in #23745
fix(mobile): list pull request repositories once per environment by @maria-rcks in #25219
fix(shared): Open in Zed prefers zeditor over the ZFS zed on Linux by @pujitha24 in #23416
fix(server): native Codex subagents no longer show the parent's reasoning effort by @koushikxd in #24467
fix(server): mark unread works after an automatic compaction by @flamboh in #25286
fix(server): show MCP App forms from failed tool results by @maria-rcks in #25225
fix(server): restore Linux session display for editor launches by @maria-rcks in #25228
fix(usage): keep host identity across container recreation by @maria-rcks in #25220
fix(opencode): authenticate with the resolved server password by @maria-rcks in #25230
feat(web): allow resizing the file explorer by @maria-rcks in #25737
fix(server): update shared Codex installs from their owning home by @maria-rcks in #25235
fix(cli): keep published runtimes in place during installation by @only21mil in #24092
fix(web): right panel launcher letters work on non-Latin keyboard layouts by @MarMarLabs in #21508
fix(server): report a deleted or replaced ownership lock by @ScottN-PV in #21886
fix(server): mark unread no longer brings back a dismissed wake by @fixfon in #24080
fix(mobile): stop refreshes in hidden PR Guide panes by @saphid in #25486
fix(desktop): installing the t3 command no longer reports its own launcher as another t3 by @Gourav224 in #22375
test(mobile): load the branch occupancy test without native sources by @maria-rcks in #27063
fix(settings): project edits keep overrides the client does not know by @only21mil in #24472
fix(client): retry the permissions check after a reconnect by @juliusmarminge in #27008
fix(mobile): tab bar spans the screen on iOS before 26 by @juliusmarminge in #27089
perf(server): thread recovery reads are 10x faster by @juliusmarminge in #27099
perf(server): source control discovery no longer stalls up to 10s on Bitbucket by @juliusmarminge in #27102
perf: huge checkpoints ship up to 75x smaller to clients by @juliusmarminge in #27110
perf(server): sidebar shell loads 3x faster and startup thread counts 80x faster by @juliusmarminge in #27106
perf(server): preparing a run is 15x faster and uses 200x less memory by @juliusmarminge in #27105
feat(server): traces name what grew the heap, for ~0.3ยตs per span by @juliusmarminge in #27104
perf(gitcafe): PR sync makes 2x fewer GitCafe requests for unchanged PRs by @juliusmarminge in #27100
perf(shared): SQLite reads stop queueing behind each other, up to 5x faster under load by @juliusmarminge in #27097
perf(server): git status runs in parallel and repo detection spawns 3x fewer git processes by @juliusmarminge in #27103
fix(client): dead connection routes are probed 30x less often by @juliusmarminge in #27101
perf(server): idle servers run 100x fewer background queries and 4.8M fewer spans a day by @juliusmarminge in #27098
feat(devices): support Android EAS Simulator sessions by @SchroederNathan in #26797
fix(web,mobile): image-only messages show the image, not the placeholder prompt by @maria-rcks in #26769
ci(mobile): production deploys use a Release Manager Expo token by @juliusmarminge in #27285
ci(mobile): maintainers can deploy EAS previews for reviewed fork commits by @juliusmarminge in #27292
fix(server): agents yield CPU, tasks, and reclaim to the server under pressure by @juliusmarminge in #27176
feat(server): t3 service protect keeps the server alive when agents fill memory by @juliusmarminge in #27239
fix(server): held queues release agent and scheduled messages once the thread completes a run by @juliusmarminge in #27221
fix(server): restart continuations retry failed starts and respect a parent's stop by @juliusmarminge in #27222
fix(server): Stop during a restart no longer leaves the thread stuck by @t3dotgg in #27141
fix(scripts): bound check:changed concurrency and step time by @juliusmarminge in #27227
fix(shared): durations under 10s drop a trailing .0 by @maria-rcks in #27316
feat(web): switch the composer between rich text and Markdown source from a button or mod+/ by @maria-rcks in #26777
fix(server): t3_thread_organize rejects unknown arguments instead of archiving the caller by @juliusmarminge in #26718
fix(web): composer Markdown source button shows the pilcrow again by @maria-rcks in #27375
revert(web): remove the composer rich text toggle button and mod+/ shortcut by @maria-rcks in #27390
fix(server): HTML preview browsers quit when done instead of waiting to be killed by @juliusmarminge in #27224
fix(terminal): retain and pace slow fallback process queries by @juliusmarminge in #24640
fix(server): show readable provider runtime failure banners by @juliusmarminge in #24614
fix(gitlab): share merge request reads across detail and checks by @juliusmarminge in #24392
fix(usage): count Claude advisor calls under the advisor model by @fixfon in #24139
fix(web): name the sidebar logo link T3 Code home by @shivamhwp in #24209
fix(server): fail Claude turns waiting for unsupported mod input by @juliusmarminge in #24320
fix(server): Stop always completes, and an agent that ignores it can be force stopped by @juliusmarminge in #27252
fix: guest links can load earlier turns by @juliusmarminge in #27354
fix(server): let slow worktree checkouts finish by @juliusmarminge in #23802
feat(settings): point provider environment variables at a secret provider by @yordis in #27115
feat(desktop): back/forward buttons and trackpad swipe navigation by @juliusmarminge in #27430
feat(web): review local commits in the Diff pane by @Bil0000 in #19941
fix(relay): show the account's real tunnel cap in T3 Connect settings by @juliusmarminge in #27442
fix(web): streaming replies no longer re-render every visible timeline row by @juliusmarminge in #27420
perf(web): streaming replies re-render only their last Markdown block by @juliusmarminge in #27417
perf(web): the git actions panel no longer re-renders on every streamed update by @juliusmarminge in #27418
perf(web): streamed assistant text re-renders only its own row by @juliusmarminge in #27419
fix(server): t3 service protect can ask for your sudo password by @juliusmarminge in #27465
fix(web): preserve Ctrl+Arrow terminal key sequences by @UtkarshUsername in #23480
fix(web): keep PowerShell prompt paths with spaces in one link by @UtkarshUsername in #23527
perf(client): find unread terminal chunks from the tail by @UtkarshUsername in #23779
fix(pi): explain when Pi's default model has no credentials by @StiensWout in #27513
fix(shared): TypeScript files no longer show as videos by @maria-rcks in #27372
feat(mobile): message media, file cards and grouped steers match web by @maria-rcks in #27373
fix(web): back-to-back messages from you stack as one burst with a single steer label by @maria-rcks in #27305
fix(pi): clear Pi's native queue before Stop aborts by @StiensWout in #27514
feat(pi): import terminal Pi sessions during setup by @StiensWout in #27515
fix(pi): nest tools called through another tool under their caller by @StiensWout in #27521
fix(pi): explain when an untrusted folder makes Pi skip project resources by @StiensWout in #27539
fix(mobile): Android Thread settings rows no longer vanish with animations removed by @shivamhwp in #21757
fix(server): phone taps, typing and scrolling reach desktop browser tabs again by @shivamhwp in #19456
feat(web): images and videos sent with text sit above the bubble as their own shape by @maria-rcks in #27306
feat(web): files sent without text show as file cards by @maria-rcks in #27324
feat(web): pasted text, voice notes, snapshots and sending files get their own shapes by @maria-rcks in #27377
perf(web): revisiting a thread reuses its rendered Markdown instead of parsing again by @juliusmarminge in #27480
perf(web): chat Markdown parses about twice as fast with the same output by @juliusmarminge in #27685
fix(server): Pull Requests says which GitHub credential cannot see a repository by @shivamhwp in #24350
fix(server): Codex generated images show in chat, including on Android with a Windows host by @shivamhwp in #19066
fix(web): a new thread's first reply shows without reloading by @juliusmarminge in #27522
fix: image-only messages no longer leak the attachment placeholder by @maria-rcks in #27383
fix(server): Claude accounts show the new Max and Ultra plan names by @flamboh in #27745
perf(server): busy threads stop decoding settled subagents and idle pollers skip work by @juliusmarminge in #27711
fix(server): record ACP prompt response turn usage by @ben-w-smith in #19958
perf(server): a checkpoint capture starts 8 git processes instead of 10 by @josephv123 in #21315
fix(github): drop a clone URL's .git before a trailing slash or query by @only21mil in #21325
perf(server): avoid repeated Git directory discovery during worktree creation by @Adamulek123 in #21337
fix(web): preserve the active pointer in the flat Device view by @only21mil in #21430
fix(codex): recover CLI version after failed app-server probe by @only21mil in #21443
fix(server): release agent-device sessions when device_close runs by @only21mil in #21478
fix(composer): copied context with an apostrophe survives the HTML clipboard by @MarcoDotIO in #21537
fix(server): storage cleanup keeps Windows worktrees with an open terminal regardless of path casing by @MarcoDotIO in #21545
fix(client-runtime): goal token counts no longer read 1000k by @MarMarLabs in #21594
fix: Intel Mac installs and broken Codex versions fail with clear next steps by @maria-rcks in #27281
fix(server): retain relay unregister events at normal log level by @only21mil in #21650
fix(server): bound terminal history names for encrypted filesystems by @JesstLe in #21654
fix(connect): the remove dialog says whether a T3 Connect environment is still on the account by @Brechard in #21706
fix(server): browser profiles reported by one client survive another client's report by @Marve10s in #21745
fix(mobile): file preview videos keep their own aspect ratio by @NikitaMGrimm in #21894
fix(server): show Claude MCP elicitations on the approval card by @chrischriscris in #21903
fix(server): the Files tree lists symlinked files and folders by @KishanRPatel in #21920
fix(server): disable text conversion when measuring review-guide hunks by @only21mil in #21988
fix(bitbucket): skip Cloud API reads for unsupported Server remotes by @only21mil in #22029
fix(providers): apply the registry deadline while reading version metadata by @only21mil in #22044
fix(server): review guides keep excerpts in files with spaces or escaped names by @only21mil in #22053
fix(mobile): await branch refs before choosing an automatic feature branch by @only21mil in #22098
fix(mobile): recover incoming shares after interrupted writes by @only21mil in #22115
fix(ssh): reuse one askpass helper directory instead of a new temp dir per command by @only21mil in #22123
fix(claude): name the notebook a NotebookEdit changed by @only21mil in #22130
fix(mobile): new-task context no longer changes every render by @flamboh in #22134
fix(web): show the result of the notified delegated task by @Alb11747 in #22141
fix(mobile): accept comma decimals in scheduled task intervals by @only21mil in #22158
fix(desktop): store Clerk tokens with owner-only permissions by @macodev00 in #22190
fix(antigravity): reject unsupported manual compaction by @arhammahajan in #22217
fix(github): read github.com- SSH aliases through github.com by @matthias-scale in #22246
fix(server): stop reporting Codex HTTP failures as disk errors by @pschaub in #22308
fix(provider-muse): Muse turns no longer fail when the project path's case differs from the disk by @GLDRoger in #22346
fix(web): keep markdown separators visible in dark mode by @Zlash65 in #22367
fix(gitlab): merge requests show their line counts by @TonybynMp4 in #22374
fix(server): don't bill a replayed Codex first request twice by @fixfon in #22392
fix(web): language dialects use their base language's icon by @Yuruzuu in #22455
fix(desktop): timestamps follow the macOS region and Linux LC_TIME settings by @ipanasenko in #22459
fix(web): warn when ctrl shortcuts collide with mod on Windows and Linux by @only21mil in #22496
fix(web): mouse Back/Forward over a streamed preview navigate the preview by @NikitaMGrimm in #22522
fix(server): the suggested t3 command names this install, not another t3 on PATH by @Gourav224 in #22639
fix(server): streamed clicks no longer wait behind stale hovers by @rookmate in #22739
fix(connect): a quit mid-download no longer wedges the relay client install by @jooyyy in #22747
fix(web): project removal says provider sessions are kept by @joshka in #22867
fix(web): copied Markdown tables keep formula pipes by @NikitaMGrimm in #22875
fix: keep offline environments out of thread reorder writes by @deveshsangwan in #22887
fix(server): clarify browser setup when running as root by @jkramer5103 in #22892
fix(markdown): an escaped backslash before \( no longer crashes dev builds by @NikitaMGrimm in #22893
fix(web): diagnostics cards use one border radius by @Saikrishna1876 in #22906
fix(desktop): SnapShot shortcuts with arrow keys register on macOS and Windows by @MarcoDotIO in #22934
fix(ssh): detect lost connections during remote commands by @yumitdemir in #23025
fix(codex): approvals still appear after many stopped Codex turns by @only21mil in #23234
fix(claude): keep model upgrade notices when signed out by @only21mil in #23272
fix(web): preserve typed dimensions with the aspect ratio locked by @only21mil in #23338
fix(codex): preserve partial answer messages and thread histories by @saphid in #23388
fix(server): list folders named with a backslash on Linux and macOS by @only21mil in #23398
fix(server): preserve byte-order marks in Git diff contents by @yashranaway in #23421
fix(web): save settings fields only after an edit by @only21mil in #23427
fix(shared): preserve hyphens in prerelease versions by @yashranaway in #23430
fix(browser): serialize concurrent profile clears by @yashranaway in #23434
fix(diagnostics): include browser trace failures by @yashranaway in #23438
fix(acp): forward empty plan replacements by @yashranaway in #23440
fix(web): recognize plain text aliases in code fences by @only21mil in #23446
fix(web): keep deleted clipboard attachments out of the draft by @only21mil in #23447
fix(web): keep ACP agent logos in multi-model selections by @only21mil in #23448
fix(web): name inherited background activity profiles by @only21mil in #23450
fix(mobile): use the Android sheet header for Add environment by @PixPMusic in #23452
fix(desktop): oversized preview events no longer take down the app by @only21mil in #23461
fix(mobile): share pull request refresh subscriptions by @only21mil in #23464
fix(web): support Home and End on hue sliders by @only21mil in #23465
fix(claude): no failed AskUserQuestion row after the resume dialog by @only21mil in #23481
fix(scripts): copy web brand icons to an absolute target directory by @only21mil in #23491
fix(web): keep model picker open during IME composition by @only21mil in #23493
fix(mobile): fit large thread titles in Arrange threads by @only21mil in #23499
fix(clients): keep accepted server updates through disconnects by @only21mil in #23532
fix(server): reject busy merge-back targets before blocking their queue by @Aforno in #23554
perf(web): skip favicon loading for custom project icons by @only21mil in #23569
fix(server): setup scripts follow terminal shell fallbacks by @Aforno in #23576
fix(web): report invalid preview addresses by @only21mil in #23577
fix(opencode): keep streamed reply text after an event stream reconnect by @only21mil in #23591
fix(opencode): apply the 3-minute limit to the whole v2 text generation by @only21mil in #23598
fix(mobile): show draft review comments inline and in the count by @only21mil in #23602
fix(github): expand pull request context from the merge base by @only21mil in #23638
fix(web): show project action edit buttons on touch screens by @only21mil in #23640
fix(cli): keep --base-dir in the sudo command browser setup prints by @only21mil in #23646
fix(orchestration): gate prepared provider starts by @parmartejass in #23669
fix(observability): trace attributes keep objects that appear twice by @only21mil in #23677
fix(web): label inherited worktree cleanup modes correctly by @only21mil in #23678
fix(web): show clipboard errors in anchored copy notifications by @only21mil in #23679
fix(web): PDF previews keep their page when the agent responds by @semyonfox in #23732
fix(cli): skip the service prompt when t3 connect has no terminal by @only21mil in #23738
fix(pi): show the provider error when Pi text generation fails by @only21mil in #23741
fix(web): release discarded draft image previews after Undo expires by @only21mil in #23742
fix(web): allow Antigravity installation while status loads by @only21mil in #23746
fix(server): onboarding reads a remote url on its section header line by @WesleySmits in #23747
fix(web): show an error when merge-back or disconnect fails by @only21mil in #23753
fix(server): avoid duplicate JSON in ACP terminal results by @florentmsl in #23755
perf(provider-core): provider instances share one latest-version lookup by @only21mil in #23763
fix(codex): warn when a Codex notification fails to decode by @only21mil in #23766
fix(usage): explain price edits blocked by model mappings by @only21mil in #23768
fix(web): keep unsaved edits to other ACP providers by @only21mil in #23847
fix(server): skip history reads for ineligible idle compaction by @azogz in #23929
fix(server): forks no longer inherit pending title regeneration by @only21mil in #24014
fix(web): keep add-project inputs open during IME composition by @only21mil in #24016
fix(web): keep terminal close confirmations on their original thread by @only21mil in #24020
fix(server): cap delivery history for oversized coalesced webhooks by @only21mil in #24046
fix(desktop): a stalled capture no longer freezes picture-in-picture by @Batuhan1999 in #24057
fix(web): a branch restore in one thread no longer blocks another thread by @Batuhan1999 in #24060
fix(web): closed preview sessions no longer keep syncing for the rest of the session by @Batuhan1999 in #24081
perf(cli): thread show reads only the end of long threads by @only21mil in #24087
fix(web): keep later navigation when thread archival completes by @only21mil in #24109
fix(clients): offer Commit when the branch is behind upstream by @only21mil in #24117
fix(claude): stream live command output on Linux when TMPDIR is set by @only21mil in #24176
fix(web): long guide Next buttons wrap instead of overflowing by @PixPMusic in #24189
fix(desktop): follow live system light/dark changes on Linux by @eboye in #24193
fix(server): browser load errors with digits keep their full name by @MarcoDotIO in #24244
docs: keybindings guide names the real when key and the stopped-thread queue send by @MarcoDotIO in #24248
docs: thread migration guide names the real --base-dir flag by @MarcoDotIO in #24250
fix(desktop): nightly update notes no longer list the Full Changelog link as a change by @davisonio in #24358
fix(server): accept explicit false in Claude managed policy by @zaydiscold in #24402
fix(build): preserve directory desktop artifacts and framework symlinks by @zaydiscold in #24434
fix(desktop): LAN pairing links follow the current network address by @only21mil in #24474
fix(server): turns no longer start on a provider instance being replaced by @only21mil in #24480
fix(web): closing an invalid When editor no longer leaves Save disabled by @only21mil in #24488
fix(web): deleting a thread no longer offers to remove a shared worktree by @only21mil in #24489
fix(web): Reconnect on a switched-off environment switches it back on by @Jacksondr5 in #24691
fix(cursor): save SDK credentials with undefined optional fields by @Onkarj012 in #24702
fix(server): cache absent legacy transcripts for V2 threads by @ScottN-PV in #24707
fix(server): editing a file no longer forces a full search-index rescan by @only21mil in #24713
fix(clients): a route added after a reorder no longer disappears by @only21mil in #24716
fix(server): skip provider CLI update when already on latest by @samkelly880 in #24763
fix(providers): a failed provider check no longer drops later settings changes by @rishabhx29 in #24794
fix(acp): stop showing ACP v2 prompt echoes as a second user message by @ScottN-PV in #24908
fix(server): removing a failed clone no longer leaves a stuck banner by @dw3105 in #24915
fix(web): Limits ChatGPT usage card names the connected accounts by @only21mil in #24940
fix(web): allow adding the displayed provider accent color by @tsukaska in #25014
fix(web): preserve terminal selections across unchanged redraws by @maria-rcks in #25030
fix(bitbucket): honor the repository in pull request URLs by @maria-rcks in #25052
fix(web): keep typed Settings text when Esc closes Settings by @AatmanAJ in #25131
fix(mobile): keep split-view inspectors registered across renders by @maria-rcks in #25197
fix(mcp): preserve actionable device screenshot errors by @maria-rcks in #25216
fix(server): reject Codex turns owned by an earlier run by @maria-rcks in #25224
fix(web): keep palette project lookups in their environment by @maria-rcks in #25236
fix(server): HEAD webhook probes no longer start agent runs by @only21mil in #25291
fix(antigravity): binary file reads return an error, not garbled text by @only21mil in #25292
fix(web): preserve trailing whitespace in review diffs by @only21mil in #25303
fix(codex): keep late subagent interrupts from freezing other threads by @only21mil in #25322
fix(server): name the missing Antigravity ACP runtime by @Dodothereal in #25435
fix(server): clear unreachable preview downloads after a server restart by @only21mil in #25436
fix(web): archiving or deleting a thread expires its earlier Undos by @only21mil in #25444
fix(usage): count compressed Codex rollouts by @maria-rcks in #25453
fix(provider-acp-registry): install agents with large archive listings by @kareemsetl in #25545
fix(server): editing or removing a hand-written shortcut in Settings works again by @MarcoDotIO in #25556
fix(acp): cancelled ACP tool calls no longer stay running and end as completed by @MarcoDotIO in #25559
fix: prevent subagents inheriting parent settlement protections by @agentic-jarmo in #26035
fix(web,mobile): pull request text breaks lines when providers do by @CodyRay in #26060
fix(web): byte sizes just under the next unit no longer read "1024 KB" by @MarcoDotIO in #26067
fix(server): truncated webhook delivery bodies no longer end in a replacement character by @MarcoDotIO in #26070
fix(server): thread deletion removes files attached to question answers by @SouthCarpet in #26074
fix(mobile): keep the composer text box off the model button on RTL phones by @S3333F in #26090
fix(scripts): check:changed compares forks against upstream, not a stale origin/main by @tris203 in #26122
fix(web,mobile): long links in secret requests wrap and can be copied by @MatthewFeroz in #26145
fix(web): clicking a secret request card focuses its field again by @MatthewFeroz in #26151
fix(opencode): read the selected Go key from OpenCode 2's credential store by @nolight132 in #26165
fix(web): onboarding pairing hint no longer suggests npx t3 serve --tailscale by @wezn in #26399
fix(web): Load balancing and PR sharing name the route in use by @hawaii-h1 in #26441
docs: clarify Windows T3 Connect host lifetime by @TheAngryPit in #26480
fix(prs): classify generated files and evals correctly by @jakeleventhal in #26563
fix(forgejo): publishing a repository with no commits no longer fails the fj login check by @Mnigos in #26770
fix(web): stop timeline details icon flickering on touch devices by @shivamhwp in #26793
fix(web): remote machine icon no longer forces a third sidebar line by @ahalekelly in #26803
fix(server): keep provider update progress on the latest frame by @bitmvk in #26823
fix(web): prevent long links from creating per-character elements by @saimircelaj0 in #26843
fix(server): recover PR cache from corrupt scope revisions by @markus41 in #26873
fix(web): model picker opens at its final height instead of shrinking by @flamboh in #26881
fix(web): Compact chip fits on narrow composers by @flamboh in #27033
fix(shared): preserve JSONC properties after CR comments by @Lucenx9 in #27069
fix(web): long pending-question headers truncate instead of overflowing by @toni92-beep in #27078
fix(desktop): control sockets work with long temporary paths by @Lucenx9 in #27125
fix(web): plain text code blocks match the text around them by @profboba in #27144
fix(desktop): Vivaldi cookie import finds its Linux keyring key by @Rhinomcd in #27148
fix(web): app shortcuts wait while a confirmation dialog is open by @serge-the-hedge in #27157
fix(server): dev database copies drop links to other environments by @maria-rcks in #27313
chore(web): upgrade Base UI to 1.9 by @juliusmarminge in #27796
fix(server): a file picker closes when its page is replaced by @fcgith in #22062
fix(web): keep truncated Markdown task previews read-only by @only21mil in #22339
perf(composer): reuse persisted image bytes when attachments change by @only21mil in #22340
fix(server): provider logs of finished threads obey retention limits by @only21mil in #23274
fix(chat): commands that exit 0 no longer show as failed by @only21mil in #23351
fix(web): disable conflict checkout without required permissions by @only21mil in #23475
fix(server): t3 auth --json and --token-only print only the result by @MarcoDotIO in #27817
fix(web): tab to equations only when they overflow by @only21mil in #23954
fix(web): composer keeps the picked effort when it falls back to another instance by @mkantautas in #23957
fix(web): restored Device view waits for device state before setup by @only21mil in #24106
perf(server): idle Grok sessions on Linux stop polling /proc every 25 ms by @only21mil in #24502
fix(server): a task cancelled as its usage limit lands no longer resumes at the reset by @spoukyii in #24634
fix(web): Resume keeps its thread's model when you switch threads by @only21mil in #24697
fix(server): empty MCP status filters no longer hide threads by @only21mil in #25306
fix(device): recover cached agent daemons after exit by @yashranaway in #23441
fix(gitlab): keep pull request actions on the selected host by @parmartejass in #23695
fix(codex): say why the Codex app-server exited by @mkantautas in #23938
fix(mobile): mark the thread worktree's branch as current by @only21mil in #23436
fix(preview): reserve capacity before opening browser tabs by @maria-rcks in #25028
fix(mobile): preserve Android Usage across layout changes by @maria-rcks in #25231
fix(mobile): keep refresh errors out of the load-more footer by @only21mil in #23594
fix(server): release retired provider scopes by @maxwellyoung in #24777
fix(server): recognize a Claude proxy set in Claude's settings.json by @EhsanulHaqueSiam in #26937
fix(server): stop event subscribers before closing the database by @maria-rcks in #27831
fix(mobile): release hidden sidebar PR summary demand by @saphid in #25337
feat(server): read Bitbucket and GitCafe credentials from a secret provider by @yordis in #27746
perf(web): thread switches skip re-parsing, sidebar scrolling, and composer layout reads by @juliusmarminge in #27823
fix(web): preserve PDF scroll and zoom across autoreloads by @edemaine in #25555
feat(marketing): homepage quotes now come from well-known devs by @t3dotgg in #27251
fix(updates): version checks respect your configured npm registry by @t3dotgg in #27847
feat: add assembly file highlighting and language selection by @ImLunaHey in #27899
feat(web): ask for a GitHub star once after 5 prompts by @t3dotgg in #27832
fix(web): video full-screen buttons work in HTML renders by @punkhop in #21378
fix(desktop): compare custom renderer scheme and authority explicitly by @only21mil in #21445
fix(web): preview address bar no longer ligates "://" by @sairajchouhan in #21579
fix(server): read the smallest iOS simulator text size as small by @only21mil in #22114
fix(mobile): relative-time labels keep counting on archive and pull request screens by @only21mil in #22151
fix(desktop): stop the macOS Settings tracker when T3 exits by @only21mil in #22497
fix(claude): context meter shows where Claude actually auto-compacts by @GitJarno in #22654
fix(desktop): browser tabs no longer report loopback access as denied by @afrojun in #22835
fix(desktop): explain Hyprland SnapShot activation timeouts by @only21mil in #23426
fix(forgejo): reviewer picker lists each assignee once on Forgejo and Gitea by @0pilatos0 in #23580
fix(server): release drained terminal output while queue stays busy by @parmartejass in #23664
fix(acp-registry): installing one agent no longer blocks other agents by @only21mil in #23684
fix(mobile): name iOS environment buttons for VoiceOver by @only21mil in #23740
fix(mobile): separate expanded thoughts from the next reply by @shivamhwp in #25300
fix(web): chat stays centered while the thread details card fits beside it by @koushikxd in #25838
fix(web): match HTML render backgrounds to the dark chat theme by @mydd7 in #25948
fix(web): a failed review guide keeps Try again reachable by @NotAnNvidiaFan in #26073
fix(mobile): scale compose buttons with text size by @none23 in #26100
fix(web): Add Environment dialog reopens on Remote link instead of a stale SSH selection by @Mnigos in #26160
fix(web): keep retention controls stable while editing days by @0bkevin in #26335
fix(web): prevent permissions label from shrinking on click by @UtkarshUsername in #26470
fix(web): add tooltips to boring sidebar actions by @UtkarshUsername in #26477
fix(server): searching delegate models no longer drops words found inside the provider name by @MinitJain in #26502
fix(server): allow requested browser verification by @Adamulek123 in #26503
fix(client-runtime): idle clients stop tracing unchanged platform registrations by @shivamhwp in #26511
fix(web): remove gaps between permission options by @Adamulek123 in #26514
fix(web): the prompt box follows the interface font size by @dw3105 in #26559
perf(server): linked calls reuse sessions while a tool waits by @Adamulek123 in #26567
fix(web): file context menu actions respond to pointer clicks by @dbolser in #26579
fix(acp): reject models unavailable to the active session by @trahane in #26623
fix(mobile): reconnecting threads no longer open on "Failed to connect" by @liamwarfield in #26643
fix(web): scheduled task editor shows the destination thread by @shivamhwp in #26658
fix(provider): agents wait on a deploy instead of ending the turn by @joshrobertson8 in #26681
fix(server): launched threads step down to a runtime mode their provider offers by @henrychu04 in #26682
fix(server): deleted worktree threads recover from a detached checkout by @shivamhwp in #26758
fix(server): show the database error instead of "Provider turn failed." when event ingestion can't write by @georgenijo in #26782
fix(mobile): thread rows show when a title is regenerating by @saphid in #26835
fix(web): punctuation after a file chip stays on the chip's line by @kendyl93 in #26871
fix(mobile): give Android reply actions 48dp touch targets by @Dwite in #27020
perf(server): skip unused projections in thread reads by @Adamulek123 in #27039
fix(server): ChatGPT-connected Codex shows reasoning for models newer than its CLI by @t3dotgg in #27931
fix(server): keep connection tickets out of request traces by @maria-rcks in #27904
fix(web): model settings show "No reasoning" instead of labeling every model by @t3dotgg in #27891
fix(server): hide rolling resets for untouched Antigravity quotas by @SouthCarpet in #23558
fix(mobile): disabled iOS header controls now show as disabled by @only21mil in #24088
fix(web,mobile): Luau files are syntax highlighted in diffs by @Yuruzuu in #25865
perf(web): the pull request timeline mounts only the events near the viewport by @juliusmarminge in #27795
perf(web): pull request comments reuse their markdown parse by @juliusmarminge in #27808
fix(observability): redact credential URL params in spans and type them as Redacted by @juliusmarminge in #27986
fix(web): back-to-back messages stack tight with joined corners by @maria-rcks in #27978
feat(web): context meter fills up and shows tokens against the limit by @t3dotgg in #27892
fix(server): preview discovery stops sending HTTP and TLS to agent-started ports by @t3dotgg in #27893
ci(release): release version bump no longer fails on the pre-commit hook by @t3dotgg in #26978
feat: side chats beside the main thread by @t3dotgg in #26901
fix(desktop): name the running app in Windows installer prompts by @Yash-Singh1 in #27886
fix(connect): T3 Connect sockets no longer drop every hour by @t3dotgg in #27998
feat(cli): t3 up asks how your other devices reach this machine by @t3dotgg in #27996
fix(web): stacked composer notices line up their details buttons by @Zeus-Deus in #22236
fix(shared): give attached threads a canonical read call by @NikitaMGrimm in #23784
fix(mobile): models stay visible in the picker with Android animations removed by @shivamhwp in #23888
fix(web): match sidebar footer bottom padding to its horizontal inset by @JakubMartyniak in #22027
fix(grok): Grok updates actually install on npm 12 by @ishaanko in #24246
fix(azure-devops): file comments name the path the diff shows by @only21mil in #23468
fix(web): show the worktree picker in the composer strip at default width by @hwanseoc in #27114
fix(gitlab): keep scheduled pipelines pending by @maria-rcks in #25195
fix(android): preserve styled text in incoming shares by @only21mil in #22359
fix(web): a refused review shows GitHub's reason by @tiliakoos in #22382
fix(web): show complete tooltip labels when opening by @MatthewFeroz in #25199
fix(mobile): review's empty state stays below the header on iOS by @Claudesaul in #22420
fix(mobile): strip image and link punctuation from subagent previews by @only21mil in #23538
docs(desktop): explain recovery after an Alpha update by @Dodothereal in #25424
fix(web): right panel's tab bar no longer slides under the title bar controls by @Claudesaul in #26233
fix(mobile): keep source text bold for numeric font weights by @only21mil in #23688
fix(mobile): review guide buttons stay on one line by @PixPMusic in #24764
fix(web): expired terminal context toasts say "them" for several contexts by @MarcoDotIO in #24251
refactor(server): share a path check between file readers by @t3dotgg in #28041
fix(web): popovers fade out in place instead of jumping after a pick by @flamboh in #26716
fix(server): truncated file previews no longer end in a replacement character by @MarcoDotIO in #24255
fix(usage): use each account accent colour in limit bars by @dfakkeldy in #24630
fix(mobile): leaving the iOS app for a few seconds no longer drops the connection by @anaclumos in #26540
fix(cli): t3 triage issues get the via-triage label for every reporter by @only21mil in #24955
fix(mobile): Android floating tab bar fills the row when compose is hidden by @voida6 in #26939
fix(mobile): review file navigation respects reduced motion by @unmanbearpig in #23348
fix(mobile): keep PRs readable when image URLs are malformed by @only21mil in #23466
fix(mobile): PR tab switches no longer leave Liquid Glass behind by @camchis in #26041
fix(web): accept comma as decimal in usage price entry by @MikaKrul in #21939
fix(mobile): opening another stack layer no longer shows the previous PR by @only21mil in #24730
fix(cursor): grep count results say "1 match", not "1 matches" by @MarcoDotIO in #26065
fix(server): the Codex plan badge updates after a ChatGPT downgrade by @only21mil in #24978
fix(mobile): reject unknown app variants by @only21mil in #23681
fix(server): show Codex tool-output images inline by @achose369 in #23284
fix(server): Antigravity failed logins due to missing skills folders by @medy17 in #27153
fix(acp): fail requests when stdout closes before the agent exits by @only21mil in #21323
fix(server): keep relay catch-up requests working after startup by @maria-rcks in #25201
fix(azure-devops): looking up a project/repository finds the repository by @MarcoDotIO in #26068
fix(desktop): handle macOS back and forward gestures by @maria-rcks in #25188
perf(acp): long agent terminal output no longer ties up the server by @only21mil in #24479
fix(bitbucket): page through pull requests that share a millisecond by @only21mil in #23635
fix(usage): use the freshest reported pooled plan by @maria-rcks in #25214
fix(server): do not freshly arm days-old usage-limit recoveries by @fixfon in #21735
fix(cli): t3 uninstall on Windows removes the downloaded runtime by @only21mil in #24874
fix(desktop): data: popups no longer replace the preview tab by @only21mil in #24866
fix(web): show the correct Tailscale URL when switching to port 443 by @vprashar2929 in #24890
fix(relay): mark a tunnel released only after deletion succeeds by @only21mil in #22337
fix(claude): failed advisor calls no longer show as completed by @MarcoDotIO in #24254
fix(mobile): preserve notification responses when navigation fails by @only21mil in #22084
fix(web): composer notices no longer flicker next to a floating preview by @Brechard in #22974
fix(server): Codex permission requests for glob paths no longer show as command approvals by @MarcoDotIO in #24257
fix(server): every commit hook reports finishing with its real exit code by @MarcoDotIO in #22939
fix(server): changing Claude effort no longer re-sends the model by @f4llenz in #22272
feat(web): copy the app version from General settings by @UtkarshUsername in #24788
perf(acp): MCP calls over ACP no longer wait behind a long call by @only21mil in #23834
fix(server): omit Windows host-only adapters from LAN routes by @maria-rcks in #25217
fix(web): servers still restarting after an app update no longer offer the update again by @tris203 in #26109
fix(web): thread alerts missed during a disconnect fire on reconnect by @only21mil in #24493
fix(server): Forgejo checks keep the final status when it shares a second with a pending one by @fixfon in #24871
fix(web): collapsing a changed-files folder no longer leaves a one-frame gap by @Yuruzuu in #22311
perf(acp): stop re-saving the whole terminal log on every output chunk by @only21mil in #24024
fix(mobile): hardware Enter keeps the Android terminal focused by @only21mil in #24928
fix(device): forward numeric keypad keys to iOS simulators by @only21mil in #23339
fix(provider-cursor): Cursor keeps working when a team blocks /v1/me by @only21mil in #24639
fix(server): imported Codex threads keep their saved Codex names by @only21mil in #24982
fix(opencode): show a readable message when a provider error is by @ricardo-rp in #24734
fix(web): Shift+Tab moves a nested composer list item back out by @tsmith165 in #27016
fix(install): verify archives in homes with backslashes or newlines by @maria-rcks in #25240
perf(server): skip the per-listing SSH probe once a host reports Android by @only21mil in #23748
fix(server): wake no-checks PR watches at the configured deadline by @only21mil in #25437
fix(desktop): keep Hyprland SnapShot metadata when a CLI title spinner ticks by @saphid in #22116
fix(web): restore No project name and icon from settings by @shivamhwp in #26798
fix(mobile): new thread project list no longer shifts when the No project option appears by @jdlar18 in #23391
fix(server): preserve merge ancestry on selected-file commits by @saphid in #24744
fix(server): cleanup keeps worktrees waiting for a usage-limit reset by @only21mil in #24689
fix(server): Source Control names a CLI built for another CPU instead of asking to install it by @tiliakoos in #21606
fix(claude): retain measured usage after a steered query exits by @maria-rcks in #25200
fix(acp): Copilot threads get T3's tools by @Radu028 in #26968
feat(web): pick the model and its effort from one control by @t3dotgg in #28057
fix(server): Pi transcripts carry their home path by @maria-rcks in #28061
fix(web): forward native Copy and Cut from server browser tabs by @shivamhwp in #26633
fix(usage): combine duplicated skipped-record warnings by @PixPMusic in #23411
fix(gitlab): a failed child pipeline no longer shows as a passing check by @only21mil in #24688
fix(web): hide Ultrathink from the Claude effort picker by @t3dotgg in #28044
feat: pin favorite projects and archive old ones by @t3dotgg in #26154
fix(web): machine label no longer shifts between one and many machines by @t3dotgg in #28070
fix(web): long titles no longer overflow the pull request list tooltip by @t3dotgg in #28077
fix(web): model picker stays open until dismissed, with a Show more row by @t3dotgg in #28076