Skip to content

fix(server): Windows terminal kill no longer waits on timeouts - #18519

Merged
juliusmarminge merged 6 commits into
pingdotgg:mainfrom
mweinbach:fix/windows-terminal-kill-hang
Oct 16, 2026
Merged

juliusmarminge merged 6 commits into
pingdotgg:mainfrom
mweinbach:fix/windows-terminal-kill-hang

Conversation

@mweinbach

@mweinbach mweinbach commented Oct 12, 2026 •

Copy link
Copy Markdown
Contributor

Problem

Closing a terminal on Windows can stall for seconds.

  • node-pty's windowsPtyAgent.js forks conpty_console_list_agent and only listens for message. If the helper exits or fails to spawn before replying, the kill waits for the full 5,000ms fallback timeout.
  • TerminalManager.runKillEscalation sends SIGTERM and then always sleeps the full processKillGraceMs before SIGKILL, even when the process has already exited.

Change

  • patches/node-pty@1.2.0-beta.15.patch: resolve the console-list promise on the agent's close and error events as well as message. close is used instead of exit because Node can emit exit before the helper's final IPC message is delivered, with a single finish guard that clears the timeout. The fork also passes windowsHide: true, and ignores malformed messages.
  • pnpm-lock.yaml: updates only the node-pty@1.2.0-beta.15 patch hash.
  • apps/server/src/terminal/Manager.ts: runKillEscalation subscribes to process.onExit before sending SIGTERM, then races exit against processKillGraceMs. SIGKILL is sent only if the process is still alive when the grace period ends. The exit subscription is released with Effect.ensuring, so it is also cleaned up when the kill fiber is interrupted.

Scope and approval

Split from #18508 under the one-problem-per-PR rule in CONTRIBUTING.md. This PR covers only the Windows terminal kill hang. The other changes from #18508 will come in separate PRs.

Verification

Manager.runKillEscalation (apps/server/src/terminal/Manager.test.ts, 92/92 pass):

  • New test skips SIGKILL when the process exits during the grace period: with a 10s grace, the PTY exits right after SIGTERM, and the clock is then advanced past the grace. Signals sent: ["SIGTERM"]. The same test against the pre-fix Manager.ts fails with expected [ 'SIGTERM', 'SIGKILL' ] to deeply equal [ 'SIGTERM' ].
  • Existing test escalates terminal shutdown to SIGKILL when process does not exit in time still passes: a terminal that ignores SIGTERM gets SIGKILL after the grace period.
  • New test releases the exit listener when kill escalation is interrupted: closing the manager scope during the grace period leaves 0 exit listeners. The previous try/finally version left 1.

node-pty console-list helper in CI (apps/server/src/terminal/nodePtyConsoleList.test.ts, 4/4 pass). It stubs child_process.fork and runs the patched _getConsoleProcessList on every platform. Cases: reply then close returns the full list; exit before the IPC message still returns the full list; close without a reply returns [shellPid]; spawn error returns [shellPid]. Against unpatched node-pty, both fallback cases time out. Against an exit-based fallback, the exit-before-message case fails.

node-pty console-list helper (Windows 11 arm64, Node 24.21.0). WindowsPtyAgent.prototype._getConsoleProcessList was run from patched and unpatched copies of node-pty/lib:

Case Unpatched Patched
Helper exits before replying (conpty_console_list_agent stubbed to process.exit(1)) resolved [4242] in 5034–5133ms resolved [4242] in 415–1331ms (Node startup time; close lands within ~5ms of exit)
Helper fails to spawn (ENOENT) unhandled 'error' event crashes the process resolved [4242] in 2–14ms
Helper replies then exits immediately n/a full 3-PID list received in 50/50 runs

Also: vp lint on the changed files (no new warnings) and tsc-rs -p apps/server/tsconfig.json --noEmit (0 errors).

Model: Claude 5.5 Opus

🤖 Generated with Claude Code

Latest cleanup-race verification at bf163d4924 (macOS ARM64 / Node 24.21.0): completed kill fibers are excluded during synchronized registration; the child finalizer still removes fibers completing afterward. A synchronous-exit regression across scheduler budgets fails on bad0c627af at budget 50 and passes after the fix. All 121 focused terminal tests and server typecheck pass. Targeted formatting/lint pass with one pre-existing warning. Exact-head CI 38307516086 passed. No fresh live Windows validation is claimed.

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 12, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-13T00:23:29.127963Z ba130c3 New commits
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@github-actions github-actions Bot added vouch:unvouched PR author is not yet trusted in the VOUCHED list. size:M 30-99 changed lines (additions + deletions). labels Oct 12, 2026
@coderabbitai

coderabbitai Bot commented Oct 12, 2026 •

Copy link
Copy Markdown
Contributor

Review in Change Stack →

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration
  • Configuration used: Path: .coderabbit.config.ts
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: cda26643-e609-42c4-988c-6a9d0377d16a
📥 Commits

Reviewing files that changed from the base of the PR and between bad0c62 and bf163d4.

📒 Files selected for processing (2)
  • apps/server/src/terminal/Manager.test.ts
  • apps/server/src/terminal/Manager.ts

Included review availability: This review used your included allowance. Your plan provides up to 10 included reviews per hour; 7 remain after this review.

📝 Walkthrough

Terminal shutdown escalation now waits for process exit or the grace timeout after SIGTERM. The Windows console-list helper changes its launch settings and response handling.

Changes: Terminal Shutdown Escalation

Layer / File(s) Summary
Exit-aware kill escalation
apps/server/src/terminal/Manager.ts, apps/server/src/terminal/Manager.test.ts
runKillEscalation listens for process exit before sending SIGTERM. It sends SIGKILL only if the process remains active after the grace period. Kill-fiber registration skips completed fibers. Tests cover process exit, fiber retention, and listener cleanup on interruption.

Windows Console Process Listing

Layer / File(s) Summary
Guarded console-list helper
patches/node-pty@1.2.0-beta.15.patch, apps/server/src/terminal/nodePtyConsoleList.test.ts
The helper starts with WATCH_REPORT_DEPENDENCIES removed, empty execArgv, and windowsHide: true. It accepts array-valued consoleProcessList responses and resolves once. On helper error, close, or timeout, it returns the shell PID; the timeout also kills the helper. Tests cover replies, close, and spawn errors.

Priority: ➖ Normal

Estimated code review effort: 3 (Moderate) | ~20 minutes

Change: Bug fix

Suggested reviewers: juliusmarminge

Merge Risk: ⚪ Minimal · up to bf163

The terminal shutdown and Windows helper changes appear ready to merge after normal checks.

Security Architecture Review

Security architecture risk: ⚪ Minimal · up to bf163

The reviewed shutdown changes preserve process identity and existing termination authority while avoiding unnecessary delays and repeated signals. No introduced or materially worsened security risk was identified.

Retained concerns
No architecture-level concerns identified.

Security review details

Security Blast Radius

  • observed — The manager change affects terminal termination across supported platforms; the helper change is Windows-specific. The existing sensitive sink is process termination: node-pty iterates console-list PIDs through process.kill and performs native PTY teardown. This PR changes completion timing, not the sink or its execution identity.

Trust Boundaries and Controls

  • observed — The inspected helper IPC path obtains process IDs through native console enumeration using the supplied shell PID. The receiver accepts only array-shaped replies, and error or close falls back to that shell PID. Array-element validation is not added, but that acceptance boundary predates this PR; the comparison introduces no new PID source or caller on this path.

Resilience and Maintainability Implications

  • observed — Failure containment remains best-effort: SIGTERM failure is logged and returns, while a successful signal without observed exit still escalates after grace. Scope interruption can stop escalation after SIGTERM, as before; the new exit subscription is released rather than left attached to a terminated or detached session.
Pre-merge checks: Passed 4
Passed Passed checks (4 passed)
Check name Status Explanation
Linked Issues check Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check Passed Check skipped because no linked issues were found for this pull request.
Title check Passed The title is concise, uses the conventional commit format, and clearly describes the primary Windows terminal kill timeout fix.
Description check Passed The description includes the required Problem, Change, Scope and approval, and Verification sections. It explains the root cause, implementation, focused tests, platform-specific validation, limitatio…
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create a new PR
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Comment @coderabbitai help to get the list of available commands.

Copy link
Copy Markdown
Member

Note

This comment is posted by Julius' dot

The patch installation and formatting checks don't show that terminal shutdown stops waiting. Please add focused results for a helper exiting or failing before its reply, a terminal exiting during the grace period, and a terminal that still needs SIGKILL. The verification rule requires evidence of the changed behavior. I'll move this to draft; mark it ready when that evidence is attached.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: b9490eddb3

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread patches/node-pty@1.2.0-beta.15.patch Outdated
Comment thread apps/server/src/terminal/Manager.ts Outdated
@macroscopeapp

macroscopeapp Bot commented Oct 12, 2026

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Approved at b9490ed

Macroscope's review found this PR approvable — This is a narrowly scoped Windows terminal shutdown bug fix that removes unnecessary helper and process-exit timeout waits while preserving the existing escalation behavior for processes that remain alive. The lockfile change only selects the updated dependency patch, with no new capability, schema change, deployment change, or sensitive-area impact.

You can add or adjust custom eligibility rules. Learn more.

@mweinbach

Copy link
Copy Markdown
Contributor Author

Thanks. I added the evidence to the PR description's Verification section:

  • Helper exits before replying: unpatched resolves after 5034ms, patched after 137ms.
  • Helper fails to spawn: unpatched crashes on an unhandled 'error' event, patched resolves in 2ms.
  • Terminal exits during the grace period: a new test, skips SIGKILL when the process exits during the grace period, checks that only SIGTERM is sent. It fails against the pre-fix Manager.ts.
  • Terminal still needs SIGKILL: the existing escalation test still passes.

Marking ready for review.

AdEx-Partners-DE added a commit to AdEx-Partners-DE/t3code that referenced this pull request Oct 12, 2026
…s upstream pingdotgg#18519)

Own diff of pingdotgg#18519 at 60e115f, applied on stark/main.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@AdEx-Partners-DE

Copy link
Copy Markdown
Contributor

A no-regression data point from a second Windows machine; we adopted this into a fork today.

I could not reproduce the stall here, so this only shows the healthy path is unchanged. Timed with a small script against the real node-pty in apps/server: spawn cmd.exe in a pty, wait 0.8 s, call kill(), measure until onExit. Five rounds each, Windows 11 Pro, Node 24.13:

kill to exit
before (current patch) 79, 63, 64, 79, 79 ms
after (vp i with your patch; windowsPtyAgent.js contains windowsHide) 76, 80, 80, 77, 81 ms

apps/server/src/terminal/Manager.test.ts: 90 passed before, 91 after. tsc --noEmit in apps/server is clean.

Not checked: the failing-helper case your patch is for (the console-list agent answered every time here), and runKillEscalation with a real process inside the running app.

Posted by Claude (Opus 5.5, Claude Code via T3 Code) on behalf of @AdEx-Partners-DE.

@mweinbach

Copy link
Copy Markdown
Contributor Author

Thanks for the second machine. One note: 60e115f changed the helper fallback from exit to close, because Node can emit exit before the final IPC message arrives. If you pulled the patch before that commit, re-run vp i to get it. Your healthy-path test should look the same, since close arrives within about 5ms of exit.

@mweinbach
mweinbach force-pushed the fix/windows-terminal-kill-hang branch from 60e115f to 666889a Compare October 12, 2026 12:25
@chatgpt-codex-connector

Copy link
Copy Markdown

💡 Codex Review

} finally {
unsubscribeExit();

P2 Badge Use an Effect finalizer for the exit subscription

When a kill fiber is interrupted, such as by clearKillFiber or Scope.close(workerScope) while it is awaiting the grace period, Effect does not resume the generator, so this JavaScript finally is never evaluated. The cancellation effect returned by waitForProcessExit removes only its second listener; the listener created at the start of runKillEscalation remains attached until the PTY exits, which can be indefinite for the SIGTERM-ignoring process that needs escalation. Move this unsubscribe into Effect.ensuring or a scoped release so interruption also cleans it up.


+ agent.on('error', function () {
+ finish([_this._innerPid]);
+ });
+ agent.on('close', function () {
+ finish([_this._innerPid]);

P2 Badge Add automated coverage for the helper failure fallbacks

The new error and close-without-message paths are the behavior that prevents the production five-second kill stall, but a repo-wide search for _getConsoleProcessList and conpty_console_list_agent finds only this patch; the added Manager test uses FakePtyProcess and cannot execute either helper branch. Add a focused test that stubs the forked helper for spawn failure and close-without-message, plus the send-then-close ordering, so this backend fix is exercised in CI rather than only by the manual Windows check.

AGENTS.md reference: AGENTS.md:L101-L101

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@mweinbach

Copy link
Copy Markdown
Contributor Author

Both Codex P2 findings from the 666889a review are fixed in 0170683.

  • Exit listener on interruption (real): a JS finally doesn't run when an Effect fiber is interrupted, so an interrupted kill escalation left its listener attached. runKillEscalation now uses a single onExit subscription that completes a Deferred, and releases it with Effect.ensuring. A new test closes the manager scope during the grace period and checks that 0 listeners remain. The old version left 1.
  • Helper fallback coverage: nodePtyConsoleList.test.ts stubs child_process.fork and runs the patched _getConsoleProcessList in CI on all platforms. It covers reply then close, exit before the IPC message, close without a reply, and spawn error. The fallback cases time out against unpatched node-pty, and the exit-before-message case fails against an exit-based fallback.

AdEx-Partners-DE added a commit to AdEx-Partners-DE/t3code that referenced this pull request Oct 12, 2026
…scalation releases its exit listener, helper fallback tests)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@AdEx-Partners-DE

Copy link
Copy Markdown
Contributor

Re-ran on the same Windows host with 01706834a (the earlier numbers were already on 60e115f):

  • apps/server/src/terminal: 115 passed in 3 files before, 120 in 4 files after. nodePtyConsoleList.test.ts also passes when run alone (4 passed).
  • The real pty kill is unchanged: 79, 79, 76, 79, 78 ms from kill() to onExit.
  • tsc --noEmit in apps/server is clean.

Still not checked here: a real helper that fails to answer, outside the stubbed test.

Posted by Claude (Opus 5.5, Claude Code via T3 Code) on behalf of @AdEx-Partners-DE.

@mweinbach
mweinbach force-pushed the fix/windows-terminal-kill-hang branch 3 times, most recently from 84d9af8 to bad0c62 Compare October 12, 2026 20:34

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: bad0c627af

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread apps/server/src/terminal/Manager.ts
@mweinbach
mweinbach force-pushed the fix/windows-terminal-kill-hang branch from bf163d4 to ba130c3 Compare October 13, 2026 00:18

Copy link
Copy Markdown
Contributor Author

Rebased head ba130c3 is based on main b03534f. The Build job stopped before compilation while downloading Electron v44.4.5: curl exited 6 (DNS resolution failure). The 121 focused terminal tests and server typecheck pass locally on macOS ARM64. GitHub refuses my rerun request, and my upstream repository access is read-only. Could a maintainer rerun the failed Build job? https://github.com/pingdotgg/t3code/actions/runs/38326609854/job/115066632103

AdEx-Partners-DE added a commit to AdEx-Partners-DE/t3code that referenced this pull request Oct 13, 2026
…p of upstream pingdotgg#18519 at ba130c3)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@AdEx-Partners-DE

Copy link
Copy Markdown
Contributor

In case it helps while the Build job waits for a rerun: I applied ba130c38e on top of our fork's copy and ran the terminal tests on Windows 11 (Node 24.13). apps/server/src/terminal: 121 passed in 4 files (120 before this commit), and tsc --noEmit in apps/server is clean. That is the same count you report from macOS.

Not run here: the Electron build that failed in CI.

Posted by Claude (Opus 5.5, Claude Code via T3 Code) on behalf of @AdEx-Partners-DE.

mweinbach and others added 4 commits October 16, 2026 16:10
node-pty's conpty_console_list_agent only resolved on `message`, so an
early exit or spawn error waited the full 5s fallback. Resolve on `exit`
and `error` too. runKillEscalation now races process exit against the
SIGKILL grace period instead of always sleeping through it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Node can emit the console-list helper's `exit` before its final IPC
message is delivered, which would settle with only the shell PID. Fall
back on `close` instead, which fires after the IPC channel drains.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A JS `finally` inside an Effect generator does not run when the fiber is
interrupted, so an interrupted kill escalation left its PTY exit
listener attached. Use a single subscription feeding a Deferred and
release it with Effect.ensuring.

Also cover the patched node-pty console-list helper: reply then close,
exit before the IPC message, close without a reply, and spawn failure.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@juliusmarminge
juliusmarminge force-pushed the fix/windows-terminal-kill-hang branch from ba130c3 to aadd9da Compare October 16, 2026 23:13
@github-actions github-actions Bot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. and removed vouch:unvouched PR author is not yet trusted in the VOUCHED list. labels Oct 16, 2026
@juliusmarminge
juliusmarminge merged commit 47d98ac into pingdotgg:main Oct 16, 2026
27 checks passed
Pipyakas pushed a commit to Pipyakas/t3code that referenced this pull request Oct 18, 2026
…otgg#18519)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Julius Marminge <julius0216@outlook.com>
(cherry picked from commit 47d98ac)
Pipyakas pushed a commit to Pipyakas/t3code that referenced this pull request Oct 19, 2026
…otgg#18519)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Julius Marminge <julius0216@outlook.com>
(cherry picked from commit 47d98ac)
github-actions Bot added a commit to omarcresp/t3code-flake that referenced this pull request Oct 21, 2026
## What's Changed
* feat(web): open html render images in the image viewer by @maria-rcks in https://github.com/pingdotgg/t3code/pull/20036
* refactor(github): all GitHub GraphQL on effect/graphql, one request policy for REST and GraphQL by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/19224
* refactor(mobile): share settings action rows by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/18529
* fix(mobile): standardize shared button states and adoption by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/18530
* refactor(mobile): adopt shared controls and add component catalog by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/18541
* feat(mobile): map native hosts to the app theme by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/18567
* refactor(mobile): share theme mapping across Android controls by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/19217
* refactor(mobile): expose shared icon button and search field APIs by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/19264
* refactor(mobile): expose native menus through a shared Menu API by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/19265
* refactor(mobile): centralize dialog and sheet APIs by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/19266
* refactor(mobile): keep segmented controls native by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/18532
* refactor(mobile): expose app bar toolbar and FAB APIs by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/19951
* feat(mobile): share actionable toasts and native progress by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/19952
* refactor(mobile): adopt shared text shape and motion tokens by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/19953
* feat(mobile): expose themed native Android app bars by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/19994
* refactor(mobile): adopt native Android screen headers by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/19995
* refactor(mobile): finish shared control token adoption by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/19996
* fix(mobile): route alerts through the themed dialog presenter by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/19997
* refactor(mobile): adopt shared alerts in settings and connections by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/19998
* refactor(mobile): adopt shared alerts in thread and PR screens by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/19999
* refactor(mobile): finish shared alert adoption by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20000
* refactor(mobile): adopt shared loading indicators across screens by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20001
* refactor(mobile): unify navigation and floating toolbar APIs by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20002
* refactor(mobile): use native iOS sliders by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20016
* refactor(mobile): use shared Menu for markdown long presses by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20019
* refactor(mobile): organize design system and shared components by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20043
* fix(shell): normalize Windows PATH keys in copied environments by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/19965
* perf(server): check Android SDK locations before PATH by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/19960
* perf(server): skip unchanged device host refreshes by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/19961
* perf(server): skip Windows probes for desktop-prepared environments by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/19966
* test(server): decouple compatibility fixtures from release version by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20068
* fix(client-runtime): hide pending context handoff on threads with no sent message by @maria-rcks in https://github.com/pingdotgg/t3code/pull/20033
* ci: skip jobs a pull request cannot affect by @maria-rcks in https://github.com/pingdotgg/t3code/pull/19587
* ci: cache Chromium for server test shards by @maria-rcks in https://github.com/pingdotgg/t3code/pull/19632
* ci: run typecheck inside the Build job by @maria-rcks in https://github.com/pingdotgg/t3code/pull/19633
* ci: cache pnpm packages on Blacksmith sticky disks by @maria-rcks in https://github.com/pingdotgg/t3code/pull/19634
* ci: cut per-job setup time by @maria-rcks in https://github.com/pingdotgg/t3code/pull/20044
* fix(web): settings stay compact with many connected machines by @maria-rcks in https://github.com/pingdotgg/t3code/pull/19744
* fix(dev): freeze the worktree setup lockfile by @maria-rcks in https://github.com/pingdotgg/t3code/pull/19747
* fix(server): clean up worktrees shared by subagents by @maria-rcks in https://github.com/pingdotgg/t3code/pull/19748
* fix(mobile): separate TestFlight and store release versions by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20060
* fix(server): report orphaned managed worktrees by @maria-rcks in https://github.com/pingdotgg/t3code/pull/19749
* fix(server): compact superseded history in the background by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/19435
* feat(server): t3 doctor reclaims database space by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/19436
* feat: suggest t3 doctor when the database has space to reclaim by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/19437
* fix(web): device setup lets you through with only a remote device host by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20077
* chore(mobile): remove the legacy v2 preview channel by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20084
* fix(web): folder breadcrumbs navigate to parent folders by @scratchyone in https://github.com/pingdotgg/t3code/pull/15045
* fix: command output streams live while it runs by @scratchyone in https://github.com/pingdotgg/t3code/pull/15094
* fix(mobile): code blocks get a wrap button, long ordered lists keep their numbers by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20080
* chore(deps): update Expo and Clerk SDKs by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20067
* fix(server): subagents pick up their parent's renamed worktree branch by @maria-rcks in https://github.com/pingdotgg/t3code/pull/20079
* fix(mobile): make test builds optional and preserve APK releases by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20092
* fix(server): resumed Claude subagents keep updating their own thread by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20061
* fix(desktop): agent typing in a preview tab no longer lands in the app by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/18556
* perf(web): virtualize a thread's linked pull requests by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20107
* feat(web): drag a linked pull request into the composer as a context chip by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20102
* perf(web): run the React Compiler natively instead of through Babel by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20114
* perf(web): saving the thread list cache no longer re-encodes every thread by @bompus in https://github.com/pingdotgg/t3code/pull/19915
* fix(provider-grok): Grok health checks no longer start Grok's updater by @bompus in https://github.com/pingdotgg/t3code/pull/18075
* test(server): promoting a queued message into a running Claude turn succeeds by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20065
* perf(server): expanding a wide ignored folder no longer classifies every child by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20062
* fix(mobile): worktree setup clock pauses on hidden thread screens by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20066
* perf(desktop): picture-in-picture stops re-encoding an unchanged page by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20070
* fix(mobile): a table right under a line of text renders as a table by @shivamhwp in https://github.com/pingdotgg/t3code/pull/20120
* perf(web): load project icons as one chunk instead of ~1,700 by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20147
* feat(mobile): use shared custom segmented controls by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20116
* fix(mobile): extend iPad sidebar background behind header by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20149
* refactor: prune narration and history comments by @maria-rcks in https://github.com/pingdotgg/t3code/pull/19559
* style(mobile): flatten segmented control surfaces by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20163
* fix(cli): t3 triage and prompts work from the desktop app's t3 on Windows by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20162
* fix(ios): show a sidebar toggle on the unfolded iPhone Duo in portrait by @PixPMusic in https://github.com/pingdotgg/t3code/pull/20133
* bye npm by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20148
* fix(shared): PRs built on the same PR stay in one stack under their parent by @shivamhwp in https://github.com/pingdotgg/t3code/pull/20160
* fix(web): keep running status banners on one line by @Yash-Singh1 in https://github.com/pingdotgg/t3code/pull/20194
* fix(codex): a slow but healthy Codex no longer shows as Unavailable by @shivamhwp in https://github.com/pingdotgg/t3code/pull/15945
* feat(mobile): use themed native iOS segmented controls by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20327
* fix(orchestration): queue follow-ups sent while a thread compacts by @maria-rcks in https://github.com/pingdotgg/t3code/pull/20184
* chore(deps): update Clerk SDKs and reconcile native patch by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20359
* fix(mobile): the app builds and launches again after the Expo update by @voida6 in https://github.com/pingdotgg/t3code/pull/20131
* chore(deps): update Expo SDK 58 packages and trim patches by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20389
* fix(mobile): Android fingerprint covers Expo native modules again by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20384
* fix(android): keep the split view and menus off the fold crease by @PixPMusic in https://github.com/pingdotgg/t3code/pull/19988
* fix(android): fold tracking starts late and hinge retargets keep the edge by @PixPMusic in https://github.com/pingdotgg/t3code/pull/20403
* refactor(mobile): add a device type flag for iPad and iPhone Duo UI by @mweinbach in https://github.com/pingdotgg/t3code/pull/20399
* fix(server): Windows terminal kill no longer waits on timeouts by @mweinbach in https://github.com/pingdotgg/t3code/pull/18519
* fix(mobile): sidebar toggle works on iPad and iPhone Duo by @mweinbach in https://github.com/pingdotgg/t3code/pull/20406
* chore(mobile): use upstream Enriched Markdown's wrap toggle and list fixes, plus Android long-press fixes by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20400
* fix(web): restore mobile app store links in settings by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20422
* refactor(web): move pending approvals and questions out of ChatView by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20161
* refactor(web): move the persistent terminal drawer and panel out of ChatView.tsx by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20164
* refactor(web): open and close thread terminals through one hook by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20289
* chore(lint): fail lint when the React Compiler skips a listed file by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20292
* refactor(web): let the React Compiler compile usePendingThreadRequests by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20294
* refactor(web): move the /usage-limits panel state out of ChatView by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20296
* refactor(web): move queued-message editing out of ChatView by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20304
* refactor(web): move the thread's linked pull request out of ChatView by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20308
* refactor(web): move proactive right-panel opening out of ChatView by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20309
* refactor(web): move agent-opened browser and device surfacing out of ChatView by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20312
* refactor(web): move right panel surface closing out of ChatView by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20315
* refactor(web): move worktree setup progress out of ChatView by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20316
* refactor(web): split two self-contained phases out of onSend by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20321
* fix(web): stop crashing the native React Compiler on ChatView by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20340
* perf(web): let the React Compiler compile ChatView by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20379
* perf(web): stop re-rendering the conversation on streamed tokens, typing and server pushes by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20380
* perf(client): provider status pushes keep unchanged providers identical by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20392
* refactor(web): move ChatView's keyboard shortcuts into a command map by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20393
* perf(web): the sidebar compiles with no manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20396
* perf(web): ChatComposer compiles with no manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20397
* refactor(web): move project script editing out of ChatView by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20401
* perf(web): the React Compiler compiles MessagesTimeline by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20402
* perf(web): ChatView joins the strict React Compiler list by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20418
* refactor(web): move the right panel's surface switch out of ChatView by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20421
* fix(web): a draft closed mid machine switch no longer rewrites that draft by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20442
* fix(web): every reconnect gets its own grace period before the unavailable banner by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20441
* rc/01 tooltips by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20448
* perf(web): the composer editor compiles with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20450
* perf(web): the server browser surface compiles with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20451
* perf(web): asset URL hooks compile with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20452
* perf(web): toggle groups compile with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20453
* perf(web): thread notifications compile with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20454
* perf(web): query hooks compile with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20455
* perf(web): source control action hooks compile with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20456
* perf(web): the project icon picker compiles with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20457
* perf(web): the theme editor compiles with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20458
* perf(web): panel presence keeps its retained value in state by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20459
* perf(web): useCopyToClipboard reads its options through useStableCallback by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20460
* perf(web): pairing surfaces read their URL token from lazy state by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20461
* perf(web): sidebar retained git status lives in state by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20462
* perf(web): viewed-file tracking passes its flush target instead of reading refs by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20463
* perf(web): useLiveRefresh reads its callback through useEffectEvent by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20464
* perf(web): browser viewport resize checks its source through a stable callback by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20465
* perf(web): snapshot coordinator keeps the last route target in state by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20466
* perf(web): branch toolbar label measuring reads its state through useEffectEvent by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20467
* perf(web): diff panel reads its loader and collapse defaults without refs by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20468
* perf(web): welcome wizard keeps its auto-selected computers in lazy state by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20469
* perf(web): thread actions compile without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20470
* perf(web): pull request code tab compiles, with viewed toggles read through context by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20471
* perf(web): useLocalStorage compiles with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20472
* perf(web): useTheme compiles with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20473
* perf(web): settings hooks compile with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20474
* perf(web): the queued runs control compiles with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20475
* perf(web): the browser preview view compiles with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20476
* perf(web): the command palette compiles with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20477
* perf(web): the server update action compiles with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20478
* perf(web): the attachment file preview compiles with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20479
* perf(web): the usage page compiles with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20480
* perf(web): provider update rows compile with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20481
* perf(web): useDirectoryEntries compiles with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20482
* perf(web): the file browser panel compiles with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20483
* perf(web): the sidebar update pill compiles with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20484
* perf(web): the provider updates action compiles with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20485
* perf(web): the media video player compiles with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20486
* perf(web): media actions compile with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20487
* fix(prs): typed qualifiers filter mobile PR search and sync the draft menu by @Bil0000 in https://github.com/pingdotgg/t3code/pull/19934
* perf(web): device setup compiles with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20488
* perf(web): the device panel compiles with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20489
* perf(web): the SSH password prompt compiles with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20490
* perf(web): the cloud environment connect list compiles with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20491
* perf(web): pull request actions compile with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20492
* perf(web): pull request review annotations compile with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20493
* perf(web): pull request thread links compile with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20494
* perf(web): the link pull request dialog compiles with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20495
* perf(web): GitHub token settings compile with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20496
* perf(web): GitHub account settings compile with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20497
* perf(web): source control host settings compile with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20498
* perf(web): usage provider settings compile with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20499
* perf(web): telemetry export settings compile with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20500
* perf(web): device host connection checks compile with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20501
* perf(web): project script settings compile with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20502
* perf(web): SnapShot setup dialog compile with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20503
* perf(web): notification settings compile with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20504
* perf(web): provider setup section compile with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20505
* perf(web): storage settings compile with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20506
* perf(web): diagnostics settings compile with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20507
* perf(web): device hosts settings compile with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20508
* perf(web): project settings panel compile with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20509
* perf(web): ACP session management compile with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20510
* perf(web): capture shortcut config compile with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20511
* perf(web): integrations settings compile with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20512
* perf(web): theme import dialog compile with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20513
* fix(web): an abandoned machine switch still clears its busy state by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20519
* perf(web): SnapShot settings compile with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20514
* perf(web): connections settings compile with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20515
* feat(auth): pairing grants access and T3 Connect management by default by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20432
* perf(web): resize handles compile with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20524
* perf(web): the theme color picker compiles with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20525
* perf(web): the pull request panel compiles with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20526
* perf(web): the terminal drawer compiles with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20527
* perf(web): the settings panels compile with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20528
* fix(server): background subagents keep T3 tools after the parent turn ends by @maria-rcks in https://github.com/pingdotgg/t3code/pull/19751
* fix(server): wake threads whose subagents' background work a restart cut by @maria-rcks in https://github.com/pingdotgg/t3code/pull/19750
* fix(web): the sidebar no longer crashes when a thread leaves it by @gilitos92 in https://github.com/pingdotgg/t3code/pull/20522
* fix(mobile): align iOS segmented controls with action colors by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20721
* perf(web): the pull requests page compiles with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20539
* perf(web): the legacy sidebar compiles with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20640
* perf(client): a repository identity refresh keeps unchanged projects identical by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20730
* perf(web): the new-thread handler keeps its identity across provider pushes by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20731
* perf(web): the linked pull requests panel compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20723
* perf(web): pull request markdown compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20722
* perf(web): the pull request label and reviewer pickers compile without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20719
* perf(web): the usage state hook compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20718
* perf(web): the pull request guide tab compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20716
* perf(web): the shell command block compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20714
* perf(web): the composer draft store compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20713
* perf(web): the hosted prompt link landing compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20712
* perf(web): the model picker compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20711
* perf(web): the pull request state hooks compile without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20710
* perf(web): discovered local servers compile without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20708
* perf(web): the proposed plan card compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20707
* perf(web): the pull request link hooks compile without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20705
* perf(web): the preview mini player compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20704
* perf(web): file entry icons compile without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20703
* perf(web): toasts compile without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20702
* perf(web): the thread action menu hook compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20701
* perf(web): the new thread hooks compile without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20699
* perf(web): the open-in picker compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20698
* perf(web): the file save coordinator compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20697
* perf(web): the combobox compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20696
* perf(web): the usage provider chart compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20695
* perf(web): the usage model dialog compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20694
* perf(web): update everything compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20693
* perf(web): the file preview panel compiles with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20692
* perf(web): the MCP app frame compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20691
* perf(web): main app navigation compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20690
* perf(web): project file queries compile without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20689
* perf(web): the HTML render frame compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20688
* perf(web): the sidebar update capsule compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20687
* perf(web): the terminal session hooks compile without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20686
* perf(web): the project file picker compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20685
* perf(web): the sidebar chrome compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20684
* perf(web): the file context menu hooks compile without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20683
* perf(web): the snapshot shortcut recorder compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20682
* perf(web): the pull request linking hook compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20681
* perf(web): the port discovery hooks compile without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20636
* perf(web): the new-thread link route compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20597
* perf(web): the Electron browser host compiles with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20548
* perf(web): the CSV table preview compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20680
* perf(web): the thread lineage panel compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20720
* perf(web): the open panel pull request URL hook compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20679
* perf(web): highlighted code tokens compile without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20678
* perf(web): scoped settings hooks compile without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20677
* perf(web): the HTML document frame compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20676
* perf(web): the new project hook compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20675
* perf(web): the scratch project hook compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20673
* perf(web): the expanded image dialog compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20672
* perf(web): the sidebar project groups hook compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20671
* perf(web): review file patches compile without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20670
* perf(web): the draft hero headline compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20669
* perf(web): settings project groups compile without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20668
* perf(web): the chat route layout compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20667
* perf(web): scoped model availability compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20666
* perf(web): the environment hooks compile without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20665
* perf(web): the provider settings panel compiles with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20664
* perf(web): the code block language picker compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20663
* perf(web): the right panel tabs compile with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20662
* perf(web): settings search availability compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20661
* perf(web): the editor preference hooks compile without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20660
* perf(web): the code view file reveal hook compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20659
* perf(web): the command output panel compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20658
* perf(web): the annotatable diff view compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20657
* perf(web): the chat header compiles with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20656
* perf(web): the theme library compiles with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20655
* perf(web): the chat canvas compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20654
* perf(web): useResizableWidth compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20653
* perf(web): device controls compile without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20652
* perf(web): file breadcrumbs compile with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20651
* perf(web): the changed files tree compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20650
* perf(web): the provider update dismissal hook compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20649
* perf(web): the sidebar primitives compile with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20648
* perf(web): the settings layout compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20647
* perf(web): the remote open hook compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20646
* perf(web): usePreviewBridge compiles with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20644
* perf(web): the citation chip compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20643
* perf(web): useHtmlRenderTheme compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20642
* perf(web): project content search compiles with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20641
* perf(web): the agent connect surface compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20639
* perf(web): the theme editor host compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20638
* perf(web): the first-run gate compiles with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20637
* perf(web): the settings scope context compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20635
* perf(web): the worktree base branch picker compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20634
* perf(web): the project file scripts hook compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20632
* perf(web): the diff file tree compiles with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20631
* perf(web): thread status indicators compile without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20630
* perf(web): useMediaQuery compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20629
* perf(web): the source control settings compile with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20628
* perf(web): scheduled task settings compile without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20627
* perf(web): the remove-cloned-project hook compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20626
* perf(web): resource telemetry diagnostics compile without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20625
* perf(web): the archived threads hook compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20624
* perf(web): the Connect onboarding dialog compiles with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20622
* perf(web): redacted sensitive text compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20621
* perf(web): the pull request stack hook compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20620
* perf(web): the resource telemetry hook compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20619
* perf(web): the provider settings form compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20618
* perf(web): the provider models section compiles with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20617
* perf(web): the CLI authorize surface compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20616
* perf(web): the pull request thread dialog compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20615
* perf(web): the assistant citation target hook compiles with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20614
* perf(web): the device state hooks compile without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20613
* perf(web): the provider accent color picker compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20612
* perf(web): the T3 Connect account pages hook compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20611
* perf(web): the session scope hooks compile without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20610
* perf(web): the provider update notification compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20609
* perf(web): the open-source notices panel compiles with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20608
* perf(web): the project icon picker compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20607
* perf(web): the project scans hook compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20606
* perf(web): the thread context drop hook compiles with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20605
* perf(web): the local provider update groups compile without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20604
* perf(web): thread find navigation compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20603
* perf(web): the font previews compile with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20601
* perf(web): project actions settings compile without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20602
* perf(web): the thread find bar compiles with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20600
* perf(web): the project scripts control compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20599
* perf(web): keybindings settings compile without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20598
* perf(web): the model picker sidebar compiles with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20596
* perf(web): the composer path search hook compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20595
* perf(web): the font picker compiles with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20594
* perf(web): the project clone toasts compile without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20593
* perf(web): the pending user input panel compiles with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20592
* perf(web): useTurnDiffSummaries compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20591
* perf(web): the provider update pill compiles with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20590
* perf(web): the no-projects hero compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20589
* perf(web): useActiveThreadRef compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20588
* perf(web): the custom model editor compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20586
* perf(web): the root route compiles with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20585
* perf(web): the diff worker pool provider compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20584
* perf(web): the CLI command settings row compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20583
* perf(web): the composer banner stack compiles with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20582
* perf(web): the primary session state hook compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20581
* perf(web): the index route compiles with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20580
* perf(web): the command palette results compile without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20579
* perf(web): the add provider dialog compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20578
* perf(web): useOrchestrationCommand compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20576
* perf(web): the environment selector compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20575
* perf(web): default theme adoption compiles with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20574
* perf(web): useAtomQueryRunner compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20573
* perf(web): the env mode selector compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20572
* perf(web): highlighted search lines compile without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20571
* perf(web): the server update banner compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20570
* perf(web): the app sidebar layout compiles with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20569
* perf(web): useAtomCommand compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20568
* perf(web): the branch toolbar selector compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20567
* perf(web): the composer state hooks compile without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20566
* perf(web): the escape-to-go-back hook compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20564
* perf(web): the guide tour compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20563
* perf(web): the onboarding completion hook compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20561
* perf(web): the guide stop compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20560
* perf(web): the prompt link page compiles with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20559
* perf(web): the hosted browser webview compiles with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20558
* perf(web): the branch picker compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20557
* perf(web): useStableCallback compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20556
* perf(web): the find reveal ref compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20555
* perf(web): the primary cloud link hook compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20554
* perf(web): the project action editor resets its form without an effect by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20550
* perf(web): the zoomable image compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20549
* perf(web): the PR guide diff loader compiles with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20543
* perf(web): the traits picker compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20540
* perf(web): the managed relay hooks compile without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20552
* perf(web): the guide excerpt compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20553
* perf(web): AnimatedHeight compiles with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20562
* perf(web): the browser favicon store compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20546
* perf(web): the browser surface slot compiles with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20542
* perf(web): the link opener hook compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20541
* perf(web): the guide file diff compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20544
* perf(web): the settings sidebar compiles with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20623
* perf(web): Codex setup compiles with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20674
* perf(web): chat markdown compiles with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20715
* perf(web): the device stream view compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20645
* perf(web): the load-balancing hook compiles with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20565
* fix(web): settings search keeps the clamped highlight when results shrink by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20764
* perf(web): the provider update launch notification compiles with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20577
* perf(web): the model picker compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20706
* feat(web): step reasoning effort from the keyboard by @Bil0000 in https://github.com/pingdotgg/t3code/pull/19928
* perf(web): the item inspector compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20545
* fix(mobile): dev pairing link no longer opens Home inside a sheet by @PixPMusic in https://github.com/pingdotgg/t3code/pull/20130
* fix(server): webhook request values reach the agent marked as request data by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20447
* refactor(client-runtime): decide learned routes and session reuse in one place by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20445
* refactor(web): thread find compiles under the strict React Compiler rules by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20772
* test(web): chat markdown, timeline, and diff reveal tests pass the strict compiler rules by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20770
* perf(web): Git actions control compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20777
* refactor(web): the theme search section compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20778
* fix(server): keep sensitive values out of settings reads, startup logs and preview snapshots by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20446
* refactor(web): the thread pull requests panel keeps its caching without "use memo" hooks by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20740
* refactor(web): scoped settings stay cached without "use memo" by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20767
* refactor(web): settings search items stay cached without "use memo" by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20771
* refactor(web): the file browser keeps its caching without "use memo" hooks by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20784
* refactor(web): the pull request stack hook keeps its caching without "use memo" by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20741
* refactor(web): the pull request thread dialog keeps its caching without "use memo" hooks by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20742
* refactor(web): the MCP app frame keeps its caching without "use memo" hooks by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20759
* refactor(web): the changed files tree keeps its caching without "use memo" hooks by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20766
* refactor(web): sidebar resize options stay cached without "use memo" by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20776
* refactor(web): paginated branches keep their caching without "use memo" by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20743
* refactor(web): pull request markdown keeps its caching without "use memo" hooks by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20744
* refactor(web): the pull request detail panel keeps its caching with fewer "use memo" hooks by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20761
* refactor(web): the open panel pull request URL keeps its caching without "use memo" by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20768
* refactor(web): the command output panel keeps its caching without "use memo" hooks by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20763
* fix(client-runtime): the agents pill counts background agents from earlier turns by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20785
* refactor(web): the diff panel keeps its caching without "use memo" hooks by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20745
* refactor(web): the composer builds model options without a "use memo" hook by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20780
* refactor(web): the preview bridge keeps its stable thread ref without "use memo" hooks by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20746
* refactor(web): the pull request code tab keeps its caching with one "use memo" hook by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20773
* refactor(web): provider models keep their caching without "use memo" by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20775
* refactor(web): the thread lineage panel keeps its caching without "use memo" hooks by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20789
* refactor(web): the attachment preview keeps its caching without "use memo" hooks by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20757
* refactor(web): the pending user input panel keeps its caching without "use memo" hooks by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20762
* refactor(web): the queued runs control keeps its caching without "use memo" hooks by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20779
* refactor(web): the open-in picker keeps its caching without "use memo" hooks by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20758
* refactor(web): highlighted tokens keep their caching without "use memo" hooks by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20760
* refactor(web): merged settings stay cached without "use memo" by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20765
* fix(server): a running Claude workflow member shows its answer so far by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20786
* refactor(web): the keybindings panel keeps its caching without "use memo" hooks by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20782
* refactor(web): linked pull request status keeps its caching without "use memo" hooks by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20781
* refactor(web): the new-thread hook keeps its caching without "use memo" by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20769
* refactor(web): review file patches keep their caching without "use memo" hooks by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20788
* chore(web): React compiler rules apply to every web file by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20791
* refactor(server): resolve project and worktree folders in one place by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20449
* refactor(server): route git config through one env helper and end option parsing before names by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20440
* test(web): React tests run compiled in a real browser by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20797
* fix(android): menu icons take taps by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20802
* fix(android): a composer focused through an app switch stays above the keyboard by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20803
* refactor(web): the usage chart keeps its caching without "use memo" by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20792
* refactor(web): pull request detail keeps its caching without "use memo" by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20811
* refactor(web): the legacy sidebar keeps its caching without "use memo" by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20793
* refactor(web): turn diff summaries keep their caching without "use memo" by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20794
* refactor(web): the pull requests page keeps its caching without "use memo" by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20820
* refactor(web): the terminal drawer keeps its caching without "use memo" by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20799
* refactor(web): the model picker keeps its caching without "use memo" by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20815
* refactor(web): pull request code tab keeps its caching without "use memo" by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20816
* refactor(web): find reveal refs stay cached without "use memo" by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20818
* refactor(web): the branch selector keeps its caching without "use memo" by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20822
* refactor(web): the guide excerpt keeps its caching without "use memo" by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20798
* refactor(web): chat composer keeps its caching without "use memo" by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20834
* refactor(web): the usage page keeps its caching without "use memo" by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20807
* refactor(web): the hosted browser webview keeps its caching without "use memo" by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20824
* refactor(web): the command palette provider lookup keeps its caching without "use memo" by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20827
* chore(web): lint rejects "use memo" directives by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20843
* perf(web): relative "checked" labels re-render only when their text changes by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20819
* perf(web): toggling a client setting no longer re-renders every settings row by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20830
* perf(web): typing in the ACP registry search no longer re-renders every result row by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20817
* perf(web): searching keybindings only renders rows entering or leaving the filter by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20840
* perf(web): unchanged model picker rows skip re-rendering while searching by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20838
* perf(web): router updates no longer re-render thread route consumers by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20837
* perf(web): a minute tick no longer re-renders every sidebar thread row by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20814
* test(web): jsdom-leftovers tests run in a real browser by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20862
* test(web): hook-harness tests run in a real browser by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20866
* test(web): misc-b tests run in a real browser by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20869
* test(web): settings tests run in a real browser by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20872
* test(web): misc-a tests run in a real browser by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20868
* test(web): chat tests run in a real browser by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20870
* test(web): browser tests from different checkouts no longer fight over one port by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20875
* fix(web): chat view no longer renders twice per update by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20847
* perf(web): markdown replies no longer re-render on reconnects and config pushes by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20852
* perf(web): provider status pushes no longer re-render every timeline row by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20854
* perf(client): a reconnect snapshot keeps unchanged skills and providers identical by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20855
* perf(web): a client setting write only re-renders readers whose value changed by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20848
* perf(web): right panel tabs no longer all re-render on unrelated chat updates by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20853
* perf(web): opening chat and usage dialogs no longer re-renders the whole page by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20859
* perf(web): typing in form dialogs no longer re-renders the dialog chrome by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20842
* fix(web): a project action's error belongs to the request that opened it by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20891
* test(web): the open-in picker test waits for the menu to close by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20892
* perf(web): opening an image preview no longer re-renders the chat view by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20845
* perf(web): another thread streaming no longer re-renders the app root and thread panels by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20823
* perf(client): equal query refetches no longer re-render PR rows by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20850
* perf(client): provider status pushes no longer re-render environment presentation consumers by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20821
* perf(web): a provider status push no longer re-renders every provider card and model row by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20851
* test(web): onboarding and usage tests run in a real browser by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20902
* test(web): pr-and-diff tests run in a real browser by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20901
* test(web): chat markdown and timeline tests run in a real browser by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20905
* test(web): provider, usage and relationship tests run in a real browser by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20914
* perf(web): the open thread's chat chrome no longer re-renders on every streaming tick by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20860
* test(web): every React test runs in a real browser by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20944
* fix(release): release tests install Chromium for the web browser tests by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20934…
github-actions Bot added a commit to davidvanderklay/t3code-flake that referenced this pull request Oct 21, 2026
## What's Changed
* feat(web): open html render images in the image viewer by @maria-rcks in https://github.com/pingdotgg/t3code/pull/20036
* refactor(github): all GitHub GraphQL on effect/graphql, one request policy for REST and GraphQL by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/19224
* refactor(mobile): share settings action rows by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/18529
* fix(mobile): standardize shared button states and adoption by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/18530
* refactor(mobile): adopt shared controls and add component catalog by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/18541
* feat(mobile): map native hosts to the app theme by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/18567
* refactor(mobile): share theme mapping across Android controls by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/19217
* refactor(mobile): expose shared icon button and search field APIs by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/19264
* refactor(mobile): expose native menus through a shared Menu API by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/19265
* refactor(mobile): centralize dialog and sheet APIs by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/19266
* refactor(mobile): keep segmented controls native by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/18532
* refactor(mobile): expose app bar toolbar and FAB APIs by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/19951
* feat(mobile): share actionable toasts and native progress by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/19952
* refactor(mobile): adopt shared text shape and motion tokens by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/19953
* feat(mobile): expose themed native Android app bars by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/19994
* refactor(mobile): adopt native Android screen headers by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/19995
* refactor(mobile): finish shared control token adoption by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/19996
* fix(mobile): route alerts through the themed dialog presenter by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/19997
* refactor(mobile): adopt shared alerts in settings and connections by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/19998
* refactor(mobile): adopt shared alerts in thread and PR screens by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/19999
* refactor(mobile): finish shared alert adoption by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20000
* refactor(mobile): adopt shared loading indicators across screens by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20001
* refactor(mobile): unify navigation and floating toolbar APIs by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20002
* refactor(mobile): use native iOS sliders by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20016
* refactor(mobile): use shared Menu for markdown long presses by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20019
* refactor(mobile): organize design system and shared components by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20043
* fix(shell): normalize Windows PATH keys in copied environments by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/19965
* perf(server): check Android SDK locations before PATH by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/19960
* perf(server): skip unchanged device host refreshes by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/19961
* perf(server): skip Windows probes for desktop-prepared environments by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/19966
* test(server): decouple compatibility fixtures from release version by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20068
* fix(client-runtime): hide pending context handoff on threads with no sent message by @maria-rcks in https://github.com/pingdotgg/t3code/pull/20033
* ci: skip jobs a pull request cannot affect by @maria-rcks in https://github.com/pingdotgg/t3code/pull/19587
* ci: cache Chromium for server test shards by @maria-rcks in https://github.com/pingdotgg/t3code/pull/19632
* ci: run typecheck inside the Build job by @maria-rcks in https://github.com/pingdotgg/t3code/pull/19633
* ci: cache pnpm packages on Blacksmith sticky disks by @maria-rcks in https://github.com/pingdotgg/t3code/pull/19634
* ci: cut per-job setup time by @maria-rcks in https://github.com/pingdotgg/t3code/pull/20044
* fix(web): settings stay compact with many connected machines by @maria-rcks in https://github.com/pingdotgg/t3code/pull/19744
* fix(dev): freeze the worktree setup lockfile by @maria-rcks in https://github.com/pingdotgg/t3code/pull/19747
* fix(server): clean up worktrees shared by subagents by @maria-rcks in https://github.com/pingdotgg/t3code/pull/19748
* fix(mobile): separate TestFlight and store release versions by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20060
* fix(server): report orphaned managed worktrees by @maria-rcks in https://github.com/pingdotgg/t3code/pull/19749
* fix(server): compact superseded history in the background by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/19435
* feat(server): t3 doctor reclaims database space by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/19436
* feat: suggest t3 doctor when the database has space to reclaim by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/19437
* fix(web): device setup lets you through with only a remote device host by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20077
* chore(mobile): remove the legacy v2 preview channel by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20084
* fix(web): folder breadcrumbs navigate to parent folders by @scratchyone in https://github.com/pingdotgg/t3code/pull/15045
* fix: command output streams live while it runs by @scratchyone in https://github.com/pingdotgg/t3code/pull/15094
* fix(mobile): code blocks get a wrap button, long ordered lists keep their numbers by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20080
* chore(deps): update Expo and Clerk SDKs by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20067
* fix(server): subagents pick up their parent's renamed worktree branch by @maria-rcks in https://github.com/pingdotgg/t3code/pull/20079
* fix(mobile): make test builds optional and preserve APK releases by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20092
* fix(server): resumed Claude subagents keep updating their own thread by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20061
* fix(desktop): agent typing in a preview tab no longer lands in the app by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/18556
* perf(web): virtualize a thread's linked pull requests by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20107
* feat(web): drag a linked pull request into the composer as a context chip by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20102
* perf(web): run the React Compiler natively instead of through Babel by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20114
* perf(web): saving the thread list cache no longer re-encodes every thread by @bompus in https://github.com/pingdotgg/t3code/pull/19915
* fix(provider-grok): Grok health checks no longer start Grok's updater by @bompus in https://github.com/pingdotgg/t3code/pull/18075
* test(server): promoting a queued message into a running Claude turn succeeds by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20065
* perf(server): expanding a wide ignored folder no longer classifies every child by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20062
* fix(mobile): worktree setup clock pauses on hidden thread screens by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20066
* perf(desktop): picture-in-picture stops re-encoding an unchanged page by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20070
* fix(mobile): a table right under a line of text renders as a table by @shivamhwp in https://github.com/pingdotgg/t3code/pull/20120
* perf(web): load project icons as one chunk instead of ~1,700 by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20147
* feat(mobile): use shared custom segmented controls by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20116
* fix(mobile): extend iPad sidebar background behind header by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20149
* refactor: prune narration and history comments by @maria-rcks in https://github.com/pingdotgg/t3code/pull/19559
* style(mobile): flatten segmented control surfaces by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20163
* fix(cli): t3 triage and prompts work from the desktop app's t3 on Windows by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20162
* fix(ios): show a sidebar toggle on the unfolded iPhone Duo in portrait by @PixPMusic in https://github.com/pingdotgg/t3code/pull/20133
* bye npm by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20148
* fix(shared): PRs built on the same PR stay in one stack under their parent by @shivamhwp in https://github.com/pingdotgg/t3code/pull/20160
* fix(web): keep running status banners on one line by @Yash-Singh1 in https://github.com/pingdotgg/t3code/pull/20194
* fix(codex): a slow but healthy Codex no longer shows as Unavailable by @shivamhwp in https://github.com/pingdotgg/t3code/pull/15945
* feat(mobile): use themed native iOS segmented controls by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20327
* fix(orchestration): queue follow-ups sent while a thread compacts by @maria-rcks in https://github.com/pingdotgg/t3code/pull/20184
* chore(deps): update Clerk SDKs and reconcile native patch by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20359
* fix(mobile): the app builds and launches again after the Expo update by @voida6 in https://github.com/pingdotgg/t3code/pull/20131
* chore(deps): update Expo SDK 58 packages and trim patches by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20389
* fix(mobile): Android fingerprint covers Expo native modules again by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20384
* fix(android): keep the split view and menus off the fold crease by @PixPMusic in https://github.com/pingdotgg/t3code/pull/19988
* fix(android): fold tracking starts late and hinge retargets keep the edge by @PixPMusic in https://github.com/pingdotgg/t3code/pull/20403
* refactor(mobile): add a device type flag for iPad and iPhone Duo UI by @mweinbach in https://github.com/pingdotgg/t3code/pull/20399
* fix(server): Windows terminal kill no longer waits on timeouts by @mweinbach in https://github.com/pingdotgg/t3code/pull/18519
* fix(mobile): sidebar toggle works on iPad and iPhone Duo by @mweinbach in https://github.com/pingdotgg/t3code/pull/20406
* chore(mobile): use upstream Enriched Markdown's wrap toggle and list fixes, plus Android long-press fixes by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20400
* fix(web): restore mobile app store links in settings by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20422
* refactor(web): move pending approvals and questions out of ChatView by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20161
* refactor(web): move the persistent terminal drawer and panel out of ChatView.tsx by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20164
* refactor(web): open and close thread terminals through one hook by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20289
* chore(lint): fail lint when the React Compiler skips a listed file by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20292
* refactor(web): let the React Compiler compile usePendingThreadRequests by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20294
* refactor(web): move the /usage-limits panel state out of ChatView by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20296
* refactor(web): move queued-message editing out of ChatView by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20304
* refactor(web): move the thread's linked pull request out of ChatView by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20308
* refactor(web): move proactive right-panel opening out of ChatView by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20309
* refactor(web): move agent-opened browser and device surfacing out of ChatView by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20312
* refactor(web): move right panel surface closing out of ChatView by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20315
* refactor(web): move worktree setup progress out of ChatView by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20316
* refactor(web): split two self-contained phases out of onSend by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20321
* fix(web): stop crashing the native React Compiler on ChatView by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20340
* perf(web): let the React Compiler compile ChatView by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20379
* perf(web): stop re-rendering the conversation on streamed tokens, typing and server pushes by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20380
* perf(client): provider status pushes keep unchanged providers identical by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20392
* refactor(web): move ChatView's keyboard shortcuts into a command map by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20393
* perf(web): the sidebar compiles with no manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20396
* perf(web): ChatComposer compiles with no manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20397
* refactor(web): move project script editing out of ChatView by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20401
* perf(web): the React Compiler compiles MessagesTimeline by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20402
* perf(web): ChatView joins the strict React Compiler list by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20418
* refactor(web): move the right panel's surface switch out of ChatView by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20421
* fix(web): a draft closed mid machine switch no longer rewrites that draft by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20442
* fix(web): every reconnect gets its own grace period before the unavailable banner by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20441
* rc/01 tooltips by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20448
* perf(web): the composer editor compiles with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20450
* perf(web): the server browser surface compiles with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20451
* perf(web): asset URL hooks compile with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20452
* perf(web): toggle groups compile with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20453
* perf(web): thread notifications compile with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20454
* perf(web): query hooks compile with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20455
* perf(web): source control action hooks compile with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20456
* perf(web): the project icon picker compiles with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20457
* perf(web): the theme editor compiles with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20458
* perf(web): panel presence keeps its retained value in state by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20459
* perf(web): useCopyToClipboard reads its options through useStableCallback by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20460
* perf(web): pairing surfaces read their URL token from lazy state by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20461
* perf(web): sidebar retained git status lives in state by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20462
* perf(web): viewed-file tracking passes its flush target instead of reading refs by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20463
* perf(web): useLiveRefresh reads its callback through useEffectEvent by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20464
* perf(web): browser viewport resize checks its source through a stable callback by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20465
* perf(web): snapshot coordinator keeps the last route target in state by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20466
* perf(web): branch toolbar label measuring reads its state through useEffectEvent by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20467
* perf(web): diff panel reads its loader and collapse defaults without refs by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20468
* perf(web): welcome wizard keeps its auto-selected computers in lazy state by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20469
* perf(web): thread actions compile without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20470
* perf(web): pull request code tab compiles, with viewed toggles read through context by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20471
* perf(web): useLocalStorage compiles with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20472
* perf(web): useTheme compiles with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20473
* perf(web): settings hooks compile with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20474
* perf(web): the queued runs control compiles with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20475
* perf(web): the browser preview view compiles with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20476
* perf(web): the command palette compiles with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20477
* perf(web): the server update action compiles with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20478
* perf(web): the attachment file preview compiles with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20479
* perf(web): the usage page compiles with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20480
* perf(web): provider update rows compile with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20481
* perf(web): useDirectoryEntries compiles with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20482
* perf(web): the file browser panel compiles with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20483
* perf(web): the sidebar update pill compiles with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20484
* perf(web): the provider updates action compiles with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20485
* perf(web): the media video player compiles with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20486
* perf(web): media actions compile with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20487
* fix(prs): typed qualifiers filter mobile PR search and sync the draft menu by @Bil0000 in https://github.com/pingdotgg/t3code/pull/19934
* perf(web): device setup compiles with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20488
* perf(web): the device panel compiles with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20489
* perf(web): the SSH password prompt compiles with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20490
* perf(web): the cloud environment connect list compiles with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20491
* perf(web): pull request actions compile with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20492
* perf(web): pull request review annotations compile with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20493
* perf(web): pull request thread links compile with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20494
* perf(web): the link pull request dialog compiles with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20495
* perf(web): GitHub token settings compile with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20496
* perf(web): GitHub account settings compile with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20497
* perf(web): source control host settings compile with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20498
* perf(web): usage provider settings compile with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20499
* perf(web): telemetry export settings compile with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20500
* perf(web): device host connection checks compile with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20501
* perf(web): project script settings compile with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20502
* perf(web): SnapShot setup dialog compile with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20503
* perf(web): notification settings compile with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20504
* perf(web): provider setup section compile with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20505
* perf(web): storage settings compile with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20506
* perf(web): diagnostics settings compile with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20507
* perf(web): device hosts settings compile with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20508
* perf(web): project settings panel compile with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20509
* perf(web): ACP session management compile with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20510
* perf(web): capture shortcut config compile with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20511
* perf(web): integrations settings compile with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20512
* perf(web): theme import dialog compile with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20513
* fix(web): an abandoned machine switch still clears its busy state by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20519
* perf(web): SnapShot settings compile with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20514
* perf(web): connections settings compile with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20515
* feat(auth): pairing grants access and T3 Connect management by default by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20432
* perf(web): resize handles compile with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20524
* perf(web): the theme color picker compiles with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20525
* perf(web): the pull request panel compiles with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20526
* perf(web): the terminal drawer compiles with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20527
* perf(web): the settings panels compile with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20528
* fix(server): background subagents keep T3 tools after the parent turn ends by @maria-rcks in https://github.com/pingdotgg/t3code/pull/19751
* fix(server): wake threads whose subagents' background work a restart cut by @maria-rcks in https://github.com/pingdotgg/t3code/pull/19750
* fix(web): the sidebar no longer crashes when a thread leaves it by @gilitos92 in https://github.com/pingdotgg/t3code/pull/20522
* fix(mobile): align iOS segmented controls with action colors by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20721
* perf(web): the pull requests page compiles with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20539
* perf(web): the legacy sidebar compiles with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20640
* perf(client): a repository identity refresh keeps unchanged projects identical by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20730
* perf(web): the new-thread handler keeps its identity across provider pushes by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20731
* perf(web): the linked pull requests panel compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20723
* perf(web): pull request markdown compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20722
* perf(web): the pull request label and reviewer pickers compile without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20719
* perf(web): the usage state hook compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20718
* perf(web): the pull request guide tab compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20716
* perf(web): the shell command block compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20714
* perf(web): the composer draft store compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20713
* perf(web): the hosted prompt link landing compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20712
* perf(web): the model picker compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20711
* perf(web): the pull request state hooks compile without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20710
* perf(web): discovered local servers compile without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20708
* perf(web): the proposed plan card compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20707
* perf(web): the pull request link hooks compile without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20705
* perf(web): the preview mini player compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20704
* perf(web): file entry icons compile without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20703
* perf(web): toasts compile without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20702
* perf(web): the thread action menu hook compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20701
* perf(web): the new thread hooks compile without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20699
* perf(web): the open-in picker compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20698
* perf(web): the file save coordinator compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20697
* perf(web): the combobox compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20696
* perf(web): the usage provider chart compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20695
* perf(web): the usage model dialog compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20694
* perf(web): update everything compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20693
* perf(web): the file preview panel compiles with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20692
* perf(web): the MCP app frame compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20691
* perf(web): main app navigation compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20690
* perf(web): project file queries compile without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20689
* perf(web): the HTML render frame compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20688
* perf(web): the sidebar update capsule compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20687
* perf(web): the terminal session hooks compile without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20686
* perf(web): the project file picker compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20685
* perf(web): the sidebar chrome compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20684
* perf(web): the file context menu hooks compile without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20683
* perf(web): the snapshot shortcut recorder compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20682
* perf(web): the pull request linking hook compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20681
* perf(web): the port discovery hooks compile without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20636
* perf(web): the new-thread link route compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20597
* perf(web): the Electron browser host compiles with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20548
* perf(web): the CSV table preview compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20680
* perf(web): the thread lineage panel compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20720
* perf(web): the open panel pull request URL hook compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20679
* perf(web): highlighted code tokens compile without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20678
* perf(web): scoped settings hooks compile without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20677
* perf(web): the HTML document frame compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20676
* perf(web): the new project hook compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20675
* perf(web): the scratch project hook compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20673
* perf(web): the expanded image dialog compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20672
* perf(web): the sidebar project groups hook compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20671
* perf(web): review file patches compile without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20670
* perf(web): the draft hero headline compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20669
* perf(web): settings project groups compile without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20668
* perf(web): the chat route layout compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20667
* perf(web): scoped model availability compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20666
* perf(web): the environment hooks compile without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20665
* perf(web): the provider settings panel compiles with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20664
* perf(web): the code block language picker compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20663
* perf(web): the right panel tabs compile with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20662
* perf(web): settings search availability compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20661
* perf(web): the editor preference hooks compile without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20660
* perf(web): the code view file reveal hook compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20659
* perf(web): the command output panel compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20658
* perf(web): the annotatable diff view compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20657
* perf(web): the chat header compiles with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20656
* perf(web): the theme library compiles with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20655
* perf(web): the chat canvas compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20654
* perf(web): useResizableWidth compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20653
* perf(web): device controls compile without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20652
* perf(web): file breadcrumbs compile with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20651
* perf(web): the changed files tree compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20650
* perf(web): the provider update dismissal hook compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20649
* perf(web): the sidebar primitives compile with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20648
* perf(web): the settings layout compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20647
* perf(web): the remote open hook compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20646
* perf(web): usePreviewBridge compiles with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20644
* perf(web): the citation chip compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20643
* perf(web): useHtmlRenderTheme compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20642
* perf(web): project content search compiles with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20641
* perf(web): the agent connect surface compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20639
* perf(web): the theme editor host compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20638
* perf(web): the first-run gate compiles with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20637
* perf(web): the settings scope context compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20635
* perf(web): the worktree base branch picker compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20634
* perf(web): the project file scripts hook compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20632
* perf(web): the diff file tree compiles with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20631
* perf(web): thread status indicators compile without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20630
* perf(web): useMediaQuery compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20629
* perf(web): the source control settings compile with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20628
* perf(web): scheduled task settings compile without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20627
* perf(web): the remove-cloned-project hook compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20626
* perf(web): resource telemetry diagnostics compile without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20625
* perf(web): the archived threads hook compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20624
* perf(web): the Connect onboarding dialog compiles with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20622
* perf(web): redacted sensitive text compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20621
* perf(web): the pull request stack hook compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20620
* perf(web): the resource telemetry hook compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20619
* perf(web): the provider settings form compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20618
* perf(web): the provider models section compiles with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20617
* perf(web): the CLI authorize surface compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20616
* perf(web): the pull request thread dialog compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20615
* perf(web): the assistant citation target hook compiles with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20614
* perf(web): the device state hooks compile without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20613
* perf(web): the provider accent color picker compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20612
* perf(web): the T3 Connect account pages hook compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20611
* perf(web): the session scope hooks compile without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20610
* perf(web): the provider update notification compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20609
* perf(web): the open-source notices panel compiles with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20608
* perf(web): the project icon picker compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20607
* perf(web): the project scans hook compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20606
* perf(web): the thread context drop hook compiles with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20605
* perf(web): the local provider update groups compile without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20604
* perf(web): thread find navigation compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20603
* perf(web): the font previews compile with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20601
* perf(web): project actions settings compile without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20602
* perf(web): the thread find bar compiles with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20600
* perf(web): the project scripts control compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20599
* perf(web): keybindings settings compile without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20598
* perf(web): the model picker sidebar compiles with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20596
* perf(web): the composer path search hook compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20595
* perf(web): the font picker compiles with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20594
* perf(web): the project clone toasts compile without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20593
* perf(web): the pending user input panel compiles with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20592
* perf(web): useTurnDiffSummaries compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20591
* perf(web): the provider update pill compiles with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20590
* perf(web): the no-projects hero compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20589
* perf(web): useActiveThreadRef compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20588
* perf(web): the custom model editor compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20586
* perf(web): the root route compiles with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20585
* perf(web): the diff worker pool provider compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20584
* perf(web): the CLI command settings row compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20583
* perf(web): the composer banner stack compiles with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20582
* perf(web): the primary session state hook compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20581
* perf(web): the index route compiles with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20580
* perf(web): the command palette results compile without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20579
* perf(web): the add provider dialog compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20578
* perf(web): useOrchestrationCommand compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20576
* perf(web): the environment selector compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20575
* perf(web): default theme adoption compiles with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20574
* perf(web): useAtomQueryRunner compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20573
* perf(web): the env mode selector compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20572
* perf(web): highlighted search lines compile without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20571
* perf(web): the server update banner compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20570
* perf(web): the app sidebar layout compiles with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20569
* perf(web): useAtomCommand compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20568
* perf(web): the branch toolbar selector compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20567
* perf(web): the composer state hooks compile without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20566
* perf(web): the escape-to-go-back hook compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20564
* perf(web): the guide tour compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20563
* perf(web): the onboarding completion hook compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20561
* perf(web): the guide stop compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20560
* perf(web): the prompt link page compiles with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20559
* perf(web): the hosted browser webview compiles with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20558
* perf(web): the branch picker compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20557
* perf(web): useStableCallback compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20556
* perf(web): the find reveal ref compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20555
* perf(web): the primary cloud link hook compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20554
* perf(web): the project action editor resets its form without an effect by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20550
* perf(web): the zoomable image compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20549
* perf(web): the PR guide diff loader compiles with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20543
* perf(web): the traits picker compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20540
* perf(web): the managed relay hooks compile without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20552
* perf(web): the guide excerpt compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20553
* perf(web): AnimatedHeight compiles with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20562
* perf(web): the browser favicon store compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20546
* perf(web): the browser surface slot compiles with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20542
* perf(web): the link opener hook compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20541
* perf(web): the guide file diff compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20544
* perf(web): the settings sidebar compiles with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20623
* perf(web): Codex setup compiles with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20674
* perf(web): chat markdown compiles with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20715
* perf(web): the device stream view compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20645
* perf(web): the load-balancing hook compiles with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20565
* fix(web): settings search keeps the clamped highlight when results shrink by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20764
* perf(web): the provider update launch notification compiles with the React Compiler by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20577
* perf(web): the model picker compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20706
* feat(web): step reasoning effort from the keyboard by @Bil0000 in https://github.com/pingdotgg/t3code/pull/19928
* perf(web): the item inspector compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20545
* fix(mobile): dev pairing link no longer opens Home inside a sheet by @PixPMusic in https://github.com/pingdotgg/t3code/pull/20130
* fix(server): webhook request values reach the agent marked as request data by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20447
* refactor(client-runtime): decide learned routes and session reuse in one place by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20445
* refactor(web): thread find compiles under the strict React Compiler rules by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20772
* test(web): chat markdown, timeline, and diff reveal tests pass the strict compiler rules by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20770
* perf(web): Git actions control compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20777
* refactor(web): the theme search section compiles without manual memoization by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20778
* fix(server): keep sensitive values out of settings reads, startup logs and preview snapshots by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20446
* refactor(web): the thread pull requests panel keeps its caching without "use memo" hooks by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20740
* refactor(web): scoped settings stay cached without "use memo" by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20767
* refactor(web): settings search items stay cached without "use memo" by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20771
* refactor(web): the file browser keeps its caching without "use memo" hooks by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20784
* refactor(web): the pull request stack hook keeps its caching without "use memo" by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20741
* refactor(web): the pull request thread dialog keeps its caching without "use memo" hooks by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20742
* refactor(web): the MCP app frame keeps its caching without "use memo" hooks by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20759
* refactor(web): the changed files tree keeps its caching without "use memo" hooks by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20766
* refactor(web): sidebar resize options stay cached without "use memo" by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20776
* refactor(web): paginated branches keep their caching without "use memo" by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20743
* refactor(web): pull request markdown keeps its caching without "use memo" hooks by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20744
* refactor(web): the pull request detail panel keeps its caching with fewer "use memo" hooks by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20761
* refactor(web): the open panel pull request URL keeps its caching without "use memo" by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20768
* refactor(web): the command output panel keeps its caching without "use memo" hooks by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20763
* fix(client-runtime): the agents pill counts background agents from earlier turns by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20785
* refactor(web): the diff panel keeps its caching without "use memo" hooks by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20745
* refactor(web): the composer builds model options without a "use memo" hook by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20780
* refactor(web): the preview bridge keeps its stable thread ref without "use memo" hooks by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20746
* refactor(web): the pull request code tab keeps its caching with one "use memo" hook by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20773
* refactor(web): provider models keep their caching without "use memo" by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20775
* refactor(web): the thread lineage panel keeps its caching without "use memo" hooks by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20789
* refactor(web): the attachment preview keeps its caching without "use memo" hooks by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20757
* refactor(web): the pending user input panel keeps its caching without "use memo" hooks by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20762
* refactor(web): the queued runs control keeps its caching without "use memo" hooks by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20779
* refactor(web): the open-in picker keeps its caching without "use memo" hooks by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20758
* refactor(web): highlighted tokens keep their caching without "use memo" hooks by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20760
* refactor(web): merged settings stay cached without "use memo" by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20765
* fix(server): a running Claude workflow member shows its answer so far by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20786
* refactor(web): the keybindings panel keeps its caching without "use memo" hooks by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20782
* refactor(web): linked pull request status keeps its caching without "use memo" hooks by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20781
* refactor(web): the new-thread hook keeps its caching without "use memo" by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20769
* refactor(web): review file patches keep their caching without "use memo" hooks by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20788
* chore(web): React compiler rules apply to every web file by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20791
* refactor(server): resolve project and worktree folders in one place by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20449
* refactor(server): route git config through one env helper and end option parsing before names by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20440
* test(web): React tests run compiled in a real browser by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20797
* fix(android): menu icons take taps by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20802
* fix(android): a composer focused through an app switch stays above the keyboard by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20803
* refactor(web): the usage chart keeps its caching without "use memo" by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20792
* refactor(web): pull request detail keeps its caching without "use memo" by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20811
* refactor(web): the legacy sidebar keeps its caching without "use memo" by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20793
* refactor(web): turn diff summaries keep their caching without "use memo" by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20794
* refactor(web): the pull requests page keeps its caching without "use memo" by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20820
* refactor(web): the terminal drawer keeps its caching without "use memo" by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20799
* refactor(web): the model picker keeps its caching without "use memo" by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20815
* refactor(web): pull request code tab keeps its caching without "use memo" by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20816
* refactor(web): find reveal refs stay cached without "use memo" by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20818
* refactor(web): the branch selector keeps its caching without "use memo" by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20822
* refactor(web): the guide excerpt keeps its caching without "use memo" by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20798
* refactor(web): chat composer keeps its caching without "use memo" by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20834
* refactor(web): the usage page keeps its caching without "use memo" by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20807
* refactor(web): the hosted browser webview keeps its caching without "use memo" by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20824
* refactor(web): the command palette provider lookup keeps its caching without "use memo" by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20827
* chore(web): lint rejects "use memo" directives by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20843
* perf(web): relative "checked" labels re-render only when their text changes by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20819
* perf(web): toggling a client setting no longer re-renders every settings row by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20830
* perf(web): typing in the ACP registry search no longer re-renders every result row by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20817
* perf(web): searching keybindings only renders rows entering or leaving the filter by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20840
* perf(web): unchanged model picker rows skip re-rendering while searching by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20838
* perf(web): router updates no longer re-render thread route consumers by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20837
* perf(web): a minute tick no longer re-renders every sidebar thread row by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20814
* test(web): jsdom-leftovers tests run in a real browser by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20862
* test(web): hook-harness tests run in a real browser by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20866
* test(web): misc-b tests run in a real browser by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20869
* test(web): settings tests run in a real browser by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20872
* test(web): misc-a tests run in a real browser by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20868
* test(web): chat tests run in a real browser by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20870
* test(web): browser tests from different checkouts no longer fight over one port by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20875
* fix(web): chat view no longer renders twice per update by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20847
* perf(web): markdown replies no longer re-render on reconnects and config pushes by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20852
* perf(web): provider status pushes no longer re-render every timeline row by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20854
* perf(client): a reconnect snapshot keeps unchanged skills and providers identical by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20855
* perf(web): a client setting write only re-renders readers whose value changed by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20848
* perf(web): right panel tabs no longer all re-render on unrelated chat updates by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20853
* perf(web): opening chat and usage dialogs no longer re-renders the whole page by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20859
* perf(web): typing in form dialogs no longer re-renders the dialog chrome by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20842
* fix(web): a project action's error belongs to the request that opened it by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20891
* test(web): the open-in picker test waits for the menu to close by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20892
* perf(web): opening an image preview no longer re-renders the chat view by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20845
* perf(web): another thread streaming no longer re-renders the app root and thread panels by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20823
* perf(client): equal query refetches no longer re-render PR rows by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20850
* perf(client): provider status pushes no longer re-render environment presentation consumers by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20821
* perf(web): a provider status push no longer re-renders every provider card and model row by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20851
* test(web): onboarding and usage tests run in a real browser by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20902
* test(web): pr-and-diff tests run in a real browser by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20901
* test(web): chat markdown and timeline tests run in a real browser by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20905
* test(web): provider, usage and relationship tests run in a real browser by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20914
* perf(web): the open thread's chat chrome no longer re-renders on every streaming tick by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20860
* test(web): every React test runs in a real browser by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20944
* fix(release): release tests install Chromium for the web browser tests by @juliusmarminge in https://github.com/pingdotgg/t3code/pull/20934…
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:M 30-99 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.

3 participants