Skip to content

fix(release): desktop builds pass again after the vite-plus 1.4 upgrade - #24867

Merged
t3dotgg merged 1 commit into
mainfrom
t3/fix-release-bundle-validation
Oct 25, 2026
Merged

t3dotgg merged 1 commit into
mainfrom
t3/fix-release-bundle-validation

Conversation

@t3dotgg

@t3dotgg t3dotgg commented Oct 25, 2026

Copy link
Copy Markdown
Member

The release failed on every desktop platform. The vite-plus 1.4 upgrade in #24839 changed how Rolldown marks each bundled module: //#region <path> became a bare // <path> line. The desktop build scans those markers to make sure no native packages got bundled. It found zero markers and stopped the build.

The scan now reads both formats. I added a test for the new format. Against a real vite-plus 1.4 server bundle, the scan finds 1794 modules and no inlined external or native packages.

Created with Claude Opus 5.5 in Claude Code.

🤖 Generated with Claude Code

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@t3dotgg
t3dotgg merged commit d2f6ff4 into main Oct 25, 2026
17 checks passed
@t3dotgg
t3dotgg deleted the t3/fix-release-bundle-validation branch October 25, 2026 12:21
@github-actions github-actions Bot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. size:XS 0-9 changed lines (additions + deletions). labels Oct 25, 2026
github-actions Bot added a commit to omarcresp/t3code-flake that referenced this pull request Oct 25, 2026
## What's Changed
* fix(mobile): one way to select a page, so split view stops pushing by @juliusmarminge in pingdotgg/t3code#24742
* fix(mobile): Settings pages no longer flicker when switching beside the list by @juliusmarminge in pingdotgg/t3code#24749
* fix(server): use Codex native collaboration modes by @t3dotgg in pingdotgg/t3code#24737
* fix(clients): threads no longer flash in the inbox before they settle by @t3dotgg in pingdotgg/t3code#24760
* fix(mobile): the iPhone compose icon matches the tab icons' size by @juliusmarminge in pingdotgg/t3code#24650
* feat(infra): share Vite task cache with Axiom savings telemetry by @juliusmarminge in pingdotgg/t3code#24693
* fix(mobile): screen lists register with their header, enforced by lint by @juliusmarminge in pingdotgg/t3code#24710
* feat(mobile): search Settings, and keep its sidebar header clean by @juliusmarminge in pingdotgg/t3code#24766
* fix(mobile): threads open with less waiting, and the Threads tab remembers drafts by @juliusmarminge in pingdotgg/t3code#24750
* fix(mobile): reduce diff entry and source highlighting delays by @juliusmarminge in pingdotgg/t3code#24770
* perf(client): skip unchanged shell and config cache writes by @juliusmarminge in pingdotgg/t3code#24266
* fix(mobile): remove perpetual reconnect indicator animation by @juliusmarminge in pingdotgg/t3code#24273
* feat(mobile): close the keyboard from the Duo's side bar by @t3dotgg in pingdotgg/t3code#24696
* fix(mobile): dispatch native toolbar actions to current handlers by @juliusmarminge in pingdotgg/t3code#24271
* fix(server): PR watch wakes say the PR stays linked and watched by @t3dotgg in pingdotgg/t3code#24781
* feat(server): thread tools return a ready t3-thread link by @t3dotgg in pingdotgg/t3code#24784
* fix(server): running task results tell the agent to end its turn by @t3dotgg in pingdotgg/t3code#24782
* fix(server): mobile push no longer says "completed" between runs by @t3dotgg in pingdotgg/t3code#24769
* fix(server): delegated children no longer see pull request watch tools by @t3dotgg in pingdotgg/t3code#24808
* fix(mobile): search stays open after going back from a thread by @t3dotgg in pingdotgg/t3code#24748
* feat(server): request_secret can save a CLI token to a private file by @t3dotgg in pingdotgg/t3code#24809
* fix(server): threads settle right after a shell merge of an unlinked PR by @t3dotgg in pingdotgg/t3code#24830
* fix(server): worktree setup no longer hangs when a shell startup prompt eats the command by @t3dotgg in pingdotgg/t3code#24775
* feat(server): link pull requests agents create from the shell by @t3dotgg in pingdotgg/t3code#24813
* fix(mobile): queue Steer button no longer opens the editor on a near miss by @t3dotgg in pingdotgg/t3code#24832
* fix(usage): Gemini 4 Argon usage from Antigravity now has a price by @t3dotgg in pingdotgg/t3code#24834
* fix(server): publish committed events before writer cancellation by @Yash-Singh1 in pingdotgg/t3code#24836
* fix(web): shared dev servers no longer crash on lazy routes by @t3dotgg in pingdotgg/t3code#24839
* fix(web): chat tables and subagent rows line up by @t3dotgg in pingdotgg/t3code#24835
* perf(shell): cold connects skip older settled threads, 93% of the shell JSON by @t3dotgg in pingdotgg/t3code#24723
* test(server): restart replay tests no longer hang on a leftover checkpoint capture by @t3dotgg in pingdotgg/t3code#24851
* feat(web): Settings and Usage open as large modals over your thread by @t3dotgg in pingdotgg/t3code#24847
* fix(server): forked threads get titles from the history they inherit by @t3dotgg in pingdotgg/t3code#24857
* fix(release): desktop builds pass again after the vite-plus 1.4 upgrade by @t3dotgg in pingdotgg/t3code#24867
* feat(server): cut T3's agent instructions and tool copy by 60% by @t3dotgg in pingdotgg/t3code#24850


**Full Changelog**: pingdotgg/t3code@v0.1.3-nightly.20261025.3655...v0.1.3-nightly.20261025.3669

Upstream release: https://github.com/pingdotgg/t3code/releases/tag/v0.1.3-nightly.20261025.3669
yvesoddly pushed a commit to issuelt/t3code that referenced this pull request Oct 25, 2026
…de (pingdotgg#24867)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
(cherry picked from commit d2f6ff4)
drKreshel pushed a commit to drKreshel/t3code that referenced this pull request Oct 25, 2026
github-actions Bot added a commit to omarcresp/t3code-flake that referenced this pull request Oct 27, 2026
## What's Changed
* fix(server): keep subagent transcript updates off shell stream by @Yash-Singh1 in https://github.com/pingdotgg/t3code/pull/23783
* fix(deps): pin all patched package versions by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/23798
* docs: document the GitCafe mirror and refresh the dev setup by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/23808
* fix: no more em dashes in product copy by @t3dotgg in https://github.com/pingdotgg/t3code/pull/23799
* chore(mobile): bump Clerk Expo SDKs to the new native client sync by @wobsoriano in https://github.com/pingdotgg/t3code/pull/23047
* fix(mobile): capture folded and unfolded Duo store screenshots by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/23849
* fix(server): preserve typed requirements as the RPC group grows by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/23813
* fix(server): wake PR watches when no checks report by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/23863
* fix(server): resume Codex parents after native children finish by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/23840
* fix(gitcafe): authored lists, merge progress, and author reviews match git.cafe by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/23887
* fix(forgejo): merges follow the repository's delete-branch setting by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/23471
* fix(web): keep PR check counts in sync by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/23548
* fix(server): speed up shell snapshots on large databases by @Yash-Singh1 in https://github.com/pingdotgg/t3code/pull/23751
* fix(server): keep managed Codex token renewal in the server by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/21786
* fix(server): renew active managed Codex turns through native auth by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/21787
* feat(web): telemetry export settings show where the running endpoint came from by @yordis in https://github.com/pingdotgg/t3code/pull/23713
* fix(ui): preserve tool icon detail in light mode by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/23896
* fix(mcp): accept GitCafe pull request URLs in link/unlink/watch tools by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/23899
* feat(settings): add thread title instructions by @CadenEl in https://github.com/pingdotgg/t3code/pull/21882
* fix(mobile): undo toasts keep their action on one row by @saphid in https://github.com/pingdotgg/t3code/pull/23910
* docs(connect): correct the relay webhook endpoint key by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/23526
* fix(mobile): center Android composer text and pad wrapped drafts by @PixPMusic in https://github.com/pingdotgg/t3code/pull/23829
* fix(server): wake PR watches when remaining CI checks finish by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/23904
* fix(mobile): the empty composer row shows only the provider icon by @flamboh in https://github.com/pingdotgg/t3code/pull/23570
* fix(server): route SQLite reads around writer contention by @Yash-Singh1 in https://github.com/pingdotgg/t3code/pull/23902
* fix(claude): route approval feedback to the requesting agent by @Yash-Singh1 in https://github.com/pingdotgg/t3code/pull/23657
* fix(web): align pull request file counts with diff stats by @Yash-Singh1 in https://github.com/pingdotgg/t3code/pull/23905
* fix(web): task durations over an hour no longer wrap in the tasks panel by @jamesvillarrubia in https://github.com/pingdotgg/t3code/pull/13472
* fix(server): preserve Codex sign-in guidance in usage notices by @jieyuexing in https://github.com/pingdotgg/t3code/pull/17055
* fix(server): restore Claude subscription usage through proxies by @Kanaliseren in https://github.com/pingdotgg/t3code/pull/12069
* fix(server): Forgejo skipped jobs no longer keep a pull request watch pending by @Mnigos in https://github.com/pingdotgg/t3code/pull/16668
* fix(mobile): move Android undo toasts above bottom navigation by @PixPMusic in https://github.com/pingdotgg/t3code/pull/23928
* perf(server): skip unused Git output line parsing by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/23953
* fix(server): abort interrupted ACP MCP fetches by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/23955
* fix(web): new threads no longer hang when a project's machine is offline by @t3dotgg in https://github.com/pingdotgg/t3code/pull/23967
* fix(pi): stop blank input placeholders from failing the run by @only21mil in https://github.com/pingdotgg/t3code/pull/23235
* fix(cursor): fail turns that end in a transport error after commentary by @only21mil in https://github.com/pingdotgg/t3code/pull/23273
* test(forgejo): answer the base branch read in the skipped-checks test by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/23952
* fix(opencode): retry failed model catalogs until they recover by @Yash-Singh1 in https://github.com/pingdotgg/t3code/pull/23939
* fix(server): avoid full shell read on resume by @Yash-Singh1 in https://github.com/pingdotgg/t3code/pull/23987
* test: delete low-value tests and dead test-only exports by @t3dotgg in https://github.com/pingdotgg/t3code/pull/24058
* test(server): restore DST scheduling tests deleted in the test snap by @t3dotgg in https://github.com/pingdotgg/t3code/pull/23991
* test(web): restore project settings permission tests deleted in the test snap by @t3dotgg in https://github.com/pingdotgg/t3code/pull/24011
* test(mobile): restore clipboard secret-redaction test deleted in the test snap by @t3dotgg in https://github.com/pingdotgg/t3code/pull/23980
* fix(web): Cmd+B toggles the sidebar unless text is selected by @t3dotgg in https://github.com/pingdotgg/t3code/pull/24063
* fix(server): agent-browser and Chrome no longer outlive the agent that started them by @josephv123 in https://github.com/pingdotgg/t3code/pull/21299
* test(client-runtime): restore render scheduler tests deleted in the test snap by @t3dotgg in https://github.com/pingdotgg/t3code/pull/23977
* fix(web): cmd+k search hides subagents and favors recent, whole-word matches by @t3dotgg in https://github.com/pingdotgg/t3code/pull/24032
* test(lint): new polling loops in tests now fail lint by @t3dotgg in https://github.com/pingdotgg/t3code/pull/23983
* ci: unused dependency patches fail in check:changed, not after push by @t3dotgg in https://github.com/pingdotgg/t3code/pull/23988
* fix(desktop): PDFs in the preview can be annotated by @shivamhwp in https://github.com/pingdotgg/t3code/pull/24022
* fix(web): instructed compact runs without a bare compaction first by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/24008
* fix(desktop): reduce app crashes when a preview tab's renderer dies during agent screenshots by @shivamhwp in https://github.com/pingdotgg/t3code/pull/24056
* fix(server): Stop stops a thread's subagents again by @shivamhwp in https://github.com/pingdotgg/t3code/pull/23886
* fix(desktop): a stuck quit no longer leaves the app unkillable by @shivamhwp in https://github.com/pingdotgg/t3code/pull/23873
* fix(web): keep blockquote text readable in every theme by @Yash-Singh1 in https://github.com/pingdotgg/t3code/pull/24036
* fix(bitbucket): stop the startup sweep from flooding Bitbucket with 429s by @shivamhwp in https://github.com/pingdotgg/t3code/pull/23889
* fix(web): screen readers hear when the open thread starts, needs you or finishes by @shivamhwp in https://github.com/pingdotgg/t3code/pull/23752
* perf(web): reduce allocations in streaming timeline scans by @UtkarshUsername in https://github.com/pingdotgg/t3code/pull/23739
* perf(web): reuse a collator when sorting changed-file trees by @UtkarshUsername in https://github.com/pingdotgg/t3code/pull/23776
* perf(scripts): check:changed finishes in about 10 s by @t3dotgg in https://github.com/pingdotgg/t3code/pull/23581
* fix(web): size Usage header controls to the available width by @nateEc in https://github.com/pingdotgg/t3code/pull/24123
* perf(server): speed up large terminal clipboard sequences by @AksharP5 in https://github.com/pingdotgg/t3code/pull/23819
* fix(server): make stale CLI service recovery actionable by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/23541
* fix(web): pasted images show their upload tile instantly by @bmdavis419 in https://github.com/pingdotgg/t3code/pull/23832
* fix(server): clean up deleted threads worktrees with subagents by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/23900
* fix(server): pause periodic PR discovery without foreground clients by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/23852
* fix(server): meter checkpoint git subprocess attempts by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/24218
* fix(web): clear stale resource monitor errors after retry by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/24229
* fix(mobile): align draft workspace controls with the composer by @PixPMusic in https://github.com/pingdotgg/t3code/pull/24239
* feat(mobile): thread header minimizes on the Duo while reading back through history by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/24235
* fix(web): center pull request timeline actions by @PixPMusic in https://github.com/pingdotgg/t3code/pull/24259
* fix(server): find the resource monitor when the server runs from its build output by @yordis in https://github.com/pingdotgg/t3code/pull/23965
* fix(pull-requests): list filters narrow on every host that can by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/23922
* fix(pull-requests): a filtered list fills its page instead of waiting for a scroll by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/23923
* feat(pull-requests): label and author filters search the host by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/23924
* fix(mobile): chat and composer chips stay readable in light mode by @flamboh in https://github.com/pingdotgg/t3code/pull/22585
* fix(web): review thread avatars no longer clip in collapsed activity rows by @flamboh in https://github.com/pingdotgg/t3code/pull/23545
* ci: close "needs more info" issues after 7 days without a reply by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/22628
* fix(server): Codex accounts show ChatGPT's current plan names by @flamboh in https://github.com/pingdotgg/t3code/pull/24200
* fix(observability): desktop dev version and web environment match the other services by @yordis in https://github.com/pingdotgg/t3code/pull/23975
* fix(observability): custom resource attributes use the t3code prefix by @yordis in https://github.com/pingdotgg/t3code/pull/23974
* fix(mobile): Home and pull request lists let UIKit own their top inset by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/24284
* fix(mobile): keep the Duo's Home and pull request headers fixed by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/24295
* fix(server): interrupts started by an agent no longer say "by user" in the timeline by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/24299
* ci(relay): deploy labeled PRs to relay preview stages by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/23872
* fix(mobile): HTML links in pull request comments open when tapped by @flamboh in https://github.com/pingdotgg/t3code/pull/22110
* perf(client): avoid full ordering scans for streamed replacements by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/24264
* fix(server): a fork's first /compact compacts its inherited history by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/24172
* fix(server): agent recordings honor the browser frame rate setting by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/23895
* fix(client-runtime): Stop clears commands already finished on the server by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/23814
* fix(web): SSH environments on an older reused remote server explain the version mismatch instead of reconnecting forever by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/23647
* fix(web): keep usage-limit wake action visible by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/23803
* fix(server): reject pairing with an incompatible server protocol by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/23789
* fix(mobile): Live Activity stops shouting the running-agent count by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/24329
* feat(usage): include Muse Code session history by @Wiktor102 in https://github.com/pingdotgg/t3code/pull/22443
* feat(mobile): add Usage and Settings to workspace navigation by @PixPMusic in https://github.com/pingdotgg/t3code/pull/23841
* fix(mobile): keep iPad workspace columns aligned while resizing by @PixPMusic in https://github.com/pingdotgg/t3code/pull/24182
* fix(mobile): no-project threads show a chat bubble instead of a monogram by @flamboh in https://github.com/pingdotgg/t3code/pull/21546
* fix(mobile): stabilize Duo search and portrait navigation by @PixPMusic in https://github.com/pingdotgg/t3code/pull/24206
* fix(mobile): the unfolded Duo keeps its header in portrait by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/24339
* fix(client-runtime): avoid duplicate handoff previews during startup by @Yash-Singh1 in https://github.com/pingdotgg/t3code/pull/24349
* fix(mobile): Usage and Settings use the glass header and the Duo rail by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/24348
* perf(server): coalesce superseded streaming text updates by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/24267
* fix(server): stop flooding analytics with successful MCP tool calls by @t3dotgg in https://github.com/pingdotgg/t3code/pull/24287
* feat(search): Cmd+K finds the right thread first, with indexed message search by @t3dotgg in https://github.com/pingdotgg/t3code/pull/24343
* refactor(source-control): forges parse their own change request URLs by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/23992
* refactor(source-control): forges recognise their own remotes and repository keys by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/23993
* refactor(source-control): drivers build their own services and own host media by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/23994
* refactor(source-control): git and process behaviour comes from forge hooks by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/23995
* refactor(source-control): pull request behaviour comes from forge capabilities by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/23996
* refactor(clients): pull request surfaces ask the forge instead of assuming GitHub by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/23997
* refactor(clients): forge settings, routing and icons come from definitions by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/23998
* fix(clients): change requests use their host's own term by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/23999
* test(source-control): forge behaviour is tested in its own package by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/24000
* refactor(source-control): forge definitions live in shared/, not client/ by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/24181
* refactor(source-control): forges handle their own listing and SSH host quirks by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/24288
* fix(mobile): the question card uses the whole screen while the keyboard is closed by @shivamhwp in https://github.com/pingdotgg/t3code/pull/24363
* fix(web): screen readers hear which background thread finished, even with the sidebar collapsed by @shivamhwp in https://github.com/pingdotgg/t3code/pull/23839
* fix(web): screen readers say which thread a shortcut switched to by @shivamhwp in https://github.com/pingdotgg/t3code/pull/23676
* fix(mobile): Back from a sub-agent opened from its delegator returns to the delegator by @shivamhwp in https://github.com/pingdotgg/t3code/pull/23795
* fix(server): migrate-dev-db no longer trips over webhook tables by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/24404
* fix(clients): GitCafe links show GitCafe's mark on mobile by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/24405
* feat: compactions T3 Code starts read as one working row, and stay quiet by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/24334
* fix(source-control): GitCafe checks show each check's newest run by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/24406
* fix(html): honor preview light and dark mode by @Bil0000 in https://github.com/pingdotgg/t3code/pull/24521
* chore(mobile): move Enriched Markdown to upstream's block renderers by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/24534
* fix(provider-cursor): finished Cursor turns no longer end in Provider error after the SDK's late resume by @shivamhwp in https://github.com/pingdotgg/t3code/pull/24231
* fix(server): server preview browser rejects the compromised eMudhra intermediates by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/24542
* chore(review): Macroscope skips generated code and recorded fixtures by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/24548
* fix(server): align delegated review follow-up guidance by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/24560
* fix(server): websocket tickets name the route they open by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/24554
* perf(mobile): highlight code with native @pierre/highlights instead of Shiki by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/24544
* fix(desktop): support Linux distro protocol launchers by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/24591
* fix(provider-acp): force-kill terminal commands that ignore SIGTERM by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/24596
* fix(grok): invoke leading picked skills through native commands by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/24605
* fix(server): long agent turns no longer load whole when a thread opens by @t3dotgg in https://github.com/pingdotgg/t3code/pull/24589
* fix(server): analytics stop counting reconnects, retries, and dev servers by @t3dotgg in https://github.com/pingdotgg/t3code/pull/24601
* fix(acp): idle agent errors fail their turns by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/24615
* fix(provider-acp): Grok monitors show as monitors in background work by @t3dotgg in https://github.com/pingdotgg/t3code/pull/24609
* feat(server): devices on the same network reach background services over LAN by @t3dotgg in https://github.com/pingdotgg/t3code/pull/24588
* fix(codex): bound pending requests after app-server stdout closes by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/24600
* fix(cursor): discover built-in skills in the composer by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/24595
* fix(server): retry provider event writes after brief SQLite locks by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/24571
* fix(server): settle inactive threads with persisted open PR links by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/24617
* feat(mobile): Settings is a workspace tab, and tabs never open on an empty detail by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/24524
* feat(mobile): the folded Duo opens search from a search tab below the tab bar by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/24360
* revert(mobile): take the folded Duo search tab back out for now by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/24626
* fix(web): preview images outside the workspace by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/24627
* fix(threads): Working holds only background work the agent waits on by @t3dotgg in https://github.com/pingdotgg/t3code/pull/24610
* fix(web): switched threads and Scroll to end land on the real end by @t3dotgg in https://github.com/pingdotgg/t3code/pull/24622
* fix(web): attach DNG originals as generic files by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/24625
* fix(server): surface failed runtime request answer delivery by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/24616
* fix(preview): report navigation timeout accurately by @Ethereal49 in https://github.com/pingdotgg/t3code/pull/24356
* fix(web): give PR row metadata room below the title by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/24553
* fix(mobile): center floating status actions by @PixPMusic in https://github.com/pingdotgg/t3code/pull/24526
* fix(mobile): the iPhone new-chat button sits beside the tab bar on iOS 26.6 by @wojas in https://github.com/pingdotgg/t3code/pull/24492
* fix(web): signed-out T3 Connect shows a Sign in button by @t3dotgg in https://github.com/pingdotgg/t3code/pull/24636
* perf(mobile): stop menu fault logging and whole-list re-renders on Home by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/24646
* fix(mobile): preserve syntax and navigation in large diffs by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/24276
* perf(shell): cold connects skip idle subagent threads, a third of the thread list by @t3dotgg in https://github.com/pingdotgg/t3code/pull/24648
* feat: share a thread with a guest who watches live and sends messages you approve by @t3dotgg in https://github.com/pingdotgg/t3code/pull/24104
* fix(antigravity): say when sign-in cannot reach Google by @t3dotgg in https://github.com/pingdotgg/t3code/pull/24652
* fix: canonicalize git.cafe pull request links by @maria-rcks in https://github.com/pingdotgg/t3code/pull/22634
* feat(mobile): manage labels, edit PRs and comments, react, and refresh checks live by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/24602
* perf(web): highlight code with @pierre/highlights instead of Shiki by @maria-rcks in https://github.com/pingdotgg/t3code/pull/23178
* perf(server): thread opens and live events send each message body once by @t3dotgg in https://github.com/pingdotgg/t3code/pull/24647
* refactor: halve code comments and cap comment blocks at four lines by @maria-rcks in https://github.com/pingdotgg/t3code/pull/21514
* chore: fit three comments to the four-line cap so lint passes on main by @t3dotgg in https://github.com/pingdotgg/t3code/pull/24675
* fix(claude): ENABLE_TOOL_SEARCH=auto no longer costs 10x cache writes per session by @t3dotgg in https://github.com/pingdotgg/t3code/pull/24654
* perf(orchestration): thread snapshots send each long ID once by @t3dotgg in https://github.com/pingdotgg/t3code/pull/24643
* fix(mobile): keep visible diff files highlighted by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/24682
* fix(mobile): Settings split view keeps its selection and its header matches the page by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/24644
* fix(mobile): every Duo header blurs under the vertical bar, from one place by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/24671
* feat(settings): follow-ups steer the running turn by default by @maria-rcks in https://github.com/pingdotgg/t3code/pull/24718
* fix(mobile): Duo threads no longer open shifted left by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/24732
* fix(mobile): PR links open in the app the same way they do on web by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/24738
* feat(web): command palette search finds options inside submenus by @maria-rcks in https://github.com/pingdotgg/t3code/pull/24709
* fix(mobile): one way to select a page, so split view stops pushing by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/24742
* fix(mobile): Settings pages no longer flicker when switching beside the list by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/24749
* fix(server): use Codex native collaboration modes by @t3dotgg in https://github.com/pingdotgg/t3code/pull/24737
* fix(clients): threads no longer flash in the inbox before they settle by @t3dotgg in https://github.com/pingdotgg/t3code/pull/24760
* fix(mobile): the iPhone compose icon matches the tab icons' size by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/24650
* feat(infra): share Vite task cache with Axiom savings telemetry by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/24693
* fix(mobile): screen lists register with their header, enforced by lint by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/24710
* feat(mobile): search Settings, and keep its sidebar header clean by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/24766
* fix(mobile): threads open with less waiting, and the Threads tab remembers drafts by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/24750
* fix(mobile): reduce diff entry and source highlighting delays by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/24770
* perf(client): skip unchanged shell and config cache writes by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/24266
* fix(mobile): remove perpetual reconnect indicator animation by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/24273
* feat(mobile): close the keyboard from the Duo's side bar by @t3dotgg in https://github.com/pingdotgg/t3code/pull/24696
* fix(mobile): dispatch native toolbar actions to current handlers by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/24271
* fix(server): PR watch wakes say the PR stays linked and watched by @t3dotgg in https://github.com/pingdotgg/t3code/pull/24781
* feat(server): thread tools return a ready t3-thread link by @t3dotgg in https://github.com/pingdotgg/t3code/pull/24784
* fix(server): running task results tell the agent to end its turn by @t3dotgg in https://github.com/pingdotgg/t3code/pull/24782
* fix(server): mobile push no longer says "completed" between runs by @t3dotgg in https://github.com/pingdotgg/t3code/pull/24769
* fix(server): delegated children no longer see pull request watch tools by @t3dotgg in https://github.com/pingdotgg/t3code/pull/24808
* fix(mobile): search stays open after going back from a thread by @t3dotgg in https://github.com/pingdotgg/t3code/pull/24748
* feat(server): request_secret can save a CLI token to a private file by @t3dotgg in https://github.com/pingdotgg/t3code/pull/24809
* fix(server): threads settle right after a shell merge of an unlinked PR by @t3dotgg in https://github.com/pingdotgg/t3code/pull/24830
* fix(server): worktree setup no longer hangs when a shell startup prompt eats the command by @t3dotgg in https://github.com/pingdotgg/t3code/pull/24775
* feat(server): link pull requests agents create from the shell by @t3dotgg in https://github.com/pingdotgg/t3code/pull/24813
* fix(mobile): queue Steer button no longer opens the editor on a near miss by @t3dotgg in https://github.com/pingdotgg/t3code/pull/24832
* fix(usage): Gemini 4 Argon usage from Antigravity now has a price by @t3dotgg in https://github.com/pingdotgg/t3code/pull/24834
* fix(server): publish committed events before writer cancellation by @Yash-Singh1 in https://github.com/pingdotgg/t3code/pull/24836
* fix(web): shared dev servers no longer crash on lazy routes by @t3dotgg in https://github.com/pingdotgg/t3code/pull/24839
* fix(web): chat tables and subagent rows line up by @t3dotgg in https://github.com/pingdotgg/t3code/pull/24835
* perf(shell): cold connects skip older settled threads, 93% of the shell JSON by @t3dotgg in https://github.com/pingdotgg/t3code/pull/24723
* test(server): restart replay tests no longer hang on a leftover checkpoint capture by @t3dotgg in https://github.com/pingdotgg/t3code/pull/24851
* feat(web): Settings and Usage open as large modals over your thread by @t3dotgg in https://github.com/pingdotgg/t3code/pull/24847
* fix(server): forked threads get titles from the history they inherit by @t3dotgg in https://github.com/pingdotgg/t3code/pull/24857
* fix(release): desktop builds pass again after the vite-plus 1.4 upgrade by @t3dotgg in https://github.com/pingdotgg/t3code/pull/24867
* feat(server): cut T3's agent instructions and tool copy by 60% by @t3dotgg in https://github.com/pingdotgg/t3code/pull/24850
* perf(desktop): stop decoding snapshots twice for accessibility by @AksharP5 in https://github.com/pingdotgg/t3code/pull/19221
* feat(desktop): import cookies from Zen Browser by @UtkarshUsername in https://github.com/pingdotgg/t3code/pull/22970
* perf(shared): avoid repeated date parsing when selecting PRs by @UtkarshUsername in https://github.com/pingdotgg/t3code/pull/22891
* fix(web): refresh the current branch when opening the picker by @UtkarshUsername in https://github.com/pingdotgg/t3code/pull/22807
* fix(mobile): the Duo header blur reaches a vertical bar on the left too by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/24807
* fix(mobile): stabilize composer search debounce targets by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/24272
* fix(server): surface why process group metrics are not exported by @yordis in https://github.com/pingdotgg/t3code/pull/23969
* test(mobile): mock threads in the composer search debounce test by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/24954
* fix(server): serve audio and video from draft workspaces by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/24275
* fix(mobile): share toast motion and bring bottom undo to iOS by @PixPMusic in https://github.com/pingdotgg/t3code/pull/23968
* fix(mobile): the Duo sidebar changes with the rotation, not after it by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/24951
* perf(mobile): append terminal output without replaying history by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/24261
* fix(server): attachments are no longer silently dropped from prompts by @maria-rcks in https://github.com/pingdotgg/t3code/pull/21356
* fix(mobile): images picked with choose files reach the agent as images by @maria-rcks in https://github.com/pingdotgg/t3code/pull/21352
* feat(web): attach svg files to messages by @maria-rcks in https://github.com/pingdotgg/t3code/pull/21355
* feat(server): send pdf attachments to claude and antigravity as documents by @maria-rcks in https://github.com/pingdotgg/t3code/pull/21358
* feat(mobile): play audio inline and open shared files in the viewer by @maria-rcks in https://github.com/pingdotgg/t3code/pull/21353
* feat(web): play audio inline and open any file the agent shares in the viewer by @maria-rcks in https://github.com/pingdotgg/t3code/pull/21363
* perf(pull-requests): faster pull request timeline, code tab, summary and search by @maria-rcks in https://github.com/pingdotgg/t3code/pull/22697
* perf(mobile): bound streaming markdown cache and pending work by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/24263
* fix(web): question options show a radio and an aligned shortcut key by @maria-rcks in https://github.com/pingdotgg/t3code/pull/23255
* fix(server): notify parents after delegated background runs by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/23542
* fix(server): running delegates tell agents to end the turn by @t3dotgg in https://github.com/pingdotgg/t3code/pull/24887
* perf(ci): cache server tests individually across shards by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/24966
* feat(mobile): one cached native-client install command for agents and machines by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/24965
* perf(source-control): pull request previews read only the pull request by @maria-rcks in https://github.com/pingdotgg/t3code/pull/22583
* feat(infra): native client cache panels on the task cache dashboard by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/24994
* feat(web): UI design overhaul, with the new look behind a Beta toggle by @t3dotgg in https://github.com/pingdotgg/t3code/pull/24865
* test(server): tests no longer depend on the host machine by @t3dotgg in https://github.com/pingdotgg/t3code/pull/25001
* perf: opening a thread loads 85% less data by @t3dotgg in https://github.com/pingdotgg/t3code/pull/24899
* fix(server): orchestrator records command count and duration again by @yordis in https://github.com/pingdotgg/t3code/pull/23966
* fix(observability): every app reports its own environment and release channel by @yordis in https://github.com/pingdotgg/t3code/pull/24340
* chore(lint): React effects can't grow past each file's budget by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/24964
* fix(observability): every exported resource names its service instance by @yordis in https://github.com/pingdotgg/t3code/pull/23973
* fix(install): stable installs no longer fail behind a page of nightlies by @t3dotgg in https://github.com/pingdotgg/t3code/pull/22907
* fix(server): Grok refresh no longer restores removed models from cache by @t3dotgg in https://github.com/pingdotgg/t3code/pull/22849
* fix(server): resume fallback keeps the latest turn when an older handoff is pending by @t3dotgg in https://github.com/pingdotgg/t3code/pull/22902
* fix(client-runtime): "Codex (hub)" badges read CH instead of C( by @t3dotgg in https://github.com/pingdotgg/t3code/pull/22918
* fix(mobile): retain requested PR environment while connecting by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/24262
* fix(web): usage-limit banner reset time follows the Time format setting by @t3dotgg in https://github.com/pingdotgg/t3code/pull/22915
* fix(web): terminal drag selection scrolls faster the farther past the edge by @t3dotgg in https://github.com/pingdotgg/t3code/pull/22872
* fix(observability): resources add OTel semconv runtime and browser keys by @yordis in https://github.com/pingdotgg/t3code/pull/23972
* chore(lint): main passes lint again with effects merged after the budget by @t3dotgg in https://github.com/pingdotgg/t3code/pull/25055
* fix(server): ended roots no longer leave provider turns running by @t3dotgg in https://github.com/pingdotgg/t3code/pull/22846
* feat(mobile): open threads and devices in a resizable iOS inspector by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/24985
* chore(web): measure renders before/after with render scenarios by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/24980
* fix(web): asset URLs re-mint per revision and before expiry without effects by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/24970
* fix(web): queued-message edits survive navigation and settle once by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/24972
* refactor(mobile): thread visits are tracked outside React by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/24973
* refactor(client): cloud account transitions run in one service by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/24974
* refactor(client): one VCS status refresh owner per checkout by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/24975
* refactor(web): document appearance and title are applied from app start by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/25004
* refactor(web): app shell shortcuts register once through one command dispatcher by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/25016
* refactor(web): shared intersection and document-activity stores by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/25020
* refactor(web): the theme store and diff worker pool stop syncing the theme through effects by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/25007
* fix(server): keep history discovery off the writer and pace compaction by @JustYannicc in https://github.com/pingdotgg/t3code/pull/20877
* perf(mobile): compact persisted thread snapshots by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/24265
* fix(server): background compactions no longer flip threads to Working by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/25122
* fix(web): a stale queued-edit save no longer clears a newer edit by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/25128
* fix(client): a thread opened before its shell loads still counts as opened by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/25133
* docs: open and track PRs through GitCafe when origin is git.cafe by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/25126
* perf(web): diff file boundaries observe visibility once instead of on every render by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/25134
* fix(mobile): center toast actions beside wrapped messages by @PixPMusic in https://github.com/pingdotgg/t3code/pull/24986
* fix(server): compact superseded turn-item snapshots by @JustYannicc in https://github.com/pingdotgg/t3code/pull/20990
* feat(server): count how guest sharing gets used by @t3dotgg in https://github.com/pingdotgg/t3code/pull/24996
* chore(lint): enforce unnecessaryPipeChain by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/25077
* test(web): Arabic arrow-key test no longer drops its first key press by @t3dotgg in https://github.com/pingdotgg/t3code/pull/25145
* fix(mobile): upgrade react-native-keyboard-controller to 1.22.8 for the Duo fold composer by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/25141
* fix(infra): keep task cache cleanup ahead of uploads by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/25143
* chore(lint): enforce mapSomeToAsSome by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/25078
* chore(lint): enforce flatMapIgnoredParamToAndThen by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/25089
* chore(lint): enforce provideLayerSucceedToProvideService by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/25090
* chore(lint): enforce unicorn/require-module-specifiers by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/25102
* chore(lint): enforce unicorn/no-useless-fallback-in-spread by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/25103
* chore(lint): enforce eslint/no-unneeded-ternary by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/25105
* chore(lint): enforce eslint/no-unsafe-optional-chaining by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/25106
* fix(web): preview favicons resolve their project without ChatView syncing it by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/25068
* refactor(mobile): branch picker owns its search and checkout guard by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/25067
* refactor(web): composer editor stops mirroring props into refs with effects by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/25079
* fix(client): usage-limit Snooze disables at reset even weeks away, via a shared deadline clock by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/25005
* fix(infra): task cache cleanup test provides its service directly by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/25164
* chore(lint): a new React effect states its reason instead of raising the budget by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/25163
* test(web): the diff boundary observer counter lives in its fixture by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/25170
* fix(client): a queued-edit save keeps its claim until it finishes by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/25169
* refactor(web): terminal focus requests name the terminal they focus by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/25009
* fix(web): pull request checks stay current after a checks refresh by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/25008
* chore(devices): bump agent-device to 0.21.31 by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/25065
* feat(mobile): composer placeholder reads "Ask anything" by @flamboh in https://github.com/pingdotgg/t3code/pull/25176
* refactor(mobile): shared AppState, reduce-motion and back-button helpers by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/25011
* fix(web): settings panels derive state instead of syncing it with effects by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/25070
* refactor(mobile): terminal lifecycle runs in a session store, not screen effects by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/25071
* refactor(web): branch toolbar and dialogs stop syncing through effects by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/25072
* refactor(web): thread find state lives in one store instead of event buses and mirrors by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/25073
* refactor(web): browser panel tabs follow preview sessions without ChatView effects by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/25006
* chore(lint): enforce effectSucceedWithVoid by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/25074
* chore(lint): enforce preferSucceedSomeOrNone by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/25080
* chore(lint): enforce unnecessaryFailYieldableError by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/25083
* chore(lint): enforce catchToOrElseSucceed by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/25084
* chore(lint): enforce allOfMapToForEach by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/25085
* chore(lint): enforce unnecessaryEffectGen by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/25086
* chore(lint): enforce catchToIgnore by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/25087
* chore(lint): enforce optionMatchToFromOption by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/25088
* chore(lint): enforce redundantMapError by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/25091
* chore(lint): enforce raceFirstWithSleepToTimeout by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/25092
* chore(lint): enforce catchUnfailableEffect by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/25093
* chore(lint): enforce preferTypedSchemaDecoder by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/25094
* chore(lint): enforce schemaStructWithTag by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/25095
* chore(lint): enforce tryCatchInEffectGen by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/25097
* chore(lint): enforce eslint/no-unused-vars by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/25100
* chore(lint): enforce unicorn/no-useless-spread by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/25104
* chore(lint): enforce eslint/no-new by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/25107
* fix(web): theme editor returns to its spot after the window shrinks and grows back by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/25076
* refactor(mobile): cloud account transitions run in the shared account service by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/25150
* refactor(client): drop the VCS wake and dispatcher element scope options nobody uses by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/25152
* fix(server): make document attachments readable to agents by @maria-rcks in https://github.com/pingdotgg/t3code/pull/21458
* fix(web): keep Windows thread notifications clickable until handled by @AKolenda in https://github.com/pingdotgg/t3code/pull/22520
* refactor(client): terminal sessions keep one driver per mode by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/25186
* refactor(web): preview tab sync subscribes to the preview store instead of its own listener sets by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/25196
* fix(server): use asSome for initial worktree measurement by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/25206
* feat(sidebar): working section is on by default by @maria-rcks in https://github.com/pingdotgg/t3code/pull/25190
* feat(web): preview office files, fonts, and mermaid diagrams by @maria-rcks in https://github.com/pingdotgg/t3code/pull/21362
* feat(web): virtualize large file previews by @maria-rcks in https://github.com/pingdotgg/t3code/pull/21466
* feat(web): preview archives, sqlite databases, and decoded images by @maria-rcks in https://github.com/pingdotgg/t3code/pull/21467
* feat(web): preview opendocument, epub, rich text, and notebooks by @maria-rcks in https://github.com/pingdotgg/t3code/pull/21469
* chore(lint): enforce eslint/no-empty-pattern by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/25101
* chore(lint): enforce typescript/no-extraneous-class by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/25108
* chore(lint): enforce react/capitalized-calls by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/25109
* fix(desktop): hidden preview tabs throttle instead of running at full speed by @t3dotgg in https://github.com/pingdotgg/t3code/pull/25184
* chore(lint): enforce react/static-components by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/25110
* chore(lint): enforce react/no-unstable-nested-components by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/25111
* chore(lint): enforce react/no-array-index-key by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/25112
* chore(lint): enforce react/immutability by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/25115
* chore(lint): disable react/jsx-no-constructed-context-values by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/25039
* chore(lint): disable react/no-object-type-as-default-prop by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/25040
* chore(lint): disable unicorn/no-array-reverse by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/25041
* chore(lint): disable unicorn/no-new-array by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/25042
* chore(lint): disable unicorn/prefer-array-find by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/25043
* chore(lint): disable unicorn/prefer-set-has by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/25044
* chore(lint): disable unicorn/prefer-string-starts-ends-with by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/25045
* chore(lint): disable unicorn/prefer-add-event-listener by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/25047
* chore(lint): disable typescript/no-this-alias by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/25048
* chore(lint): disable eslint/no-control-regex by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/25049
* chore(lint): disable returnEffectInGen by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/25050
* refactor(mobile): thread detail and feed reset by key and share one follow owner by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/25148
* fix(web): thread find exports the timeline fields type its context names by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/25260
* chore(lint): enforce react/memo-dependencies by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/25117
* fix(web): Escape and copy work in chat media and markdown widgets, which attach through ref callbacks by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/25246
* fix(web): composer banners, menus and pickers act in their handlers by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/25238
* refactor(web): device panel reads hub state from atoms by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/25265
* feat(web): New design brings back color where it means something by @t3dotgg in https://github.com/pingdotgg/t3code/pull/25251
* fix(web): SSH password prompts wait for their dialog, and the app shell drops its sync effects by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/25239
* refactor(mobile): settings and usage screens drop sync effects by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/25227
* fix(mobile): review opens on Changes and keeps the section you picked by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/25223
* fix(mobile): Android dialogs raised before or during activity replacement now show by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/25229
* chore(lint): enforce react/purity by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/25038
* fix(web): app loads again after a chunk cycle blanked it at boot by @t3dotgg in https://github.com/pingdotgg/t3code/pull/25295
* refactor(web): root notification and toast coordinators start with the app by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/25233
* refactor(web): sidebar thread lists derive state instead of syncing it in effects by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/25234
* chore(lint): enforce react/refs by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/25116
* fix(web): new thread shortcut focuses palette search, not the Back button by @t3dotgg in https://github.com/pingdotgg/t3code/pull/25315
* chore(lint): enforce react/exhaustive-effect-dependencies by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/25118
* fix(web): composer corners and context strip no longer show double edges by @t3dotgg in https://github.com/pingdotgg/t3code/pull/25316
* fix(web): VS Code icon in thread details no longer has a box around it by @t3dotgg in https://github.com/pingdotgg/t3code/pull/25321
* fix(web): sent messages stand out on the black canvas in the new design by @t3dotgg in https://github.com/pingdotgg/t3code/pull/25323
* feat(web): new design is on by default by @t3dotgg in https://github.com/pingdotgg/t3code/pull/25324
* chore(lint): enforce react/set-state-in-effect by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/25119
* fix(web): short branch names no longer get clipped in thread details by @t3dotgg in https://github.com/pingdotgg/t3code/pull/25328
* refactor(mobile): stream and MCP webviews tie their work to the view's lifetime by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/25226
* fix(web): stacked notices above the composer no longer cast a dark band by @t3dotgg in https://github.com/pingdotgg/t3code/pull/25329
* fix(web): thread undo notice sits above the bottom shelves instead of pushing the list by @maria-rcks in https://github.com/pingdotgg/t3code/pull/25270
* feat(web): "could not load" screen tells users how to debug it by @t3dotgg in https://github.com/pingdotgg/t3code/pull/25317
* fix(web): usage tabs no longer jump when switching to Limits by @t3dotgg in https://github.com/pingdotgg/t3code/pull/25336
* fix(web): composer bottom toolbar keeps its background under update notices by @t3dotgg in https://github.com/pingdotgg/t3code/pull/25335
* chore(lint): enforce catchConditionalRefailToCatchIf by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/25081
* chore(lint): enforce flatMapConditionalToFilterOrFail by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/25082
* chore(lint): enforce runEffectInsideEffect by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/25096
* chore(lint): enforce abortControllerInEffect by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/25098
* chore(lint): enforce t3code/no-inline-schema-compile by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/25113
* chore(lint): enforce oxc/no-accumulating-spread by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/25114
* chore(lint): enforce t3code/no-polling-loop-in-tests by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/25120
* docs: read GitHub Actions logs through cafe by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/25343
* feat(web): "failed to start" screen helps users recover and report the crash by @t3dotgg in https://github.com/pingdotgg/t3code/pull/25345
* fix(web): keep large thread counts from shrinking labels by @Yash-Singh1 in https://github.com/pingdotgg/t3code/pull/25355
* fix(task-cache): avoid cross-request admission waiters by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/25353
* fix(server): select the active iPhone Duo display for screenshots by @shivamhwp in https://github.com/pingdotgg/t3code/pull/24912
* fix(server): remove one-child-per-model instruction by @Yash-Singh1 in https://github.com/pingdotgg/t3code/pull/25359
* fix(dev): skip auto-seeding large databases by @Yash-Singh1 in https://github.com/pingdotgg/t3code/pull/25365
* fix(server): preview snapshots preserve blurred backdrops by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/24618
* fix(web): model picker no longer jumps when switching providers by @t3dotgg in https://github.com/pingdotgg/t3code/pull/25358
* test(mobile): run React hooks with the release compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/24274
* fix(mobile): pause videos outside visible thread and PR content by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/24268
* fix(server): retry stalled MCP registration for resumed Claude turns by @Yash-Singh1 in https://github.com/pingdotgg/t3code/pull/25372
* fix(mobile): avoid crashes opening wrapped source links by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/25156
* refactor(web): disconnect and reconnect delays read a shared deadline instead of effect timers by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/25363
* chore(lint): enforce effectFnOpportunity by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/25099
* fix(web): composer body ref stops re-attaching on every render by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/25409
* fix(web): switching threads no longer delays the next thread's visit by up to 10s by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/25368
* fix(mobile): mobile:install builds on a cache miss for pooled devices, iOS on EAS by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/25390
* revert(web): composer body ref goes back to the #25079 ref callback by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/25412
* feat(mobile): thread rows drop the branch and lead with the title by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/25415
* refactor(web): file breadcrumb menus refetch on a new workspace change, not on every open by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/25377
* fix(web): citations to older responses load their history instead of failing by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/25371
* refactor(client): composers share one workspace snapshot refresh per provider and cwd by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/25370
* refactor(mobile): composer pastes and picks are cancelled by their draft, not by the composer by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/25376
* fix(mobile): select the correct draft after adding a project by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/24269
* fix(server): goals stop the running turn, clear while working, no echoes by @t3dotgg in https://github.com/pingdotgg/t3code/pull/25426
* refactor(web): pull request list remembers each answer for the next start by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/25364
* refactor(web): HTML previews handle frame messages in one listener by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/25456
* refactor(web): review guide runs are watched from their answers, not from mounted components by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/25459
* refactor(web): resize drags, panel shells and the browser host own their listeners by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/25464
* fix(web): find shows its match after a thread switch, and the timeline hears scrolling through one viewport signal by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/25463
* fix(mobile): a new thread's first send no longer sticks on Starting by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/25477
* fix(client): drafts for answered questions are cleared even when their thread is not open by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/25457
* refactor(web): terminal output no longer re-renders the drawer, theme search runs from handlers by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/25458
* fix(web): stable callbacks refresh before layout effects read them by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/25489
* test(web): say why the useStableCallback test renders without a router by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/25493
* fix(mobile): queued edits end when their run starts, wherever you are by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/25468
* refactor(web): root theme, toast and chrome sync start with the app by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/25461
* fix(mobile): editing a queued message while a question is open no longer throws by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/25503
* fix(web): browser viewport resizes work without an open preview panel by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/25462
* test(web): attachment preview omission tests no longer time out on CI by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/25515
* fix(mobile): describe when composer view commands can reject by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/25516
* fix(web): browser history and titles show up again by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/25491
* fix(web): switching back to a thread no longer restores its tab's older title by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/25521
* refactor(web): pull request page reacts to turns and sweep Escape without effects by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/25523
* fix(web): an armed pull request confirm no longer outlives its button by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/25530
* fix(mobile): keep expanding composer text above its toolbar by @saphid in https://github.com/pingdotgg/t3code/pull/25396
* fix(server): release completed PR sync sweep data from the read cache by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/25285
* fix(mobile): drop the unused useLayoutEffect import that fails lint on main by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/25575
* refactor(web): provider settings and Codex setup run as explicit flows by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/25524
* test(web): attachment preview omission cases check the prepared document instead of rendering each one by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/25562
* refactor(mobile): pull request screens use a file-jump store and handler work by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/25525
* fix(mobile): label the pull request toast action View by @PixPMusic in https://github.com/pingdotgg/t3code/pull/25581
* refactor(mobile): media previews share file leases and close on blur in one place by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/25527
* fix(shared): pin T3 Connect cloudflared to 2026.10.4, which drops the compromised eMudhra intermediates by @Project516 in https://github.com/pingdotgg/t3code/pull/25572
* fix(web): skill chips in chat open the same details popover as the composer by @flamboh in https://github.com/pingdotgg/t3code/pull/25432
* refactor(web): chat route shortcuts register once instead of rebuilding on every store change by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/25366
* fix(clients): queued messages can't be edited while a question is open by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/25593
* docs: add an FAQ that answers what people ask every day by @t3dotgg in https://github.com/pingdotgg/t3code/pull/25451
* feat(web): warn before adding a second Claude or Codex account by @t3dotgg in https://github.com/pingdotgg/t3code/pull/25475
* fix(server): expire new-model badges after seven days by @Yash-Singh1 in https://github.com/pingdotgg/t3code/pull/25609
* refactor(web): running timers share one clock instead of an interval each by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/25616
* fix(web): simplify the created pull request success row by @Yash-Singh1 in https://github.com/pingdotgg/t3code/pull/25613
* fix(web): thread jump hints wait for their delay on every hold by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/25636
* fix(mobile): open threads from the local cache instead of "Thread unavailable" by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/25627
* fix(infra): task-cache telemetry no longer strands an event queued during a flush by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/25653
* refactor(web): video previews attach listeners on their element and share one visibility observer by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/25630
* refactor(mobile): voice input session owns recording, metering and keep-awake by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/25631
* fix(web): screen readers can wrap to the first and last message of a long thread by @shivamhwp in https://github.com/pingdotgg/t3code/pull/23780
* fix(client-runtime): a slow host no longer shows settings as read-only by @yordis in https://github.com/pingdotgg/t3code/pull/25526
* refactor(mobile): thread rows share one clock and cache SVGs instead of per-row effects by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/25612
* fix(server): a thread whose worktree was deleted recovers on the next message by @yordis in https://github.com/pingdotgg/t3code/pull/18359
* refactor(mobile): pull request list records answers where they land by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/25373
* fix(mobile): keep floating status within the composer width by @PixPMusic in https://github.com/pingdotgg/t3code/pull/25671
* refactor(web): settings group by concern, with General split into focused pages by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/25651
* fix(server): telemetry keeps a failed batch for 30 minutes, not 1.5 by @t3dotgg in https://github.com/pingdotgg/t3code/pull/25474
* fix(mobile): a caret move in one composer no longer moves another draft's insert point by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/25681
* test(web): attachment preview Word and large-text tests no longer flake on CI by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/25664
* feat(evals): shared evals package and an eval for T3 tool-use mistakes by @t3dotgg in https://github.com/pingdotgg/t3code/pull/24635
* refactor(web): Cmd+O presses the Open in editor button instead of a per-picker listener by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/25667
* fix(mobile): queued messages are delivered by an app service, not a render loop by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/25678
* test(web): PDF viewer behavior is covered by fast tests by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/25699
* refactor(mobile): drop the unreachable pending-task editor from new-task drafts by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/25684
* feat(web): thread state lives at the end of the timeline, not stacked on the composer by @t3dotgg in https://github.com/pingdotgg/t3code/pull/25401
* refactor(web): drafts promote from the draft store, not from route effects by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/25615
* refactor(mobile): settings use web's pages and groups by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/25686
* refactor(mobile): thread inspector mode is derived, not synced by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/25682
* refactor(mobile): pull request list, filters and viewed files without synchronizing effects by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/25614
* fix(web): PDF search finds phrases that wrap across lines by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/25702
* feat(server): cut T3's MCP tool schemas by a third and merge 18 tools into action tools by @t3dotgg in https://github.com/pingdotgg/t3code/pull/25423
* fix(mobile): pull request rows refresh their diff stats after a new push by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/25713
* fix(workflows): keep completed workflows reachable by @Bil0000 in https://github.com/pingdotgg/t3code/pull/24587
* fix(web): devices agents open in background threads now show up by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/25714
* refactor(web): optimistic chat messages leave without a timer by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/25710
* feat(acp): ACP session notices show as notices, not reply text by @juliusmarminge in https://github…
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:XS 0-9 changed lines (additions + deletions). vouch:trusted PR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant