Repository navigation
refactor(web): the new-thread hook keeps its caching without "use memo" - #20769
Conversation
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
ApprovabilityVerdict: Approved at Macroscope's review found this PR approvable — This one-file refactor preserves the existing project-ordering and default-project selection while removing an unnecessary memo directive and limiting the derived value to what callers use. Its only behavioral difference is bounded referential-identity churn when the projects array changes, with no schema, deployment, security, or product-default changes. You can add or adjust custom eligibility rules. Learn more. |
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info
📝 Walkthrough
Merge Risk: ⚪ Minimal · up to
|
## 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
…o" (pingdotgg#20769) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
useOrderedProjectscarried a"use memo"directive. Inline, the ordered project list would be built fromuseProjects()before theuseNewThreadHandler()call and read again after it (orderedProjects[0]→scopeProjectRef), so it straddled that hook and the ordering would run every render.The helper is inlined.
useNewThreadHandler()moved up beside the other hooks, and the ordering anddefaultProjectRefare derived after it, so nothing crosses a hook call. Only the first project is destructured, since that is all the hook uses.kept cached: the project ordering and
defaultProjectRef(keyed onprojectsandprojectOrder), and the returned object that_chat.tsx,CommandPalette,SidebarandSnapShotCoordinatorread. One small difference:defaultProjectRefused to keep its identity whenprojectschanged but the first project object did not. It now changes whenever theprojectsarray does.🤖 Generated with Claude Code (Claude Opus 5.5)