Repository navigation
test(web): every React test runs in a real browser - #20944
Conversation
Convert the last jsdom suites (GitActionsControl, its lifecycle suite, and the BranchToolbar panel) to browser tests that click through the real control, then drop jsdom and react-test-renderer from apps/web. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
ApprovabilityVerdict: Approved at Macroscope's review found this PR approvable — This PR replaces web-only test environments with real Chromium coverage and removes obsolete test dependencies. Its changes are limited to tests, development metadata, documentation, and comments, with no customer-facing runtime behavior or product defaults changed. You can add or adjust custom eligibility rules. Learn more. |
Thread transfer impact✅ Thread transfer remains within every enforced ceiling.
Baseline: Scenario and decoded snapshot size10 historical turns, 5 command tools per turn, 878.9 KiB retained MCP result per historical turn, and a 1.05 MiB retained result in the measured turn.
Updated in place by a trusted workflow. PR artifacts are strictly validated and never executed. |
Sync 1017c: 13 upstream commits. ChatView keeps the fork's handoff follow beside upstream's quiet thread shell. The fork ThreadNotificationCoordinator test moves to the browser project, since upstream pingdotgg#20944 removed jsdom and react-test-renderer from apps/web. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
## 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
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Move the eight jsdom/react-test-renderer voice suites to the *.browser.test.tsx Chromium project and drop jsdom, react-test-renderer, and its types from apps/web, matching main after PR pingdotgg#20944. Merge originals into the composerDraftStore and @effect/atom-react mocks so the browser import graph keeps DraftId and RegistryContext. Coverage of the six failing suites runs in CI.
* 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>
The last three apps/web suites still ran in jsdom. The GitActionsControl suites used react-test-renderer with every UI primitive stubbed as a string, and called
onClickprops directly. That meant they never exercised the real menu, dialogs, or disabled states. This PR converts those three suites and then removes jsdom from apps/web.Per file
GitActionsControl.test.ts+GitActionsControl.lifecycle.test.ts→GitActionsControl.browser.test.tsx. The two files shared every mock, so they are merged into one real-DOM suite of 14 cases. The suite opens the options menu, clicks Commit, and drives the real commit dialog and default-branch prompt throughuserEvent. Every vi.mock is built from the real module. The suite mocksuseQuietThreadShell(per perf(web): the open thread's chat chrome no longer re-renders on every streaming tick #20860) and uses the real composer draft store.readEnvironmentScopestops the action at click time.readEnvironmentScopeguards: 3 cases fail.BranchToolbar.panel.test.tsx→BranchToolbar.panel.browser.test.tsx. Same 4 cases. The machine menu is now opened withuserEventand queried by role, and the root is shared and unmounted insideact.Dependencies
jsdom,react-test-renderer, and@types/react-test-rendererfromapps/web/package.json, and updated the lockfile.jsdomignore for apps/web fromknip.jsonc.apps/mobilestill depends on jsdom, so the pnpm override for jsdom's optional peer stays.vite.config.tshad no jsdom environment or setup file left, so it is unchanged.git grepfinds no@vitest-environment jsdom,react-test-renderer, orjsdomin apps/web.Docs
docs/operations/development.md: the Checks section now says that apps/web tests which render React or touch the DOM are*.browser.test.{ts,tsx}and run in headless Chromium, and that there is no jsdom.docs/internals/performance-regressions.md: fixed the renamedThreadStatusIndicators.subscriptions.browser.test.tsxreference.Checks
surface.test.tspasses in the unit project.vp run knip:check, scoped lint, and the apps/web typecheck pass.Model: Claude Opus 5.5, Claude Code.
🤖 Generated with Claude Code