Repository navigation
perf(web): provider status pushes no longer re-render every timeline row - #20854
Conversation
MessagesTimeline put the environment's provider list in TimelineRowCtx, so a providerStatuses push (only checkedAt changes) gave every row that reads the context a new value. Only subagent avatars, subagent tooltips and handoff rows use providers; they now read them from serverEnvironment.providersValueAtom at the leaf, and the avatar selects just displayName and iconUrl. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
ApprovabilityVerdict: Approved at Macroscope's review found this PR approvable — This is a contained web performance refactor that removes provider-status updates from the shared timeline context while preserving provider data access where the UI needs it. It introduces no new capability, schema or default change, deployment change, or static-analysis suppression. You can add or adjust custom eligibility rules. Learn more. |
|
Re-measured in the app (seeded data, same scenario, median of 3): Measured against main at 489d08a, with this PR's commit cherry-picked onto that same commit (it applies cleanly). The server ran without Scenario: the large thread (Evaluate Markdown Renderer Replacement, 713 messages) sits idle. A second browser session clicks Settings > Providers > Refresh provider status, and I measure a 15 s window. Each refresh delivers 3 to 4
The timeline fan-out from What still renders:
Behaviour check: in the "Take Over PR 6315" thread, subagent rows in the timeline still show the provider avatar ("Build layer 1: issue tracker core · Finished"). Hovering it still opens the subagent tooltip with the model and status ("Claude Fable 5.1 · medium · completed 24m 34s"). The lineage panel still lists all six previous agents with their icons. |
## What's Changed * fix(mobile): align iOS segmented controls with action colors by @juliusmarminge in pingdotgg/t3code#20721 * perf(web): the pull requests page compiles with the React Compiler by @juliusmarminge in pingdotgg/t3code#20539 * perf(web): the legacy sidebar compiles with the React Compiler by @juliusmarminge in pingdotgg/t3code#20640 * perf(client): a repository identity refresh keeps unchanged projects identical by @juliusmarminge in pingdotgg/t3code#20730 * perf(web): the new-thread handler keeps its identity across provider pushes by @juliusmarminge in pingdotgg/t3code#20731 * perf(web): the linked pull requests panel compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20723 * perf(web): pull request markdown compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20722 * perf(web): the pull request label and reviewer pickers compile without manual memoization by @juliusmarminge in pingdotgg/t3code#20719 * perf(web): the usage state hook compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20718 * perf(web): the pull request guide tab compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20716 * perf(web): the shell command block compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20714 * perf(web): the composer draft store compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20713 * perf(web): the hosted prompt link landing compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20712 * perf(web): the model picker compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20711 * perf(web): the pull request state hooks compile without manual memoization by @juliusmarminge in pingdotgg/t3code#20710 * perf(web): discovered local servers compile without manual memoization by @juliusmarminge in pingdotgg/t3code#20708 * perf(web): the proposed plan card compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20707 * perf(web): the pull request link hooks compile without manual memoization by @juliusmarminge in pingdotgg/t3code#20705 * perf(web): the preview mini player compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20704 * perf(web): file entry icons compile without manual memoization by @juliusmarminge in pingdotgg/t3code#20703 * perf(web): toasts compile without manual memoization by @juliusmarminge in pingdotgg/t3code#20702 * perf(web): the thread action menu hook compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20701 * perf(web): the new thread hooks compile without manual memoization by @juliusmarminge in pingdotgg/t3code#20699 * perf(web): the open-in picker compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20698 * perf(web): the file save coordinator compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20697 * perf(web): the combobox compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20696 * perf(web): the usage provider chart compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20695 * perf(web): the usage model dialog compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20694 * perf(web): update everything compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20693 * perf(web): the file preview panel compiles with the React Compiler by @juliusmarminge in pingdotgg/t3code#20692 * perf(web): the MCP app frame compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20691 * perf(web): main app navigation compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20690 * perf(web): project file queries compile without manual memoization by @juliusmarminge in pingdotgg/t3code#20689 * perf(web): the HTML render frame compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20688 * perf(web): the sidebar update capsule compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20687 * perf(web): the terminal session hooks compile without manual memoization by @juliusmarminge in pingdotgg/t3code#20686 * perf(web): the project file picker compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20685 * perf(web): the sidebar chrome compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20684 * perf(web): the file context menu hooks compile without manual memoization by @juliusmarminge in pingdotgg/t3code#20683 * perf(web): the snapshot shortcut recorder compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20682 * perf(web): the pull request linking hook compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20681 * perf(web): the port discovery hooks compile without manual memoization by @juliusmarminge in pingdotgg/t3code#20636 * perf(web): the new-thread link route compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20597 * perf(web): the Electron browser host compiles with the React Compiler by @juliusmarminge in pingdotgg/t3code#20548 * perf(web): the CSV table preview compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20680 * perf(web): the thread lineage panel compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20720 * perf(web): the open panel pull request URL hook compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20679 * perf(web): highlighted code tokens compile without manual memoization by @juliusmarminge in pingdotgg/t3code#20678 * perf(web): scoped settings hooks compile without manual memoization by @juliusmarminge in pingdotgg/t3code#20677 * perf(web): the HTML document frame compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20676 * perf(web): the new project hook compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20675 * perf(web): the scratch project hook compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20673 * perf(web): the expanded image dialog compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20672 * perf(web): the sidebar project groups hook compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20671 * perf(web): review file patches compile without manual memoization by @juliusmarminge in pingdotgg/t3code#20670 * perf(web): the draft hero headline compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20669 * perf(web): settings project groups compile without manual memoization by @juliusmarminge in pingdotgg/t3code#20668 * perf(web): the chat route layout compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20667 * perf(web): scoped model availability compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20666 * perf(web): the environment hooks compile without manual memoization by @juliusmarminge in pingdotgg/t3code#20665 * perf(web): the provider settings panel compiles with the React Compiler by @juliusmarminge in pingdotgg/t3code#20664 * perf(web): the code block language picker compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20663 * perf(web): the right panel tabs compile with the React Compiler by @juliusmarminge in pingdotgg/t3code#20662 * perf(web): settings search availability compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20661 * perf(web): the editor preference hooks compile without manual memoization by @juliusmarminge in pingdotgg/t3code#20660 * perf(web): the code view file reveal hook compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20659 * perf(web): the command output panel compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20658 * perf(web): the annotatable diff view compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20657 * perf(web): the chat header compiles with the React Compiler by @juliusmarminge in pingdotgg/t3code#20656 * perf(web): the theme library compiles with the React Compiler by @juliusmarminge in pingdotgg/t3code#20655 * perf(web): the chat canvas compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20654 * perf(web): useResizableWidth compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20653 * perf(web): device controls compile without manual memoization by @juliusmarminge in pingdotgg/t3code#20652 * perf(web): file breadcrumbs compile with the React Compiler by @juliusmarminge in pingdotgg/t3code#20651 * perf(web): the changed files tree compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20650 * perf(web): the provider update dismissal hook compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20649 * perf(web): the sidebar primitives compile with the React Compiler by @juliusmarminge in pingdotgg/t3code#20648 * perf(web): the settings layout compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20647 * perf(web): the remote open hook compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20646 * perf(web): usePreviewBridge compiles with the React Compiler by @juliusmarminge in pingdotgg/t3code#20644 * perf(web): the citation chip compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20643 * perf(web): useHtmlRenderTheme compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20642 * perf(web): project content search compiles with the React Compiler by @juliusmarminge in pingdotgg/t3code#20641 * perf(web): the agent connect surface compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20639 * perf(web): the theme editor host compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20638 * perf(web): the first-run gate compiles with the React Compiler by @juliusmarminge in pingdotgg/t3code#20637 * perf(web): the settings scope context compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20635 * perf(web): the worktree base branch picker compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20634 * perf(web): the project file scripts hook compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20632 * perf(web): the diff file tree compiles with the React Compiler by @juliusmarminge in pingdotgg/t3code#20631 * perf(web): thread status indicators compile without manual memoization by @juliusmarminge in pingdotgg/t3code#20630 * perf(web): useMediaQuery compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20629 * perf(web): the source control settings compile with the React Compiler by @juliusmarminge in pingdotgg/t3code#20628 * perf(web): scheduled task settings compile without manual memoization by @juliusmarminge in pingdotgg/t3code#20627 * perf(web): the remove-cloned-project hook compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20626 * perf(web): resource telemetry diagnostics compile without manual memoization by @juliusmarminge in pingdotgg/t3code#20625 * perf(web): the archived threads hook compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20624 * perf(web): the Connect onboarding dialog compiles with the React Compiler by @juliusmarminge in pingdotgg/t3code#20622 * perf(web): redacted sensitive text compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20621 * perf(web): the pull request stack hook compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20620 * perf(web): the resource telemetry hook compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20619 * perf(web): the provider settings form compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20618 * perf(web): the provider models section compiles with the React Compiler by @juliusmarminge in pingdotgg/t3code#20617 * perf(web): the CLI authorize surface compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20616 * perf(web): the pull request thread dialog compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20615 * perf(web): the assistant citation target hook compiles with the React Compiler by @juliusmarminge in pingdotgg/t3code#20614 * perf(web): the device state hooks compile without manual memoization by @juliusmarminge in pingdotgg/t3code#20613 * perf(web): the provider accent color picker compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20612 * perf(web): the T3 Connect account pages hook compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20611 * perf(web): the session scope hooks compile without manual memoization by @juliusmarminge in pingdotgg/t3code#20610 * perf(web): the provider update notification compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20609 * perf(web): the open-source notices panel compiles with the React Compiler by @juliusmarminge in pingdotgg/t3code#20608 * perf(web): the project icon picker compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20607 * perf(web): the project scans hook compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20606 * perf(web): the thread context drop hook compiles with the React Compiler by @juliusmarminge in pingdotgg/t3code#20605 * perf(web): the local provider update groups compile without manual memoization by @juliusmarminge in pingdotgg/t3code#20604 * perf(web): thread find navigation compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20603 * perf(web): the font previews compile with the React Compiler by @juliusmarminge in pingdotgg/t3code#20601 * perf(web): project actions settings compile without manual memoization by @juliusmarminge in pingdotgg/t3code#20602 * perf(web): the thread find bar compiles with the React Compiler by @juliusmarminge in pingdotgg/t3code#20600 * perf(web): the project scripts control compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20599 * perf(web): keybindings settings compile without manual memoization by @juliusmarminge in pingdotgg/t3code#20598 * perf(web): the model picker sidebar compiles with the React Compiler by @juliusmarminge in pingdotgg/t3code#20596 * perf(web): the composer path search hook compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20595 * perf(web): the font picker compiles with the React Compiler by @juliusmarminge in pingdotgg/t3code#20594 * perf(web): the project clone toasts compile without manual memoization by @juliusmarminge in pingdotgg/t3code#20593 * perf(web): the pending user input panel compiles with the React Compiler by @juliusmarminge in pingdotgg/t3code#20592 * perf(web): useTurnDiffSummaries compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20591 * perf(web): the provider update pill compiles with the React Compiler by @juliusmarminge in pingdotgg/t3code#20590 * perf(web): the no-projects hero compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20589 * perf(web): useActiveThreadRef compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20588 * perf(web): the custom model editor compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20586 * perf(web): the root route compiles with the React Compiler by @juliusmarminge in pingdotgg/t3code#20585 * perf(web): the diff worker pool provider compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20584 * perf(web): the CLI command settings row compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20583 * perf(web): the composer banner stack compiles with the React Compiler by @juliusmarminge in pingdotgg/t3code#20582 * perf(web): the primary session state hook compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20581 * perf(web): the index route compiles with the React Compiler by @juliusmarminge in pingdotgg/t3code#20580 * perf(web): the command palette results compile without manual memoization by @juliusmarminge in pingdotgg/t3code#20579 * perf(web): the add provider dialog compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20578 * perf(web): useOrchestrationCommand compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20576 * perf(web): the environment selector compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20575 * perf(web): default theme adoption compiles with the React Compiler by @juliusmarminge in pingdotgg/t3code#20574 * perf(web): useAtomQueryRunner compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20573 * perf(web): the env mode selector compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20572 * perf(web): highlighted search lines compile without manual memoization by @juliusmarminge in pingdotgg/t3code#20571 * perf(web): the server update banner compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20570 * perf(web): the app sidebar layout compiles with the React Compiler by @juliusmarminge in pingdotgg/t3code#20569 * perf(web): useAtomCommand compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20568 * perf(web): the branch toolbar selector compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20567 * perf(web): the composer state hooks compile without manual memoization by @juliusmarminge in pingdotgg/t3code#20566 * perf(web): the escape-to-go-back hook compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20564 * perf(web): the guide tour compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20563 * perf(web): the onboarding completion hook compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20561 * perf(web): the guide stop compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20560 * perf(web): the prompt link page compiles with the React Compiler by @juliusmarminge in pingdotgg/t3code#20559 * perf(web): the hosted browser webview compiles with the React Compiler by @juliusmarminge in pingdotgg/t3code#20558 * perf(web): the branch picker compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20557 * perf(web): useStableCallback compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20556 * perf(web): the find reveal ref compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20555 * perf(web): the primary cloud link hook compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20554 * perf(web): the project action editor resets its form without an effect by @juliusmarminge in pingdotgg/t3code#20550 * perf(web): the zoomable image compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20549 * perf(web): the PR guide diff loader compiles with the React Compiler by @juliusmarminge in pingdotgg/t3code#20543 * perf(web): the traits picker compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20540 * perf(web): the managed relay hooks compile without manual memoization by @juliusmarminge in pingdotgg/t3code#20552 * perf(web): the guide excerpt compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20553 * perf(web): AnimatedHeight compiles with the React Compiler by @juliusmarminge in pingdotgg/t3code#20562 * perf(web): the browser favicon store compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20546 * perf(web): the browser surface slot compiles with the React Compiler by @juliusmarminge in pingdotgg/t3code#20542 * perf(web): the link opener hook compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20541 * perf(web): the guide file diff compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20544 * perf(web): the settings sidebar compiles with the React Compiler by @juliusmarminge in pingdotgg/t3code#20623 * perf(web): Codex setup compiles with the React Compiler by @juliusmarminge in pingdotgg/t3code#20674 * perf(web): chat markdown compiles with the React Compiler by @juliusmarminge in pingdotgg/t3code#20715 * perf(web): the device stream view compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20645 * perf(web): the load-balancing hook compiles with the React Compiler by @juliusmarminge in pingdotgg/t3code#20565 * fix(web): settings search keeps the clamped highlight when results shrink by @juliusmarminge in pingdotgg/t3code#20764 * perf(web): the provider update launch notification compiles with the React Compiler by @juliusmarminge in pingdotgg/t3code#20577 * perf(web): the model picker compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20706 * feat(web): step reasoning effort from the keyboard by @Bil0000 in pingdotgg/t3code#19928 * perf(web): the item inspector compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20545 * fix(mobile): dev pairing link no longer opens Home inside a sheet by @PixPMusic in pingdotgg/t3code#20130 * fix(server): webhook request values reach the agent marked as request data by @juliusmarminge in pingdotgg/t3code#20447 * refactor(client-runtime): decide learned routes and session reuse in one place by @juliusmarminge in pingdotgg/t3code#20445 * refactor(web): thread find compiles under the strict React Compiler rules by @juliusmarminge in pingdotgg/t3code#20772 * test(web): chat markdown, timeline, and diff reveal tests pass the strict compiler rules by @juliusmarminge in pingdotgg/t3code#20770 * perf(web): Git actions control compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20777 * refactor(web): the theme search section compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20778 * fix(server): keep sensitive values out of settings reads, startup logs and preview snapshots by @juliusmarminge in pingdotgg/t3code#20446 * refactor(web): the thread pull requests panel keeps its caching without "use memo" hooks by @juliusmarminge in pingdotgg/t3code#20740 * refactor(web): scoped settings stay cached without "use memo" by @juliusmarminge in pingdotgg/t3code#20767 * refactor(web): settings search items stay cached without "use memo" by @juliusmarminge in pingdotgg/t3code#20771 * refactor(web): the file browser keeps its caching without "use memo" hooks by @juliusmarminge in pingdotgg/t3code#20784 * refactor(web): the pull request stack hook keeps its caching without "use memo" by @juliusmarminge in pingdotgg/t3code#20741 * refactor(web): the pull request thread dialog keeps its caching without "use memo" hooks by @juliusmarminge in pingdotgg/t3code#20742 * refactor(web): the MCP app frame keeps its caching without "use memo" hooks by @juliusmarminge in pingdotgg/t3code#20759 * refactor(web): the changed files tree keeps its caching without "use memo" hooks by @juliusmarminge in pingdotgg/t3code#20766 * refactor(web): sidebar resize options stay cached without "use memo" by @juliusmarminge in pingdotgg/t3code#20776 * refactor(web): paginated branches keep their caching without "use memo" by @juliusmarminge in pingdotgg/t3code#20743 * refactor(web): pull request markdown keeps its caching without "use memo" hooks by @juliusmarminge in pingdotgg/t3code#20744 * refactor(web): the pull request detail panel keeps its caching with fewer "use memo" hooks by @juliusmarminge in pingdotgg/t3code#20761 * refactor(web): the open panel pull request URL keeps its caching without "use memo" by @juliusmarminge in pingdotgg/t3code#20768 * refactor(web): the command output panel keeps its caching without "use memo" hooks by @juliusmarminge in pingdotgg/t3code#20763 * fix(client-runtime): the agents pill counts background agents from earlier turns by @juliusmarminge in pingdotgg/t3code#20785 * refactor(web): the diff panel keeps its caching without "use memo" hooks by @juliusmarminge in pingdotgg/t3code#20745 * refactor(web): the composer builds model options without a "use memo" hook by @juliusmarminge in pingdotgg/t3code#20780 * refactor(web): the preview bridge keeps its stable thread ref without "use memo" hooks by @juliusmarminge in pingdotgg/t3code#20746 * refactor(web): the pull request code tab keeps its caching with one "use memo" hook by @juliusmarminge in pingdotgg/t3code#20773 * refactor(web): provider models keep their caching without "use memo" by @juliusmarminge in pingdotgg/t3code#20775 * refactor(web): the thread lineage panel keeps its caching without "use memo" hooks by @juliusmarminge in pingdotgg/t3code#20789 * refactor(web): the attachment preview keeps its caching without "use memo" hooks by @juliusmarminge in pingdotgg/t3code#20757 * refactor(web): the pending user input panel keeps its caching without "use memo" hooks by @juliusmarminge in pingdotgg/t3code#20762 * refactor(web): the queued runs control keeps its caching without "use memo" hooks by @juliusmarminge in pingdotgg/t3code#20779 * refactor(web): the open-in picker keeps its caching without "use memo" hooks by @juliusmarminge in pingdotgg/t3code#20758 * refactor(web): highlighted tokens keep their caching without "use memo" hooks by @juliusmarminge in pingdotgg/t3code#20760 * refactor(web): merged settings stay cached without "use memo" by @juliusmarminge in pingdotgg/t3code#20765 * fix(server): a running Claude workflow member shows its answer so far by @juliusmarminge in pingdotgg/t3code#20786 * refactor(web): the keybindings panel keeps its caching without "use memo" hooks by @juliusmarminge in pingdotgg/t3code#20782 * refactor(web): linked pull request status keeps its caching without "use memo" hooks by @juliusmarminge in pingdotgg/t3code#20781 * refactor(web): the new-thread hook keeps its caching without "use memo" by @juliusmarminge in pingdotgg/t3code#20769 * refactor(web): review file patches keep their caching without "use memo" hooks by @juliusmarminge in pingdotgg/t3code#20788 * chore(web): React compiler rules apply to every web file by @juliusmarminge in pingdotgg/t3code#20791 * refactor(server): resolve project and worktree folders in one place by @juliusmarminge in pingdotgg/t3code#20449 * refactor(server): route git config through one env helper and end option parsing before names by @juliusmarminge in pingdotgg/t3code#20440 * test(web): React tests run compiled in a real browser by @juliusmarminge in pingdotgg/t3code#20797 * fix(android): menu icons take taps by @juliusmarminge in pingdotgg/t3code#20802 * fix(android): a composer focused through an app switch stays above the keyboard by @juliusmarminge in pingdotgg/t3code#20803 * refactor(web): the usage chart keeps its caching without "use memo" by @juliusmarminge in pingdotgg/t3code#20792 * refactor(web): pull request detail keeps its caching without "use memo" by @juliusmarminge in pingdotgg/t3code#20811 * refactor(web): the legacy sidebar keeps its caching without "use memo" by @juliusmarminge in pingdotgg/t3code#20793 * refactor(web): turn diff summaries keep their caching without "use memo" by @juliusmarminge in pingdotgg/t3code#20794 * refactor(web): the pull requests page keeps its caching without "use memo" by @juliusmarminge in pingdotgg/t3code#20820 * refactor(web): the terminal drawer keeps its caching without "use memo" by @juliusmarminge in pingdotgg/t3code#20799 * refactor(web): the model picker keeps its caching without "use memo" by @juliusmarminge in pingdotgg/t3code#20815 * refactor(web): pull request code tab keeps its caching without "use memo" by @juliusmarminge in pingdotgg/t3code#20816 * refactor(web): find reveal refs stay cached without "use memo" by @juliusmarminge in pingdotgg/t3code#20818 * refactor(web): the branch selector keeps its caching without "use memo" by @juliusmarminge in pingdotgg/t3code#20822 * refactor(web): the guide excerpt keeps its caching without "use memo" by @juliusmarminge in pingdotgg/t3code#20798 * refactor(web): chat composer keeps its caching without "use memo" by @juliusmarminge in pingdotgg/t3code#20834 * refactor(web): the usage page keeps its caching without "use memo" by @juliusmarminge in pingdotgg/t3code#20807 * refactor(web): the hosted browser webview keeps its caching without "use memo" by @juliusmarminge in pingdotgg/t3code#20824 * refactor(web): the command palette provider lookup keeps its caching without "use memo" by @juliusmarminge in pingdotgg/t3code#20827 * chore(web): lint rejects "use memo" directives by @juliusmarminge in pingdotgg/t3code#20843 * perf(web): relative "checked" labels re-render only when their text changes by @juliusmarminge in pingdotgg/t3code#20819 * perf(web): toggling a client setting no longer re-renders every settings row by @juliusmarminge in pingdotgg/t3code#20830 * perf(web): typing in the ACP registry search no longer re-renders every result row by @juliusmarminge in pingdotgg/t3code#20817 * perf(web): searching keybindings only renders rows entering or leaving the filter by @juliusmarminge in pingdotgg/t3code#20840 * perf(web): unchanged model picker rows skip re-rendering while searching by @juliusmarminge in pingdotgg/t3code#20838 * perf(web): router updates no longer re-render thread route consumers by @juliusmarminge in pingdotgg/t3code#20837 * perf(web): a minute tick no longer re-renders every sidebar thread row by @juliusmarminge in pingdotgg/t3code#20814 * test(web): jsdom-leftovers tests run in a real browser by @juliusmarminge in pingdotgg/t3code#20862 * test(web): hook-harness tests run in a real browser by @juliusmarminge in pingdotgg/t3code#20866 * test(web): misc-b tests run in a real browser by @juliusmarminge in pingdotgg/t3code#20869 * test(web): settings tests run in a real browser by @juliusmarminge in pingdotgg/t3code#20872 * test(web): misc-a tests run in a real browser by @juliusmarminge in pingdotgg/t3code#20868 * test(web): chat tests run in a real browser by @juliusmarminge in pingdotgg/t3code#20870 * test(web): browser tests from different checkouts no longer fight over one port by @juliusmarminge in pingdotgg/t3code#20875 * fix(web): chat view no longer renders twice per update by @juliusmarminge in pingdotgg/t3code#20847 * perf(web): markdown replies no longer re-render on reconnects and config pushes by @juliusmarminge in pingdotgg/t3code#20852 * perf(web): provider status pushes no longer re-render every timeline row by @juliusmarminge in pingdotgg/t3code#20854 * perf(client): a reconnect snapshot keeps unchanged skills and providers identical by @juliusmarminge in pingdotgg/t3code#20855 * perf(web): a client setting write only re-renders readers whose value changed by @juliusmarminge in pingdotgg/t3code#20848 * perf(web): right panel tabs no longer all re-render on unrelated chat updates by @juliusmarminge in pingdotgg/t3code#20853 * perf(web): opening chat and usage dialogs no longer re-renders the whole page by @juliusmarminge in pingdotgg/t3code#20859 * perf(web): typing in form dialogs no longer re-renders the dialog chrome by @juliusmarminge in pingdotgg/t3code#20842 * fix(web): a project action's error belongs to the request that opened it by @juliusmarminge in pingdotgg/t3code#20891 * test(web): the open-in picker test waits for the menu to close by @juliusmarminge in pingdotgg/t3code#20892 * perf(web): opening an image preview no longer re-renders the chat view by @juliusmarminge in pingdotgg/t3code#20845 * perf(web): another thread streaming no longer re-renders the app root and thread panels by @juliusmarminge in pingdotgg/t3code#20823 * perf(client): equal query refetches no longer re-render PR rows by @juliusmarminge in pingdotgg/t3code#20850 * perf(client): provider status pushes no longer re-render environment presentation consumers by @juliusmarminge in pingdotgg/t3code#20821 * perf(web): a provider status push no longer re-renders every provider card and model row by @juliusmarminge in pingdotgg/t3code#20851 * test(web): onboarding and usage tests run in a real browser by @juliusmarminge in pingdotgg/t3code#20902 * test(web): pr-and-diff tests run in a real browser by @juliusmarminge in pingdotgg/t3code#20901 * test(web): chat markdown and timeline tests run in a real browser by @juliusmarminge in pingdotgg/t3code#20905 * test(web): provider, usage and relationship tests run in a real browser by @juliusmarminge in pingdotgg/t3code#20914 * perf(web): the open thread's chat chrome no longer re-renders on every streaming tick by @juliusmarminge in pingdotgg/t3code#20860 * test(web): every React test runs in a real browser by @juliusmarminge in pingdotgg/t3code#20944 * fix(release): release tests install Chromium for the web browser tests by @juliusmarminge in pingdotgg/t3code#20934 * fix(server): drop V1 projections nothing reads after the V2 upgrade by @juliusmarminge in pingdotgg/t3code#20947 * feat(server): t3 doctor can delete the database from before 0.1.0 by @juliusmarminge in pingdotgg/t3code#20948 **Full Changelog**: pingdotgg/t3code@v0.1.1-nightly.20261017.3238...v0.1.1-nightly.20261017.3272 Upstream release: https://github.com/pingdotgg/t3code/releases/tag/v0.1.1-nightly.20261017.3272
## What's Changed * fix(mobile): align iOS segmented controls with action colors by @juliusmarminge in pingdotgg/t3code#20721 * perf(web): the pull requests page compiles with the React Compiler by @juliusmarminge in pingdotgg/t3code#20539 * perf(web): the legacy sidebar compiles with the React Compiler by @juliusmarminge in pingdotgg/t3code#20640 * perf(client): a repository identity refresh keeps unchanged projects identical by @juliusmarminge in pingdotgg/t3code#20730 * perf(web): the new-thread handler keeps its identity across provider pushes by @juliusmarminge in pingdotgg/t3code#20731 * perf(web): the linked pull requests panel compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20723 * perf(web): pull request markdown compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20722 * perf(web): the pull request label and reviewer pickers compile without manual memoization by @juliusmarminge in pingdotgg/t3code#20719 * perf(web): the usage state hook compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20718 * perf(web): the pull request guide tab compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20716 * perf(web): the shell command block compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20714 * perf(web): the composer draft store compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20713 * perf(web): the hosted prompt link landing compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20712 * perf(web): the model picker compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20711 * perf(web): the pull request state hooks compile without manual memoization by @juliusmarminge in pingdotgg/t3code#20710 * perf(web): discovered local servers compile without manual memoization by @juliusmarminge in pingdotgg/t3code#20708 * perf(web): the proposed plan card compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20707 * perf(web): the pull request link hooks compile without manual memoization by @juliusmarminge in pingdotgg/t3code#20705 * perf(web): the preview mini player compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20704 * perf(web): file entry icons compile without manual memoization by @juliusmarminge in pingdotgg/t3code#20703 * perf(web): toasts compile without manual memoization by @juliusmarminge in pingdotgg/t3code#20702 * perf(web): the thread action menu hook compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20701 * perf(web): the new thread hooks compile without manual memoization by @juliusmarminge in pingdotgg/t3code#20699 * perf(web): the open-in picker compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20698 * perf(web): the file save coordinator compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20697 * perf(web): the combobox compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20696 * perf(web): the usage provider chart compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20695 * perf(web): the usage model dialog compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20694 * perf(web): update everything compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20693 * perf(web): the file preview panel compiles with the React Compiler by @juliusmarminge in pingdotgg/t3code#20692 * perf(web): the MCP app frame compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20691 * perf(web): main app navigation compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20690 * perf(web): project file queries compile without manual memoization by @juliusmarminge in pingdotgg/t3code#20689 * perf(web): the HTML render frame compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20688 * perf(web): the sidebar update capsule compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20687 * perf(web): the terminal session hooks compile without manual memoization by @juliusmarminge in pingdotgg/t3code#20686 * perf(web): the project file picker compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20685 * perf(web): the sidebar chrome compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20684 * perf(web): the file context menu hooks compile without manual memoization by @juliusmarminge in pingdotgg/t3code#20683 * perf(web): the snapshot shortcut recorder compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20682 * perf(web): the pull request linking hook compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20681 * perf(web): the port discovery hooks compile without manual memoization by @juliusmarminge in pingdotgg/t3code#20636 * perf(web): the new-thread link route compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20597 * perf(web): the Electron browser host compiles with the React Compiler by @juliusmarminge in pingdotgg/t3code#20548 * perf(web): the CSV table preview compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20680 * perf(web): the thread lineage panel compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20720 * perf(web): the open panel pull request URL hook compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20679 * perf(web): highlighted code tokens compile without manual memoization by @juliusmarminge in pingdotgg/t3code#20678 * perf(web): scoped settings hooks compile without manual memoization by @juliusmarminge in pingdotgg/t3code#20677 * perf(web): the HTML document frame compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20676 * perf(web): the new project hook compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20675 * perf(web): the scratch project hook compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20673 * perf(web): the expanded image dialog compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20672 * perf(web): the sidebar project groups hook compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20671 * perf(web): review file patches compile without manual memoization by @juliusmarminge in pingdotgg/t3code#20670 * perf(web): the draft hero headline compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20669 * perf(web): settings project groups compile without manual memoization by @juliusmarminge in pingdotgg/t3code#20668 * perf(web): the chat route layout compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20667 * perf(web): scoped model availability compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20666 * perf(web): the environment hooks compile without manual memoization by @juliusmarminge in pingdotgg/t3code#20665 * perf(web): the provider settings panel compiles with the React Compiler by @juliusmarminge in pingdotgg/t3code#20664 * perf(web): the code block language picker compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20663 * perf(web): the right panel tabs compile with the React Compiler by @juliusmarminge in pingdotgg/t3code#20662 * perf(web): settings search availability compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20661 * perf(web): the editor preference hooks compile without manual memoization by @juliusmarminge in pingdotgg/t3code#20660 * perf(web): the code view file reveal hook compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20659 * perf(web): the command output panel compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20658 * perf(web): the annotatable diff view compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20657 * perf(web): the chat header compiles with the React Compiler by @juliusmarminge in pingdotgg/t3code#20656 * perf(web): the theme library compiles with the React Compiler by @juliusmarminge in pingdotgg/t3code#20655 * perf(web): the chat canvas compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20654 * perf(web): useResizableWidth compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20653 * perf(web): device controls compile without manual memoization by @juliusmarminge in pingdotgg/t3code#20652 * perf(web): file breadcrumbs compile with the React Compiler by @juliusmarminge in pingdotgg/t3code#20651 * perf(web): the changed files tree compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20650 * perf(web): the provider update dismissal hook compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20649 * perf(web): the sidebar primitives compile with the React Compiler by @juliusmarminge in pingdotgg/t3code#20648 * perf(web): the settings layout compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20647 * perf(web): the remote open hook compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20646 * perf(web): usePreviewBridge compiles with the React Compiler by @juliusmarminge in pingdotgg/t3code#20644 * perf(web): the citation chip compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20643 * perf(web): useHtmlRenderTheme compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20642 * perf(web): project content search compiles with the React Compiler by @juliusmarminge in pingdotgg/t3code#20641 * perf(web): the agent connect surface compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20639 * perf(web): the theme editor host compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20638 * perf(web): the first-run gate compiles with the React Compiler by @juliusmarminge in pingdotgg/t3code#20637 * perf(web): the settings scope context compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20635 * perf(web): the worktree base branch picker compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20634 * perf(web): the project file scripts hook compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20632 * perf(web): the diff file tree compiles with the React Compiler by @juliusmarminge in pingdotgg/t3code#20631 * perf(web): thread status indicators compile without manual memoization by @juliusmarminge in pingdotgg/t3code#20630 * perf(web): useMediaQuery compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20629 * perf(web): the source control settings compile with the React Compiler by @juliusmarminge in pingdotgg/t3code#20628 * perf(web): scheduled task settings compile without manual memoization by @juliusmarminge in pingdotgg/t3code#20627 * perf(web): the remove-cloned-project hook compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20626 * perf(web): resource telemetry diagnostics compile without manual memoization by @juliusmarminge in pingdotgg/t3code#20625 * perf(web): the archived threads hook compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20624 * perf(web): the Connect onboarding dialog compiles with the React Compiler by @juliusmarminge in pingdotgg/t3code#20622 * perf(web): redacted sensitive text compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20621 * perf(web): the pull request stack hook compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20620 * perf(web): the resource telemetry hook compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20619 * perf(web): the provider settings form compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20618 * perf(web): the provider models section compiles with the React Compiler by @juliusmarminge in pingdotgg/t3code#20617 * perf(web): the CLI authorize surface compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20616 * perf(web): the pull request thread dialog compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20615 * perf(web): the assistant citation target hook compiles with the React Compiler by @juliusmarminge in pingdotgg/t3code#20614 * perf(web): the device state hooks compile without manual memoization by @juliusmarminge in pingdotgg/t3code#20613 * perf(web): the provider accent color picker compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20612 * perf(web): the T3 Connect account pages hook compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20611 * perf(web): the session scope hooks compile without manual memoization by @juliusmarminge in pingdotgg/t3code#20610 * perf(web): the provider update notification compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20609 * perf(web): the open-source notices panel compiles with the React Compiler by @juliusmarminge in pingdotgg/t3code#20608 * perf(web): the project icon picker compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20607 * perf(web): the project scans hook compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20606 * perf(web): the thread context drop hook compiles with the React Compiler by @juliusmarminge in pingdotgg/t3code#20605 * perf(web): the local provider update groups compile without manual memoization by @juliusmarminge in pingdotgg/t3code#20604 * perf(web): thread find navigation compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20603 * perf(web): the font previews compile with the React Compiler by @juliusmarminge in pingdotgg/t3code#20601 * perf(web): project actions settings compile without manual memoization by @juliusmarminge in pingdotgg/t3code#20602 * perf(web): the thread find bar compiles with the React Compiler by @juliusmarminge in pingdotgg/t3code#20600 * perf(web): the project scripts control compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20599 * perf(web): keybindings settings compile without manual memoization by @juliusmarminge in pingdotgg/t3code#20598 * perf(web): the model picker sidebar compiles with the React Compiler by @juliusmarminge in pingdotgg/t3code#20596 * perf(web): the composer path search hook compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20595 * perf(web): the font picker compiles with the React Compiler by @juliusmarminge in pingdotgg/t3code#20594 * perf(web): the project clone toasts compile without manual memoization by @juliusmarminge in pingdotgg/t3code#20593 * perf(web): the pending user input panel compiles with the React Compiler by @juliusmarminge in pingdotgg/t3code#20592 * perf(web): useTurnDiffSummaries compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20591 * perf(web): the provider update pill compiles with the React Compiler by @juliusmarminge in pingdotgg/t3code#20590 * perf(web): the no-projects hero compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20589 * perf(web): useActiveThreadRef compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20588 * perf(web): the custom model editor compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20586 * perf(web): the root route compiles with the React Compiler by @juliusmarminge in pingdotgg/t3code#20585 * perf(web): the diff worker pool provider compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20584 * perf(web): the CLI command settings row compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20583 * perf(web): the composer banner stack compiles with the React Compiler by @juliusmarminge in pingdotgg/t3code#20582 * perf(web): the primary session state hook compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20581 * perf(web): the index route compiles with the React Compiler by @juliusmarminge in pingdotgg/t3code#20580 * perf(web): the command palette results compile without manual memoization by @juliusmarminge in pingdotgg/t3code#20579 * perf(web): the add provider dialog compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20578 * perf(web): useOrchestrationCommand compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20576 * perf(web): the environment selector compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20575 * perf(web): default theme adoption compiles with the React Compiler by @juliusmarminge in pingdotgg/t3code#20574 * perf(web): useAtomQueryRunner compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20573 * perf(web): the env mode selector compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20572 * perf(web): highlighted search lines compile without manual memoization by @juliusmarminge in pingdotgg/t3code#20571 * perf(web): the server update banner compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20570 * perf(web): the app sidebar layout compiles with the React Compiler by @juliusmarminge in pingdotgg/t3code#20569 * perf(web): useAtomCommand compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20568 * perf(web): the branch toolbar selector compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20567 * perf(web): the composer state hooks compile without manual memoization by @juliusmarminge in pingdotgg/t3code#20566 * perf(web): the escape-to-go-back hook compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20564 * perf(web): the guide tour compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20563 * perf(web): the onboarding completion hook compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20561 * perf(web): the guide stop compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20560 * perf(web): the prompt link page compiles with the React Compiler by @juliusmarminge in pingdotgg/t3code#20559 * perf(web): the hosted browser webview compiles with the React Compiler by @juliusmarminge in pingdotgg/t3code#20558 * perf(web): the branch picker compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20557 * perf(web): useStableCallback compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20556 * perf(web): the find reveal ref compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20555 * perf(web): the primary cloud link hook compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20554 * perf(web): the project action editor resets its form without an effect by @juliusmarminge in pingdotgg/t3code#20550 * perf(web): the zoomable image compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20549 * perf(web): the PR guide diff loader compiles with the React Compiler by @juliusmarminge in pingdotgg/t3code#20543 * perf(web): the traits picker compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20540 * perf(web): the managed relay hooks compile without manual memoization by @juliusmarminge in pingdotgg/t3code#20552 * perf(web): the guide excerpt compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20553 * perf(web): AnimatedHeight compiles with the React Compiler by @juliusmarminge in pingdotgg/t3code#20562 * perf(web): the browser favicon store compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20546 * perf(web): the browser surface slot compiles with the React Compiler by @juliusmarminge in pingdotgg/t3code#20542 * perf(web): the link opener hook compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20541 * perf(web): the guide file diff compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20544 * perf(web): the settings sidebar compiles with the React Compiler by @juliusmarminge in pingdotgg/t3code#20623 * perf(web): Codex setup compiles with the React Compiler by @juliusmarminge in pingdotgg/t3code#20674 * perf(web): chat markdown compiles with the React Compiler by @juliusmarminge in pingdotgg/t3code#20715 * perf(web): the device stream view compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20645 * perf(web): the load-balancing hook compiles with the React Compiler by @juliusmarminge in pingdotgg/t3code#20565 * fix(web): settings search keeps the clamped highlight when results shrink by @juliusmarminge in pingdotgg/t3code#20764 * perf(web): the provider update launch notification compiles with the React Compiler by @juliusmarminge in pingdotgg/t3code#20577 * perf(web): the model picker compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20706 * feat(web): step reasoning effort from the keyboard by @Bil0000 in pingdotgg/t3code#19928 * perf(web): the item inspector compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20545 * fix(mobile): dev pairing link no longer opens Home inside a sheet by @PixPMusic in pingdotgg/t3code#20130 * fix(server): webhook request values reach the agent marked as request data by @juliusmarminge in pingdotgg/t3code#20447 * refactor(client-runtime): decide learned routes and session reuse in one place by @juliusmarminge in pingdotgg/t3code#20445 * refactor(web): thread find compiles under the strict React Compiler rules by @juliusmarminge in pingdotgg/t3code#20772 * test(web): chat markdown, timeline, and diff reveal tests pass the strict compiler rules by @juliusmarminge in pingdotgg/t3code#20770 * perf(web): Git actions control compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20777 * refactor(web): the theme search section compiles without manual memoization by @juliusmarminge in pingdotgg/t3code#20778 * fix(server): keep sensitive values out of settings reads, startup logs and preview snapshots by @juliusmarminge in pingdotgg/t3code#20446 * refactor(web): the thread pull requests panel keeps its caching without "use memo" hooks by @juliusmarminge in pingdotgg/t3code#20740 * refactor(web): scoped settings stay cached without "use memo" by @juliusmarminge in pingdotgg/t3code#20767 * refactor(web): settings search items stay cached without "use memo" by @juliusmarminge in pingdotgg/t3code#20771 * refactor(web): the file browser keeps its caching without "use memo" hooks by @juliusmarminge in pingdotgg/t3code#20784 * refactor(web): the pull request stack hook keeps its caching without "use memo" by @juliusmarminge in pingdotgg/t3code#20741 * refactor(web): the pull request thread dialog keeps its caching without "use memo" hooks by @juliusmarminge in pingdotgg/t3code#20742 * refactor(web): the MCP app frame keeps its caching without "use memo" hooks by @juliusmarminge in pingdotgg/t3code#20759 * refactor(web): the changed files tree keeps its caching without "use memo" hooks by @juliusmarminge in pingdotgg/t3code#20766 * refactor(web): sidebar resize options stay cached without "use memo" by @juliusmarminge in pingdotgg/t3code#20776 * refactor(web): paginated branches keep their caching without "use memo" by @juliusmarminge in pingdotgg/t3code#20743 * refactor(web): pull request markdown keeps its caching without "use memo" hooks by @juliusmarminge in pingdotgg/t3code#20744 * refactor(web): the pull request detail panel keeps its caching with fewer "use memo" hooks by @juliusmarminge in pingdotgg/t3code#20761 * refactor(web): the open panel pull request URL keeps its caching without "use memo" by @juliusmarminge in pingdotgg/t3code#20768 * refactor(web): the command output panel keeps its caching without "use memo" hooks by @juliusmarminge in pingdotgg/t3code#20763 * fix(client-runtime): the agents pill counts background agents from earlier turns by @juliusmarminge in pingdotgg/t3code#20785 * refactor(web): the diff panel keeps its caching without "use memo" hooks by @juliusmarminge in pingdotgg/t3code#20745 * refactor(web): the composer builds model options without a "use memo" hook by @juliusmarminge in pingdotgg/t3code#20780 * refactor(web): the preview bridge keeps its stable thread ref without "use memo" hooks by @juliusmarminge in pingdotgg/t3code#20746 * refactor(web): the pull request code tab keeps its caching with one "use memo" hook by @juliusmarminge in pingdotgg/t3code#20773 * refactor(web): provider models keep their caching without "use memo" by @juliusmarminge in pingdotgg/t3code#20775 * refactor(web): the thread lineage panel keeps its caching without "use memo" hooks by @juliusmarminge in pingdotgg/t3code#20789 * refactor(web): the attachment preview keeps its caching without "use memo" hooks by @juliusmarminge in pingdotgg/t3code#20757 * refactor(web): the pending user input panel keeps its caching without "use memo" hooks by @juliusmarminge in pingdotgg/t3code#20762 * refactor(web): the queued runs control keeps its caching without "use memo" hooks by @juliusmarminge in pingdotgg/t3code#20779 * refactor(web): the open-in picker keeps its caching without "use memo" hooks by @juliusmarminge in pingdotgg/t3code#20758 * refactor(web): highlighted tokens keep their caching without "use memo" hooks by @juliusmarminge in pingdotgg/t3code#20760 * refactor(web): merged settings stay cached without "use memo" by @juliusmarminge in pingdotgg/t3code#20765 * fix(server): a running Claude workflow member shows its answer so far by @juliusmarminge in pingdotgg/t3code#20786 * refactor(web): the keybindings panel keeps its caching without "use memo" hooks by @juliusmarminge in pingdotgg/t3code#20782 * refactor(web): linked pull request status keeps its caching without "use memo" hooks by @juliusmarminge in pingdotgg/t3code#20781 * refactor(web): the new-thread hook keeps its caching without "use memo" by @juliusmarminge in pingdotgg/t3code#20769 * refactor(web): review file patches keep their caching without "use memo" hooks by @juliusmarminge in pingdotgg/t3code#20788 * chore(web): React compiler rules apply to every web file by @juliusmarminge in pingdotgg/t3code#20791 * refactor(server): resolve project and worktree folders in one place by @juliusmarminge in pingdotgg/t3code#20449 * refactor(server): route git config through one env helper and end option parsing before names by @juliusmarminge in pingdotgg/t3code#20440 * test(web): React tests run compiled in a real browser by @juliusmarminge in pingdotgg/t3code#20797 * fix(android): menu icons take taps by @juliusmarminge in pingdotgg/t3code#20802 * fix(android): a composer focused through an app switch stays above the keyboard by @juliusmarminge in pingdotgg/t3code#20803 * refactor(web): the usage chart keeps its caching without "use memo" by @juliusmarminge in pingdotgg/t3code#20792 * refactor(web): pull request detail keeps its caching without "use memo" by @juliusmarminge in pingdotgg/t3code#20811 * refactor(web): the legacy sidebar keeps its caching without "use memo" by @juliusmarminge in pingdotgg/t3code#20793 * refactor(web): turn diff summaries keep their caching without "use memo" by @juliusmarminge in pingdotgg/t3code#20794 * refactor(web): the pull requests page keeps its caching without "use memo" by @juliusmarminge in pingdotgg/t3code#20820 * refactor(web): the terminal drawer keeps its caching without "use memo" by @juliusmarminge in pingdotgg/t3code#20799 * refactor(web): the model picker keeps its caching without "use memo" by @juliusmarminge in pingdotgg/t3code#20815 * refactor(web): pull request code tab keeps its caching without "use memo" by @juliusmarminge in pingdotgg/t3code#20816 * refactor(web): find reveal refs stay cached without "use memo" by @juliusmarminge in pingdotgg/t3code#20818 * refactor(web): the branch selector keeps its caching without "use memo" by @juliusmarminge in pingdotgg/t3code#20822 * refactor(web): the guide excerpt keeps its caching without "use memo" by @juliusmarminge in pingdotgg/t3code#20798 * refactor(web): chat composer keeps its caching without "use memo" by @juliusmarminge in pingdotgg/t3code#20834 * refactor(web): the usage page keeps its caching without "use memo" by @juliusmarminge in pingdotgg/t3code#20807 * refactor(web): the hosted browser webview keeps its caching without "use memo" by @juliusmarminge in pingdotgg/t3code#20824 * refactor(web): the command palette provider lookup keeps its caching without "use memo" by @juliusmarminge in pingdotgg/t3code#20827 * chore(web): lint rejects "use memo" directives by @juliusmarminge in pingdotgg/t3code#20843 * perf(web): relative "checked" labels re-render only when their text changes by @juliusmarminge in pingdotgg/t3code#20819 * perf(web): toggling a client setting no longer re-renders every settings row by @juliusmarminge in pingdotgg/t3code#20830 * perf(web): typing in the ACP registry search no longer re-renders every result row by @juliusmarminge in pingdotgg/t3code#20817 * perf(web): searching keybindings only renders rows entering or leaving the filter by @juliusmarminge in pingdotgg/t3code#20840 * perf(web): unchanged model picker rows skip re-rendering while searching by @juliusmarminge in pingdotgg/t3code#20838 * perf(web): router updates no longer re-render thread route consumers by @juliusmarminge in pingdotgg/t3code#20837 * perf(web): a minute tick no longer re-renders every sidebar thread row by @juliusmarminge in pingdotgg/t3code#20814 * test(web): jsdom-leftovers tests run in a real browser by @juliusmarminge in pingdotgg/t3code#20862 * test(web): hook-harness tests run in a real browser by @juliusmarminge in pingdotgg/t3code#20866 * test(web): misc-b tests run in a real browser by @juliusmarminge in pingdotgg/t3code#20869 * test(web): settings tests run in a real browser by @juliusmarminge in pingdotgg/t3code#20872 * test(web): misc-a tests run in a real browser by @juliusmarminge in pingdotgg/t3code#20868 * test(web): chat tests run in a real browser by @juliusmarminge in pingdotgg/t3code#20870 * test(web): browser tests from different checkouts no longer fight over one port by @juliusmarminge in pingdotgg/t3code#20875 * fix(web): chat view no longer renders twice per update by @juliusmarminge in pingdotgg/t3code#20847 * perf(web): markdown replies no longer re-render on reconnects and config pushes by @juliusmarminge in pingdotgg/t3code#20852 * perf(web): provider status pushes no longer re-render every timeline row by @juliusmarminge in pingdotgg/t3code#20854 * perf(client): a reconnect snapshot keeps unchanged skills and providers identical by @juliusmarminge in pingdotgg/t3code#20855 * perf(web): a client setting write only re-renders readers whose value changed by @juliusmarminge in pingdotgg/t3code#20848 * perf(web): right panel tabs no longer all re-render on unrelated chat updates by @juliusmarminge in pingdotgg/t3code#20853 * perf(web): opening chat and usage dialogs no longer re-renders the whole page by @juliusmarminge in pingdotgg/t3code#20859 * perf(web): typing in form dialogs no longer re-renders the dialog chrome by @juliusmarminge in pingdotgg/t3code#20842 * fix(web): a project action's error belongs to the request that opened it by @juliusmarminge in pingdotgg/t3code#20891 * test(web): the open-in picker test waits for the menu to close by @juliusmarminge in pingdotgg/t3code#20892 * perf(web): opening an image preview no longer re-renders the chat view by @juliusmarminge in pingdotgg/t3code#20845 * perf(web): another thread streaming no longer re-renders the app root and thread panels by @juliusmarminge in pingdotgg/t3code#20823 * perf(client): equal query refetches no longer re-render PR rows by @juliusmarminge in pingdotgg/t3code#20850 * perf(client): provider status pushes no longer re-render environment presentation consumers by @juliusmarminge in pingdotgg/t3code#20821 * perf(web): a provider status push no longer re-renders every provider card and model row by @juliusmarminge in pingdotgg/t3code#20851 * test(web): onboarding and usage tests run in a real browser by @juliusmarminge in pingdotgg/t3code#20902 * test(web): pr-and-diff tests run in a real browser by @juliusmarminge in pingdotgg/t3code#20901 * test(web): chat markdown and timeline tests run in a real browser by @juliusmarminge in pingdotgg/t3code#20905 * test(web): provider, usage and relationship tests run in a real browser by @juliusmarminge in pingdotgg/t3code#20914 * perf(web): the open thread's chat chrome no longer re-renders on every streaming tick by @juliusmarminge in pingdotgg/t3code#20860 * test(web): every React test runs in a real browser by @juliusmarminge in pingdotgg/t3code#20944 * fix(release): release tests install Chromium for the web browser tests by @juliusmarminge in pingdotgg/t3code#20934 * fix(server): drop V1 projections nothing reads after the V2 upgrade by @juliusmarminge in pingdotgg/t3code#20947 * feat(server): t3 doctor can delete the database from before 0.1.0 by @juliusmarminge in pingdotgg/t3code#20948 **Full Changelog**: pingdotgg/t3code@v0.1.1-nightly.20261017.3238...v0.1.1-nightly.20261017.3272 Upstream release: https://github.com/pingdotgg/t3code/releases/tag/v0.1.1-nightly.20261017.3272
…row (pingdotgg#20854) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
* perf(web): the new-thread link route compiles without manual memoization (pingdotgg#20597) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(web): the Electron browser host compiles with the React Compiler (pingdotgg#20548) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(web): the CSV table preview compiles without manual memoization (pingdotgg#20680) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(web): the thread lineage panel compiles without manual memoization (pingdotgg#20720) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(web): the open panel pull request URL hook compiles without manual memoization (pingdotgg#20679) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(web): highlighted code tokens compile without manual memoization (pingdotgg#20678) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(web): scoped settings hooks compile without manual memoization (pingdotgg#20677) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(web): the HTML document frame compiles without manual memoization (pingdotgg#20676) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(web): the new project hook compiles without manual memoization (pingdotgg#20675) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(web): the scratch project hook compiles without manual memoization (pingdotgg#20673) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(web): the expanded image dialog compiles without manual memoization (pingdotgg#20672) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(web): the sidebar project groups hook compiles without manual memoization (pingdotgg#20671) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(web): review file patches compile without manual memoization (pingdotgg#20670) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(web): the draft hero headline compiles without manual memoization (pingdotgg#20669) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(web): settings project groups compile without manual memoization (pingdotgg#20668) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(web): the chat route layout compiles without manual memoization (pingdotgg#20667) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(web): scoped model availability compiles without manual memoization (pingdotgg#20666) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(web): the environment hooks compile without manual memoization (pingdotgg#20665) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(web): the provider settings panel compiles with the React Compiler (pingdotgg#20664) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(web): the code block language picker compiles without manual memoization (pingdotgg#20663) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(web): the right panel tabs compile with the React Compiler (pingdotgg#20662) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(web): settings search availability compiles without manual memoization (pingdotgg#20661) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(web): the editor preference hooks compile without manual memoization (pingdotgg#20660) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(web): the code view file reveal hook compiles without manual memoization (pingdotgg#20659) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(web): the command output panel compiles without manual memoization (pingdotgg#20658) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(web): the annotatable diff view compiles without manual memoization (pingdotgg#20657) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(web): the chat header compiles with the React Compiler (pingdotgg#20656) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(web): the theme library compiles with the React Compiler (pingdotgg#20655) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(web): the chat canvas compiles without manual memoization (pingdotgg#20654) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(web): useResizableWidth compiles without manual memoization (pingdotgg#20653) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(web): device controls compile without manual memoization (pingdotgg#20652) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(web): file breadcrumbs compile with the React Compiler (pingdotgg#20651) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(web): the changed files tree compiles without manual memoization (pingdotgg#20650) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(web): the provider update dismissal hook compiles without manual memoization (pingdotgg#20649) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(web): the sidebar primitives compile with the React Compiler (pingdotgg#20648) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(web): the settings layout compiles without manual memoization (pingdotgg#20647) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(web): the remote open hook compiles without manual memoization (pingdotgg#20646) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(web): usePreviewBridge compiles with the React Compiler (pingdotgg#20644) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(web): the citation chip compiles without manual memoization (pingdotgg#20643) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(web): useHtmlRenderTheme compiles without manual memoization (pingdotgg#20642) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(web): project content search compiles with the React Compiler (pingdotgg#20641) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(web): the agent connect surface compiles without manual memoization (pingdotgg#20639) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(web): the theme editor host compiles without manual memoization (pingdotgg#20638) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(web): the first-run gate compiles with the React Compiler (pingdotgg#20637) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(web): the settings scope context compiles without manual memoization (pingdotgg#20635) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(web): the worktree base branch picker compiles without manual memoization (pingdotgg#20634) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(web): the project file scripts hook compiles without manual memoization (pingdotgg#20632) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(web): the diff file tree compiles with the React Compiler (pingdotgg#20631) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(web): thread status indicators compile without manual memoization (pingdotgg#20630) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(web): useMediaQuery compiles without manual memoization (pingdotgg#20629) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(web): the source control settings compile with the React Compiler (pingdotgg#20628) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(web): scheduled task settings compile without manual memoization (pingdotgg#20627) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(web): the remove-cloned-project hook compiles without manual memoization (pingdotgg#20626) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(web): resource telemetry diagnostics compile without manual memoization (pingdotgg#20625) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(web): the archived threads hook compiles without manual memoization (pingdotgg#20624) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(web): the Connect onboarding dialog compiles with the React Compiler (pingdotgg#20622) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(web): redacted sensitive text compiles without manual memoization (pingdotgg#20621) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(web): the pull request stack hook compiles without manual memoization (pingdotgg#20620) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(web): the resource telemetry hook compiles without manual memoization (pingdotgg#20619) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(web): the provider settings form compiles without manual memoization (pingdotgg#20618) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(web): the provider models section compiles with the React Compiler (pingdotgg#20617) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(web): the CLI authorize surface compiles without manual memoization (pingdotgg#20616) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(web): the pull request thread dialog compiles without manual memoization (pingdotgg#20615) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(web): the assistant citation target hook compiles with the React Compiler (pingdotgg#20614) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(web): the device state hooks compile without manual memoization (pingdotgg#20613) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(web): the provider accent color picker compiles without manual memoization (pingdotgg#20612) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(web): the T3 Connect account pages hook compiles without manual memoization (pingdotgg#20611) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(web): the session scope hooks compile without manual memoization (pingdotgg#20610) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(web): the provider update notification compiles without manual memoization (pingdotgg#20609) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(web): the open-source notices panel compiles with the React Compiler (pingdotgg#20608) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(web): the project icon picker compiles without manual memoization (pingdotgg#20607) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(web): the project scans hook compiles without manual memoization (pingdotgg#20606) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(web): the thread context drop hook compiles with the React Compiler (pingdotgg#20605) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(web): the local provider update groups compile without manual memoization (pingdotgg#20604) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(web): thread find navigation compiles without manual memoization (pingdotgg#20603) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(web): the font previews compile with the React Compiler (pingdotgg#20601) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(web): project actions settings compile without manual memoization (pingdotgg#20602) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(web): the thread find bar compiles with the React Compiler (pingdotgg#20600) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(web): the project scripts control compiles without manual memoization (pingdotgg#20599) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(web): keybindings settings compile without manual memoization (pingdotgg#20598) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(web): the model picker sidebar compiles with the React Compiler (pingdotgg#20596) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(web): the composer path search hook compiles without manual memoization (pingdotgg#20595) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(web): the font picker compiles with the React Compiler (pingdotgg#20594) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(web): the project clone toasts compile without manual memoization (pingdotgg#20593) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(web): the pending user input panel compiles with the React Compiler (pingdotgg#20592) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(web): useTurnDiffSummaries compiles without manual memoization (pingdotgg#20591) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(web): the provider update pill compiles with the React Compiler (pingdotgg#20590) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(web): the no-projects hero compiles without manual memoization (pingdotgg#20589) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(web): useActiveThreadRef compiles without manual memoization (pingdotgg#20588) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(web): the custom model editor compiles without manual memoization (pingdotgg#20586) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(web): the root route compiles with the React Compiler (pingdotgg#20585) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(web): the diff worker pool provider compiles without manual memoization (pingdotgg#20584) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(web): the CLI command settings row compiles without manual memoization (pingdotgg#20583) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(web): the composer banner stack compiles with the React Compiler (pingdotgg#20582) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(web): the primary session state hook compiles without manual memoization (pingdotgg#20581) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(web): the index route compiles with the React Compiler (pingdotgg#20580) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(web): the command palette results compile without manual memoization (pingdotgg#20579) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(web): the add provider dialog compiles without manual memoization (pingdotgg#20578) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(web): useOrchestrationCommand compiles without manual memoization (pingdotgg#20576) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(web): the environment selector compiles without manual memoization (pingdotgg#20575) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(web): default theme adoption compiles with the React Compiler (pingdotgg#20574) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(web): useAtomQueryRunner compiles without manual memoization (pingdotgg#20573) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(web): the env mode selector compiles without manual memoization (pingdotgg#20572) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(web): highlighted search lines compile without manual memoization (pingdotgg#20571) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(web): the server update banner compiles without manual memoization (pingdotgg#20570) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(web): the app sidebar layout compiles with the React Compiler (pingdotgg#20569) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(web): useAtomCommand compiles without manual memoization (pingdotgg#20568) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(web): the branch toolbar selector compiles without manual memoization (pingdotgg#20567) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(web): the composer state hooks compile without manual memoization (pingdotgg#20566) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(web): the escape-to-go-back hook compiles without manual memoization (pingdotgg#20564) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(web): the guide tour compiles without manual memoization (pingdotgg#20563) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(web): the onboarding completion hook compiles without manual memoization (pingdotgg#20561) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(web): the guide stop compiles without manual memoization (pingdotgg#20560) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(web): the prompt link page compiles with the React Compiler (pingdotgg#20559) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(web): the hosted browser webview compiles with the React Compiler (pingdotgg#20558) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(web): the branch picker compiles without manual memoization (pingdotgg#20557) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(web): useStableCallback compiles without manual memoization (pingdotgg#20556) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(web): the find reveal ref compiles without manual memoization (pingdotgg#20555) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(web): the primary cloud link hook compiles without manual memoization (pingdotgg#20554) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(web): the project action editor resets its form without an effect (pingdotgg#20550) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(web): the zoomable image compiles without manual memoization (pingdotgg#20549) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(web): the PR guide diff loader compiles with the React Compiler (pingdotgg#20543) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(web): the traits picker compiles without manual memoization (pingdotgg#20540) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(web): the managed relay hooks compile without manual memoization (pingdotgg#20552) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(web): the guide excerpt compiles without manual memoization (pingdotgg#20553) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(web): AnimatedHeight compiles with the React Compiler (pingdotgg#20562) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(web): the browser favicon store compiles without manual memoization (pingdotgg#20546) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(web): the browser surface slot compiles with the React Compiler (pingdotgg#20542) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(web): the link opener hook compiles without manual memoization (pingdotgg#20541) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(web): the guide file diff compiles without manual memoization (pingdotgg#20544) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(web): the settings sidebar compiles with the React Compiler (pingdotgg#20623) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(web): Codex setup compiles with the React Compiler (pingdotgg#20674) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(web): chat markdown compiles with the React Compiler (pingdotgg#20715) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(web): the device stream view compiles without manual memoization (pingdotgg#20645) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(web): the load-balancing hook compiles with the React Compiler (pingdotgg#20565) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * fix(web): settings search keeps the clamped highlight when results shrink (pingdotgg#20764) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(web): the provider update launch notification compiles with the React Compiler (pingdotgg#20577) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(web): the model picker compiles without manual memoization (pingdotgg#20706) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * feat(web): step reasoning effort from the keyboard (pingdotgg#19928) Co-authored-by: Bil0000 <62337003+Bil0000@users.noreply.github.com> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(web): the item inspector compiles without manual memoization (pingdotgg#20545) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * fix(mobile): dev pairing link no longer opens Home inside a sheet (pingdotgg#20130) * fix(server): webhook request values reach the agent marked as request data (pingdotgg#20447) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * refactor(client-runtime): decide learned routes and session reuse in one place (pingdotgg#20445) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * refactor(web): thread find compiles under the strict React Compiler rules (pingdotgg#20772) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * test(web): chat markdown, timeline, and diff reveal tests pass the strict compiler rules (pingdotgg#20770) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(web): Git actions control compiles without manual memoization (pingdotgg#20777) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * refactor(web): the theme search section compiles without manual memoization (pingdotgg#20778) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * fix(server): keep sensitive values out of settings reads, startup logs and preview snapshots (pingdotgg#20446) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * refactor(web): the thread pull requests panel keeps its caching without "use memo" hooks (pingdotgg#20740) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * refactor(web): scoped settings stay cached without "use memo" (pingdotgg#20767) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * refactor(web): settings search items stay cached without "use memo" (pingdotgg#20771) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * refactor(web): the file browser keeps its caching without "use memo" hooks (pingdotgg#20784) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * refactor(web): the pull request stack hook keeps its caching without "use memo" (pingdotgg#20741) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * refactor(web): the pull request thread dialog keeps its caching without "use memo" hooks (pingdotgg#20742) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * refactor(web): the MCP app frame keeps its caching without "use memo" hooks (pingdotgg#20759) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * refactor(web): the changed files tree keeps its caching without "use memo" hooks (pingdotgg#20766) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * refactor(web): sidebar resize options stay cached without "use memo" (pingdotgg#20776) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * refactor(web): paginated branches keep their caching without "use memo" (pingdotgg#20743) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * refactor(web): pull request markdown keeps its caching without "use memo" hooks (pingdotgg#20744) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * refactor(web): the pull request detail panel keeps its caching with fewer "use memo" hooks (pingdotgg#20761) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * refactor(web): the open panel pull request URL keeps its caching without "use memo" (pingdotgg#20768) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * refactor(web): the command output panel keeps its caching without "use memo" hooks (pingdotgg#20763) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * fix(client-runtime): the agents pill counts background agents from earlier turns (pingdotgg#20785) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * refactor(web): the diff panel keeps its caching without "use memo" hooks (pingdotgg#20745) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * refactor(web): the composer builds model options without a "use memo" hook (pingdotgg#20780) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * refactor(web): the preview bridge keeps its stable thread ref without "use memo" hooks (pingdotgg#20746) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * refactor(web): the pull request code tab keeps its caching with one "use memo" hook (pingdotgg#20773) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * refactor(web): provider models keep their caching without "use memo" (pingdotgg#20775) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * refactor(web): the thread lineage panel keeps its caching without "use memo" hooks (pingdotgg#20789) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * refactor(web): the attachment preview keeps its caching without "use memo" hooks (pingdotgg#20757) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * refactor(web): the pending user input panel keeps its caching without "use memo" hooks (pingdotgg#20762) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * refactor(web): the queued runs control keeps its caching without "use memo" hooks (pingdotgg#20779) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * refactor(web): the open-in picker keeps its caching without "use memo" hooks (pingdotgg#20758) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * refactor(web): highlighted tokens keep their caching without "use memo" hooks (pingdotgg#20760) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * refactor(web): merged settings stay cached without "use memo" (pingdotgg#20765) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * fix(server): a running Claude workflow member shows its answer so far (pingdotgg#20786) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * refactor(web): the keybindings panel keeps its caching without "use memo" hooks (pingdotgg#20782) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * refactor(web): linked pull request status keeps its caching without "use memo" hooks (pingdotgg#20781) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * refactor(web): the new-thread hook keeps its caching without "use memo" (pingdotgg#20769) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * refactor(web): review file patches keep their caching without "use memo" hooks (pingdotgg#20788) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * chore(web): React compiler rules apply to every web file (pingdotgg#20791) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * refactor(server): resolve project and worktree folders in one place (pingdotgg#20449) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * refactor(server): route git config through one env helper and end option parsing before names (pingdotgg#20440) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * test(web): React tests run compiled in a real browser (pingdotgg#20797) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * fix(android): menu icons take taps (pingdotgg#20802) Co-authored-by: Pixel Perfect <me@pixp.cc> Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com> * fix(android): a composer focused through an app switch stays above the keyboard (pingdotgg#20803) Co-authored-by: Pixel Perfect <me@pixp.cc> Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com> * refactor(web): the usage chart keeps its caching without "use memo" (pingdotgg#20792) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * refactor(web): pull request detail keeps its caching without "use memo" (pingdotgg#20811) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * refactor(web): the legacy sidebar keeps its caching without "use memo" (pingdotgg#20793) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * refactor(web): turn diff summaries keep their caching without "use memo" (pingdotgg#20794) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * refactor(web): the pull requests page keeps its caching without "use memo" (pingdotgg#20820) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * refactor(web): the terminal drawer keeps its caching without "use memo" (pingdotgg#20799) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * refactor(web): the model picker keeps its caching without "use memo" (pingdotgg#20815) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * refactor(web): pull request code tab keeps its caching without "use memo" (pingdotgg#20816) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * refactor(web): find reveal refs stay cached without "use memo" (pingdotgg#20818) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * refactor(web): the branch selector keeps its caching without "use memo" (pingdotgg#20822) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * refactor(web): the guide excerpt keeps its caching without "use memo" (pingdotgg#20798) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * refactor(web): chat composer keeps its caching without "use memo" (pingdotgg#20834) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * refactor(web): the usage page keeps its caching without "use memo" (pingdotgg#20807) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * refactor(web): the hosted browser webview keeps its caching without "use memo" (pingdotgg#20824) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * refactor(web): the command palette provider lookup keeps its caching without "use memo" (pingdotgg#20827) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * chore(web): lint rejects "use memo" directives (pingdotgg#20843) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(web): relative "checked" labels re-render only when their text changes (pingdotgg#20819) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(web): toggling a client setting no longer re-renders every settings row (pingdotgg#20830) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(web): typing in the ACP registry search no longer re-renders every result row (pingdotgg#20817) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(web): searching keybindings only renders rows entering or leaving the filter (pingdotgg#20840) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(web): unchanged model picker rows skip re-rendering while searching (pingdotgg#20838) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(web): router updates no longer re-render thread route consumers (pingdotgg#20837) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(web): a minute tick no longer re-renders every sidebar thread row (pingdotgg#20814) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * test(web): jsdom-leftovers tests run in a real browser (pingdotgg#20862) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * test(web): hook-harness tests run in a real browser (pingdotgg#20866) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * test(web): misc-b tests run in a real browser (pingdotgg#20869) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * test(web): settings tests run in a real browser (pingdotgg#20872) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * test(web): misc-a tests run in a real browser (pingdotgg#20868) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * test(web): chat tests run in a real browser (pingdotgg#20870) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * test(web): browser tests from different checkouts no longer fight over one port (pingdotgg#20875) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * fix(web): chat view no longer renders twice per update (pingdotgg#20847) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(web): markdown replies no longer re-render on reconnects and config pushes (pingdotgg#20852) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(web): provider status pushes no longer re-render every timeline row (pingdotgg#20854) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(client): a reconnect snapshot keeps unchanged skills and providers identical (pingdotgg#20855) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(web): a client setting write only re-renders readers whose value changed (pingdotgg#20848) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(web): right panel tabs no longer all re-render on unrelated chat updates (pingdotgg#20853) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(web): opening chat and usage dialogs no longer re-renders the whole page (pingdotgg#20859) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(web): typing in form dialogs no longer re-renders the dialog chrome (pingdotgg#20842) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * fix(web): a project action's error belongs to the request that opened it (pingdotgg#20891) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * test(web): the open-in picker test waits for the menu to close (pingdotgg#20892) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(web): opening an image preview no longer re-renders the chat view (pingdotgg#20845) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(web): another thread streaming no longer re-renders the app root and thread panels (pingdotgg#20823) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(client): equal query refetches no longer re-render PR rows (pingdotgg#20850) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(client): provider status pushes no longer re-render environment presentation consumers (pingdotgg#20821) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(web): a provider status push no longer re-renders every provider card and model row (pingdotgg#20851) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * test(web): onboarding and usage tests run in a real browser (pingdotgg#20902) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * test(web): pr-and-diff tests run in a real browser (pingdotgg#20901) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * test(web): chat markdown and timeline tests run in a real browser (pingdotgg#20905) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * test(web): provider, usage and relationship tests run in a real browser (pingdotgg#20914) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(web): the open thread's chat chrome no longer re-renders on every streaming tick (pingdotgg#20860) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * test(web): every React test runs in a real browser (pingdotgg#20944) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * fix(release): release tests install Chromium for the web browser tests (pingdotgg#20934) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * fix(server): drop V1 projections nothing reads after the V2 upgrade (pingdotgg#20947) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * feat(server): t3 doctor can delete the database from before 0.1.0 (pingdotgg#20948) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * fix(web): a snoozed thread wakes in the open chat view (pingdotgg#21019) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * fix(web): time-based labels update under the React Compiler (pingdotgg#21026) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * test(web): the right panel Escape test waits for focus to return (pingdotgg#21030) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * fix(web): table expand button only shows when a cell is cut off (pingdotgg#19782) Co-authored-by: PR Batch Tester <agent@local.test> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(mobile): Metro runs the React Compiler, with a coverage ratchet (pingdotgg#20967) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(mobile): usage screens compile with the React Compiler (pingdotgg#20969) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(mobile): Connect onboarding compiles with the React Compiler (pingdotgg#20970) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(mobile): device preview compiles with the React Compiler (pingdotgg#20971) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * fix(merge): adapt fork features to upstream 2026-10-18 APIs Post-merge adaptations for the upstream/main sync: split fork RPC handlers into ForkWsRpcGroup/layerForkWsRpc so the TypeScript requirements graph stays inferable; restore fork mobile components (MaterialListRow, ControlPillMenu) on the new components/ui paths; port fork quick-action hook tests to the browser runner; restore fork PR handoff task-destination coverage in upstream browser tests; fix j4code CLI invocation fallback args, storageCleanup null-branch subagent classification, and stale scope/dedup expectations. --------- Co-authored-by: Julius Marminge <julius0216@outlook.com> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> Co-authored-by: Bilal Bakr <62337003+Bil0000@users.noreply.github.com> Co-authored-by: Alex <me@pixp.cc> Co-authored-by: shivam <91240327+shivamhwp@users.noreply.github.com> Co-authored-by: PR Batch Tester <agent@local.test>
## 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…
## 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…
Problem
Render audit, lane 4, thread view on a 5.5k-item thread, idle across one
providerStatusespush where onlyproviders[].checkedAt,usageLimits.checkedAtandversionAdvisory.checkedAtchange: 818 renders in 2 commits. The audit found two causes:ChatViewpassed the environment'sserverConfig.providerstoMessagesTimelineasproviderStatuses, andMessagesTimelineput it in theTimelineRowCtxshared state. Each push builds a new providers array, sosharedStatewas rebuilt and every row that reads the context re-rendered: about 14AssistantTimelineRow/AssistantMessageMeta/AssistantForkButton, 12TurnFoldTimelineRow, and about 300 tooltips under them. Only subagent rows, subagent notification links and handoff rows use providers.ChatMarkdownsubscribed to the whole server-config map throughusePullRequestLinking. perf(web): markdown replies no longer re-render on reconnects and config pushes #20852 already fixes this with a per-environmentlinkModeAtom, so this PR does not touch it.Fix
providerStatusesis gone fromTimelineRowCtx, theMessagesTimelineprops, andChatView, which also dropstimelineProviders.serverEnvironment.providersValueAtom(environmentId)themselves:EnvironmentSubagentAvatar(subagent group header andSubagentTimelineLink) uses twouseAtomValueselectors that return onlydisplayNameandiconUrl. Those are strings, so acheckedAt-only push givesObject.is-equal results and the avatar does not re-render.SubagentTimelineTooltipreads the full list. It mounts only while its hover popup is open.EnvironmentHandoffRow, which reads the list and renders the existingHandoffRow.ChatView's pending-handoffHandoffRowis unchanged.No
useMemo,useCallback,memoor"use memo"was added.Why consumers now bail out (compiled output, oxc-transform-react)
These files were compiled with
reactCompiler: { reportDiagnostics: true }, the same callreactCompilerCoverage.test.tsmakes:MessagesTimeline.tsx,V2LifecycleRow.tsxandChatView.tsx. All three report 0 diagnostics.ConversationTimelinebuildssharedState(t88) under one guard. That guard used to include$[…] !== providerStatuses. It now reads:Nothing in that guard changes on a provider push, so
TimelineRowCtxkeeps its value and theuse(TimelineRowCtx)readers do not re-render.EnvironmentSubagentAvatarcompiles to:The selector is stable and returns a string.
useSyncExternalStorecompares that string, so the avatar only re-renders when the name or icon actually changes.What still renders on a provider push
ChatViewitself, which reads providers for the composer, the model picker and the pending-handoff row.ChatMarkdownblocks, until perf(web): markdown replies no longer re-render on reconnects and config pushes #20852 lands.After:
Checks run:
MessagesTimeline.test.tsx(88 passed; the handoff test now supplies providers through the atom withRegistryProviderinitialValues), the apps/web typecheck, and scoped lint on the changed files.🤖 Generated with Claude Code