Skip to content

perf(client): provider status pushes no longer re-render environment presentation consumers - #20821

Merged
juliusmarminge merged 2 commits into
mainfrom
perf/env-presentation-identity
Oct 17, 2026
Merged

juliusmarminge merged 2 commits into
mainfrom
perf/env-presentation-identity

Conversation

@juliusmarminge

@juliusmarminge juliusmarminge commented Oct 17, 2026 •

Copy link
Copy Markdown
Member

Problem

Render audit, every settings page, idle across one providerStatuses push: 184 renders in 2 commits. Top causes were 24 SidebarMenuItem, 22 SidebarMenuButton, SettingsSidebarNav, RootRouteView, FirstRunGate, EventRouter and about 20 root coordinators (ProviderAuthCallbackCoordinator, PermissionUpdateNotice, ProjectCloneToastCoordinator, ProviderUpdateLaunchNotification, CommandPalette, SettingsScopeProvider, ...).

The hook-slot diff showed {entry, connection, serverConfig} getting a new identity on each push. EnvironmentPresentation.serverConfig was the full ServerConfig. The projection already keeps unchanged providers through reuseUnchanged (#20392), but a push still builds a new config object with fresh checkedAt stamps. So presentationAtom built a new presentation, presentationsAtom built a new map, and every useEnvironments() / usePrimaryEnvironment() subscriber re-rendered, though none of them reads providers.

Fix

  • EnvironmentPresentation.serverConfig is now Omit<ServerConfig, "providers"> (EnvironmentServerConfig). presentationAtom drops providers and keeps the previous object when entry, connection (compared by phase, error and traceId) and every remaining top-level config field are unchanged. A provider push now leaves the presentation, presentationsAtom and useEnvironments().environments at the same reference.
  • Provider readers use a separate providersByEnvironmentAtom (Map<EnvironmentId, providers>, reused when no array changed). On web that is the useEnvironmentProviders() hook. Callers: ChatView, CommandPalette, ProviderUpdatesAction, ProviderUpdateLaunchNotification, ProjectDefaultsSettings, useScopedModelAvailability, SettingsPanels, SourceControlWritingSettings, ChatGptWelcomeCoordinator, UsagePage, plus mobile's provider accounts screen. NewThreadLinkView only needs providers in a handler, so it reads them from appAtomRegistry when the handler runs.
  • Usage-limit surfaces (web UsageLimits, mobile UsageLimitsPooled, ChatGptUsageSummary and the widget snapshot) read limits from providers, so they use presentationsWithProvidersAtom. That atom reattaches the full config. LimitPresentations.providers is now required, so a caller that passes a provider-less presentation fails to typecheck instead of quietly showing no limits.

The type change makes the compiler list every reader that needs providers, so none of them can quietly get an empty list.

Why consumers now bail out (compiled output, oxc-transform-react)

useEnvironments compiles to:

const presentationById = useAtomValue(environmentPresentations.presentationsAtom);
if ($[0] !== presentationById) { t0 = [...presentationById.entries()].map(_temp); ... } else { t0 = $[1]; }
if ($[2] !== catalog.isReady || $[3] !== environments || $[4] !== networkStatus || $[5] !== presentationById) { t1 = {...} } else { t1 = $[6]; }

Before, presentationById changed on every push, which invalidated $[0], then environments, then the returned object. After, presentationsAtom returns the same map, so the atom does not notify and the subscriber does not re-render. Even when a component re-renders for another reason, environments and the returned object stay cached.

In useAvailableSettingsSearchItems (SettingsSidebarNav), the cache keys $[2], $[4] and $[6] (environments) no longer change, so the filtered nav list and its 11 SidebarMenuButtons keep their props.

All 14 touched web files compile with 0 React Compiler diagnostics.

presentation.test.ts has a new test. When only providers change, presentationsAtom keeps its reference and does not notify subscribers, while providersByEnvironmentAtom notifies exactly once. A change to any other config field still updates the presentation.

Sidebar thread rows (second commit)

The re-measure showed the settings win (370 to 106 renders per push) but no change on the thread view (400 to 390). Of what was left there, the timeline rows come from the providerStatuses context in MessagesTimeline (#20854), and ChatMarkdown comes from its config subscriptions (#20852). Neither PR, nor the merged #20814 (minute tick), covers the sidebar part: per push, 5 SidebarThreadRow#31<useSyncExternalStore>, SidebarThreadTooltip#0, SidebarProviderStack props:providerEntryByInstanceId and their ~140 tooltip renders.

Two causes, both the full environmentServerConfigsAtom map, which changes on every provider push:

  • useSidebarLookups rebuilt each environment's provider entry map from config.providers, so every memoized row got a new providerEntryByInstanceId.
  • useSupportsMultiplePullRequests (in each row, its tooltip and useLinkedThreadPullRequest) subscribed to the whole map to read one capability.

Fix:

  • environmentPresentations.serverConfigsAtom is the enabled environments' EnvironmentServerConfig (no providers) built from the presentations, so it keeps its identity across provider pushes. Web useServerConfigs() now returns it. That covers every web capability reader (sidebar, PR rows and panels, CommandOutputPanel, RightPanelTabs, ...). The one reader that needs providers, ThreadRelationshipsPanel, now uses useEnvironmentProviders(). environmentServerConfigsAtom itself is unchanged, so mobile is unaffected.
  • sidebarProviderEntriesAtom derives the sidebar's per-environment entries and keeps each environment's map while the fields rows show (instance id, driver, name, accent, registry icon, models) are unchanged. The models array is already reused by reuseUnchanged when nothing in it changed.

Compiled (oxc-transform-react): useSidebarLookups now reads useAtomValue(sidebarProviderEntriesAtom) directly, so the row prop providerEntriesByEnvironment.get(thread.environmentId) keeps its reference on a checkedAt-only push and the memo row bails out. Sidebar.tsx, ThreadRelationshipsControl.tsx and entities.ts compile with 0 diagnostics.

What still renders on a provider push

After: settings pages 370 to 106 renders per push (first commit, re-measured). Thread view: to be re-measured with the second commit.

Checks run: typecheck for apps/web, apps/mobile, packages/client-runtime and packages/shared; reactCompilerCoverage, the Sidebar.logic, ThreadRelationshipsControl.agents, ThreadStatusIndicators.subscriptions, ThreadDetailsPrRow, PullRequestDetailPanel, ProviderSettingsPanel.environment and useHandleNewThread tests; presentation.test.ts, usageLimits.test.ts, the UsagePage, WelcomeWizard, ProjectSettingsPanel, SourceControlWritingSettings, IntegrationsSettings and ProviderUpdateEnvironmentRows tests, and the mobile usage and widget tests; scoped lint on the changed files.

Opus 5.5 via Claude Code.

🤖 Generated with Claude Code

@github-actions github-actions Bot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. size:L 100-499 changed lines (additions + deletions). labels Oct 17, 2026
@juliusmarminge juliusmarminge added the macroscope-review Opt PRs made by unvouched contributors in for Macroscope review. Vouched contributors auto-reviews label Oct 17, 2026
@macroscopeapp

macroscopeapp Bot commented Oct 17, 2026 •

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Needs Human Approval

Macroscope's review found this PR requires human approval — This is a broad shared-state refactor that changes environment presentation contracts and rerender/subscription behavior across web and mobile consumers. The intended performance gain is clear and tests were added, but the cross-cutting runtime impact warrants human review.

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

@github-actions

github-actions Bot commented Oct 17, 2026 •

Copy link
Copy Markdown
Contributor

Thread transfer impact

✅ Thread transfer remains within every enforced ceiling.

Provider Metric Main baseline This PR Impact PR ceiling
Codex Total thread wire 5.0 KiB 4.9 KiB −23 B (−0.5%) 6.8 KiB ✅
Codex Thread snapshot wire 3.8 KiB 3.8 KiB 0 B (0.0%) 4.9 KiB ✅
Codex Live turn WebSocket wire 1.2 KiB 1.2 KiB −23 B (−1.9%) 2.0 KiB ✅
Codex Live turn WebSocket decoded 20.9 KiB 20.8 KiB −41 B (−0.2%) 29.3 KiB ✅
Codex Live turn messages 2 1 −1 (−50.0%) 8 ✅
Claude Total thread wire 5.0 KiB 5.0 KiB +24 B (+0.5%) 6.8 KiB ✅
Claude Thread snapshot wire 3.8 KiB 3.8 KiB 0 B (0.0%) 4.9 KiB ✅
Claude Live turn WebSocket wire 1.2 KiB 1.2 KiB +24 B (+2.0%) 2.0 KiB ✅
Claude Live turn WebSocket decoded 21.2 KiB 21.2 KiB +41 B (+0.2%) 29.3 KiB ✅
Claude Live turn messages 1 2 +1 (+100.0%) 8 ✅

Baseline: edb2155 · PR result: cc8b47f · Source CI: success

Scenario and decoded snapshot size

10 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.

  • Codex decoded thread snapshot: 108.5 KiB
  • Claude decoded thread snapshot: 108.8 KiB

Updated in place by a trusted workflow. PR artifacts are strictly validated and never executed.

@coderabbitai

coderabbitai Bot commented Oct 17, 2026 •

Copy link
Copy Markdown

Review in Change Stack →

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration
  • Configuration used: Path: .coderabbit.config.ts
  • Review profile: CHILL
  • Plan: Team
  • Run ID: 78b54a65-6860-449b-9cee-aadeea10c684
📥 Commits

Reviewing files that changed from the base of the PR and between 9946bf7 and cc8b47f.

📒 Files selected for processing: 6
  • apps/web/src/components/ChatView.tsx
  • apps/web/src/components/CommandPalette.tsx
  • apps/web/src/components/chat/ThreadRelationshipsControl.agents.test.tsx
  • apps/web/src/components/chat/ThreadRelationshipsControl.tsx
  • apps/web/src/components/usage/UsagePage.tsx
  • apps/web/src/state/entities.ts

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

📝 Walkthrough

Provider data now has separate state from base environment presentations. Web and mobile provider-selection, settings, account, sidebar, relationship, and usage paths read provider maps or provider-enriched presentations.

Changes: Provider state and consumers

Layer / File(s) Summary
Separate provider state from presentations
packages/client-runtime/src/connection/presentation.ts, packages/client-runtime/src/state/presentation.ts, packages/client-runtime/src/state/presentation.test.ts, apps/web/src/state/environments.ts, apps/web/src/state/entities.ts
Base presentations use provider-free server configuration. Separate atoms expose server configurations, providers by environment, and presentations with providers. Tests cover provider-only updates and reference reuse.
Web provider consumers
apps/web/src/components/ChatView.tsx, apps/web/src/components/CommandPalette.tsx, apps/web/src/components/Sidebar.tsx, apps/web/src/components/chat/*, apps/web/src/components/Provider*, apps/web/src/components/promptLinks/*, apps/web/src/components/usage/UsagePage.tsx
Web chat, prompt, provider-update, sidebar, relationship, and sharing paths read provider data by environment. Sidebar derives narrowed provider entries and reuses unchanged maps.
Settings and account provider consumers
apps/web/src/components/settings/*, apps/web/src/components/cloud/CloudEnvironmentConnectList.tsx, apps/mobile/src/features/settings/SettingsProviderAccountsRouteScreen.tsx
Settings and mobile account screens use mapped providers for provider lists and model checks. Some server configuration inputs now require only the environment field.
Usage data and provider requirements
apps/web/src/components/usage/*, apps/mobile/src/features/usage/*, apps/mobile/src/widgets/SubscriptionUsageCoordinator.tsx, packages/shared/src/usageLimits.ts, packages/shared/src/usageLimits.test.ts
Usage views read provider-enriched presentations or provider maps. Usage-limit inputs require provider arrays, and fixtures include empty arrays.

Priority: ➖ Normal

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

Change: Refactor

Suggested reviewers: maria-rcks

Merge Risk: ⚪ Minimal · up to cc8b4

No actionable merge-blocking risk is established for the provider-state change; it is ready for normal merge checks.

Pre-merge checks: Passed 3 · Failed 1

Failed Failed checks: 1 warning

Check name Status Explanation Resolution
Description check Warning The description gives detailed problem, implementation, performance results, limitations, and verification details. However, it omits the required Scope and approval section and does not provide the r… Add a Scope and approval section with the linked issue or maintainer approval, or explain why this focused fix qualifies for an exemption. Add before/after UI evidence as required, or state why screenshots and recordings are not applicable.
Passed Passed checks: 3 passed
Check name Status Explanation
Title check Passed The title clearly and concisely describes the main performance change: provider-status pushes no longer re-render environment presentation consumers.
Linked Issues check Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check Passed Check skipped because no linked issues were found for this pull request.
Full details: Description check

Explanation

The description gives detailed problem, implementation, performance results, limitations, and verification details. However, it omits the required Scope and approval section and does not provide the required UI evidence or explain why that evidence is not applicable.

Resolution

Add a Scope and approval section with the linked issue or maintainer approval, or explain why this focused fix qualifies for an exemption. Add before/after UI evidence as required, or state why screenshots and recordings are not applicable.

  • Fix all pre-merge checks with AI
✨ Finishing Touches
📝 Generate docstrings
  • Commit to this branch
  • Create a new PR
🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

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

@juliusmarminge

Copy link
Copy Markdown
Member Author

Re-measured in the app (seeded data, same scenario, median of 3):

The page sits idle while a second tab clicks Settings > Providers "Refresh", which gives 3-5 providerStatuses pushes per window. Server runs without --watch and there were no reconnects. Numbers are renders in the commit that follows each push (median push).

scenario main this PR
Settings > General, renders per push 370 106
Settings > General, 15s window (4 pushes) 1470 414
thread view, renders per push 400 390

Settings: a 71% drop. On main, each push re-rendered RootRouteView, 40 SettingsRows and the whole settings sidebar nav. With this PR none of those render. What's left (~106) starts at components that still read the full config or providers: DocumentTitleSync, ChatGptWelcomeCoordinator, FirstRunGate#25, EventRouter, ProviderUpdatePrimaryNotification, CommandPalette, SidebarUpdateControl, GeneralSettingsPanel, ProjectDefaultsSettings. The provider-reading ones are legitimate. DocumentTitleSync, FirstRunGate and GeneralSettingsPanel look like primaryServerConfigAtom readers (out of scope per the PR body).

Thread view: almost unchanged (400 → 390). The push still re-renders the whole timeline: 11 ChatMarkdown#8<useContext>, the AssistantTimelineRow / UserTimelineRow / MessageMeta / ForkButton / RevertUserMessageButton ×5-6 rows, and the sidebar rows (SidebarThreadRow#31, SidebarThreadTooltip). That comes through a context that ChatView provides from provider data, and this PR doesn't address it. One PR run had a reconnect-free but noisy first window (40 commits, a router/MatchImpl churn unrelated to the push), so I added a 4th run. The 3 clean runs were 390/390/390.

Behaviour: Settings > Providers still shows each provider's version and auth status, and "Checked just now" updates after Refresh. Usage limits and the provider update pill still render.

Merge state: conflicts with main.

@juliusmarminge
juliusmarminge force-pushed the perf/env-presentation-identity branch from 6fc237b to 9946bf7 Compare October 17, 2026 09:45
@juliusmarminge

Copy link
Copy Markdown
Member Author

Re-measured the reworked PR in the app (seeded data, median of 3 per side):

This PR no longer cherry-picks onto today's main (2fae0f9841). It conflicts in ChatView.tsx with #20854. So I measured the PR head 9946bf7a4f against its merge-base 130f4a2457, and also measured main fresh for reference. The server ran without --watch, and none of the push windows had a reconnect. Each push window: the page sits idle while a second tab clicks Settings > Providers "Refresh", which gives 4 providerStatuses pushes. "Per push" counts the renders in the commits within 300 ms of each push.

scenario main 2fae0f98 merge-base 130f4a24 this PR
Settings > General, renders per push 370 372 105
Settings > General, 15 s window 1470 1492 424
thread view, renders per push 311 323 146
thread view, 15 s window 1240 1294 580
2 environments: env2 offline 12 s then back, thread in env1, whole window 1938 (1926 / 1938 / 2877) 2031 (2031 / 2031 / 2673) 1207 (1207 / 1207 / 1495)
↳ ChatView renders in that window 15 15 7
↳ EnvironmentPermissionNotice renders 31 31 15

(The env2 server ran from a copy of lane 4's second data dir on port 14299, paired through Settings > Connections. The high outlier in each column is a window where provider pushes landed during the reconnect.)

Settings: a 72% drop, the same as round 1. On a push, the 40 SettingsRows, RootRouteView and the settings nav no longer render. What's left (~105) starts at DocumentTitleSync, ChatGptWelcomeCoordinator, FirstRunGate#25, EventRouter, ProviderUpdatePrimaryNotification, CommandPalette, SidebarUpdateControl, GeneralSettingsPanel and ProjectDefaultsSettings, which are the provider and server-config readers.

Thread view: this is the new part, and it works. The sidebar rows used to re-render on every push (SidebarThreadRow#34 x8, SidebarThreadTooltip x8, about 38 TooltipTrigger). They now don't render at all. The 146 that's left is the same set of root coordinators plus Sidebar#24, SidebarProviderUpdatePill and 8 SortableThreadRow (which bail out below).

Two environments: halved. ChatView now renders 7 times instead of 15 while env2 drops and comes back. The remaining cost is the sidebar (SortableThreadRow parent-same-props<-SortableContext, ~112 TooltipTrigger), with 24 SidebarThreadRow renders on both sides. Those come from env2's threads leaving and coming back in the list, which is real content.

Behaviour check: Settings > Providers still shows each provider's version and auth status ("Codex v0.163.0, Authenticated", "Claude v2.1.301, Authenticated"), and "Checked …" updates after Refresh. The sidebar rows still show their provider marks. Settings > Connections shows env2 as "Reconnecting…" while it's down and "Connected" after it comes back.

Merge state: conflicts with main (ChatView.tsx, against #20854's timelineProviders change). It needs a rebase before it can land.

Screenshot (PR, thread view after the pushes): /home/julius/.cache/audit/remeasure/20821-after.png

juliusmarminge and others added 2 commits October 17, 2026 05:03
…presentation consumers

Environment presentations carried the full server config, so every
providerStatuses push (often only checkedAt changes) gave each
presentation a new identity and re-rendered every useEnvironments()
subscriber, including the settings nav and root coordinators.

Presentations now carry the config without providers and keep the
previous object when entry, connection and the remaining config fields
are unchanged. Provider readers use providersByEnvironmentAtom, and
usage-limit surfaces use presentationsWithProvidersAtom.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…rows

The sidebar read the full server-configs map, which changes on every
providerStatuses push. useSidebarLookups rebuilt each environment's
provider entry map from it, so every memoized SidebarThreadRow,
SidebarProviderStack and SidebarThreadTooltip got a new
providerEntryByInstanceId, and useSupportsMultiplePullRequests
re-rendered every row and tooltip through the same map.

Web useServerConfigs() now returns a provider-less map
(environmentPresentations.serverConfigsAtom) that keeps its identity
across provider pushes. The sidebar's provider entries come from
sidebarProviderEntriesAtom, which keeps each environment's map while
the fields rows show (name, icon, accent, models) are unchanged.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@juliusmarminge
juliusmarminge force-pushed the perf/env-presentation-identity branch from 9946bf7 to cc8b47f Compare October 17, 2026 12:06
@juliusmarminge
juliusmarminge merged commit 4a5dade into main Oct 17, 2026
30 checks passed
@juliusmarminge
juliusmarminge deleted the perf/env-presentation-identity branch October 17, 2026 12:12
github-actions Bot added a commit to omarcresp/t3code-flake that referenced this pull request Oct 17, 2026
## 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
github-actions Bot added a commit to davidvanderklay/t3code-flake that referenced this pull request Oct 17, 2026
## 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
htoorannysaurus pushed a commit to htoorannysaurus/t3code that referenced this pull request Oct 17, 2026
…presentation consumers (pingdotgg#20821)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
joaoheusi added a commit to joaoheusi/t3code that referenced this pull request Oct 18, 2026
* 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>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

macroscope-review Opt PRs made by unvouched contributors in for Macroscope review. Vouched contributors auto-reviews size:L 100-499 changed lines (additions + deletions). vouch:trusted PR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant