Skip to content

fix(web): time-based labels update under the React Compiler - #21026

Merged
juliusmarminge merged 3 commits into
mainfrom
fix/web-compiler-clock-reads
Oct 17, 2026
Merged

juliusmarminge merged 3 commits into
mainfrom
fix/web-compiler-clock-reads

Conversation

@juliusmarminge

Copy link
Copy Markdown
Member

The React Compiler caches render-time expressions on the reactive values they read. A clock read inside one of those expressions (formatRelativeTimeLabel(at) with its Date.now() default, or canSnooze(thread, { now: new Date().toISOString() })) freezes until those other inputs change. react/purity misses these because the clock sits in a default argument or an object literal. Same class as #20967 (mobile) and #21019 (ChatView).

Fix. Relative-time labels render through a new RelativeTime component built on useRelativeTimeState, so each label re-renders only when its text changes. Scheduled-task labels (relativeLabel also formats future times) take the useNowMinute tick as an explicit clock. This replaces two parent useRelativeTimeTick(60_000) calls whose re-renders never reached the memoized rows. The sidebar row's snooze gate gets the #20967 / #21019 treatment: its clock is state, reset when thread changes and advanced by a timer at the queued-turn grace expiry.

I checked every site by compiling the file with oxc-transform-react and reading the $[n] !== guard around the clock read.

Site Frozen Visible bug Fix
Sidebar.tsx:1859 row canSnooze gate yes, on thread After a message, the snooze button stays hidden past the 2-minute queued-turn grace until the thread changes clock in state + expiry timer
ScheduledTasksSettings.tsx:615 "Next run in 5m" yes, on task.nextRunAt Countdown never moves; parent tick re-renders, memoized row doesn't ScheduledRelativeLabel (useNowMinute)
ScheduledTasksSettings.tsx:733,780 webhook delivery "5m ago" yes, on deliveries stale age same
ThreadAutomationsPanel.tsx:172 "next in 5m" yes, on panel inputs stale countdown same
PullRequestListRow.tsx:99 updated age yes, on updatedAt stale age RelativeTime
PullRequestTimelineTab.tsx:223,330,391,432,486 yes, on event.at stale ages RelativeTime
PullRequestSummaryTab.tsx:107, PullRequestReviewAnnotation.tsx:269 comment ages yes stale ages RelativeTime
PullRequestDetailPanel.tsx:2343,2514 updated age yes, on detail (live refresh ≥5 min, and an unchanged PR keeps the same object) stale age RelativeTime
PullRequestLinkPreview.tsx:142, PullRequestGhosts.tsx:206 yes stale age RelativeTime
ThreadPullRequestsPanel.tsx:184,379 linked / "synced 5m ago" yes, on link.linkedAt / thread.pullRequests stale age RelativeTime
LegacySidebar.tsx:877 row age yes, on thread timestamps stale age (legacy sidebar) RelativeTime
SettingsPanels.tsx:3513,3515 archived/created ages yes, on the archive list stale ages RelativeTime
DiagnosticsSettings.tsx:1185,1213,1241,1287 trace ages yes, on data stale ages between manual refreshes RelativeTimeNoWrap (useRelativeTimeState)
ComposerStashMenu.tsx:208 stash age yes, on entries reopening the menu shows the age from when the stash last changed RelativeTime
PreviewRecentUrlCard.tsx:22 visited age yes, on lastVisitedAt; its bare useNowMinute() re-rendered without busting the cache stale age RelativeTime
Sidebar.tsx:1061 snooze presets yes, but open is a dep, so it recomputes on every open none checked
Sidebar.tsx:583 partitionSidebarThreads cached on nowMinute + wake tick none checked
Sidebar.tsx:4816 snooze wake label "5m" cached in the list block, which includes snoozeNow (minute + wake tick) none checked
Sidebar.tsx:826 RelativeTimeLabel cached on nowMinute none checked
ChatView.tsx snooze/woke owned by #21019 — not touched
ChatView.tsx:5194,5203 "Snoozed, 5m left" / "Settled 5m ago" cached on nowMinute none checked
MessagesTimeline.tsx formatDayAwareTimestamp (3 sites), formatUpcomingTimestamp reset cached on timestamp only flips "today"→"yesterday" at midnight left; see below
StorageSettings.tsx:314 last run CleanupSection builds summaries outside any guard; its own minute tick re-runs it none checked
ConnectionsSettings.tsx:723,943, UsageLimits*.tsx clock passed explicitly from a ticking nowMs / limitsNow none checked
WelcomeWizard.tsx:1722 last active yes, on lastActiveAt onboarding import list, open for seconds left
MessagesTimeline.tsx:3308 WorkingTimer initial text only; the interval writes textContent none checked
SidebarUpdateCapsule.tsx:32, useRelativeTimeState.ts:30 useSyncExternalStore snapshot closures none checked
CustomSnoozeDialog, useThreadActions, useThreadActionMenu, useComposerTypingGuard, useReviewGuideWriter, UsageLimitRecoveryBanner, GitActionsControl, WorktreeSetupCard, SshPasswordPromptDialog, _chat.pull-requests, ChatComposer, HtmlRenderFrame, McpAppFrame, AttachmentFilePreview, toast, ProviderUpdateEnvironmentRows reads in handlers, effects, state initializers, or atoms none checked

Left.

  • MessagesTimeline day-aware message timestamps keep their day bucket until the row re-renders, so a message from 23:59 still says "11:59 PM" instead of "yesterday at 11:59 PM" after midnight. Fixing it needs a day tick per row in a hot list. I'd rather not add that without measuring.
  • CommandPalette.logic.ts:350 formats thread ages while building the item list. The palette rebuilds when it opens, so it's fine in practice.
  • WelcomeWizard last-active age (see table).

Verified: lint and tsc-rs on apps/web, reactCompilerCoverage for every changed file, and Sidebar.snooze / Sidebar.logic / pullRequestListLines tests. No browser pass.

Claude Opus 5.5 via Claude Code.

🤖 Generated with Claude Code

Relative-time labels formatted inline in render, and the sidebar row's
snooze gate, read the clock inside a block the compiler caches on other
inputs, so they froze until that data changed. Labels now subscribe to
their own tick via a RelativeTime component, scheduled-task labels take
the minute tick as their clock, and the row's snooze gate keeps its clock
in state advanced by the queued-turn expiry timer.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@github-actions github-actions Bot added the vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. label 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
@github-actions github-actions Bot added the size:L 100-499 changed lines (additions + deletions). label Oct 17, 2026
Comment thread apps/web/src/components/settings/DiagnosticsSettings.tsx
@macroscopeapp

macroscopeapp Bot commented Oct 17, 2026 •

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Approved at 2f03af4

Macroscope's review found this PR approvable — This is a narrowly scoped web bug fix that makes existing relative-time labels and the existing snooze gate respond to elapsed time under the React Compiler. The changes add bounded timer-driven updates without changing schemas, integrations, defaults, or sensitive functionality.

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

⚠️ The latest CI run did not produce a thread transfer result for bd811b4.

This comment will update automatically after the next completed run.

juliusmarminge and others added 2 commits October 17, 2026 15:46
ThreadAutomationsPanel now renders ScheduledRelativeLabel, so knip flagged
the export.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A timestamp more than about 24.8 days in the future made the delay exceed
setTimeout's 32-bit limit, so it fired at once and rescheduled in a loop.

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

coderabbitai Bot commented Oct 17, 2026

Copy link
Copy Markdown

Review in Change Stack →

✨ 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
juliusmarminge merged commit e712d97 into main Oct 17, 2026
30 of 31 checks passed
@juliusmarminge
juliusmarminge deleted the fix/web-compiler-clock-reads branch October 17, 2026 22:56
github-actions Bot added a commit to omarcresp/t3code-flake that referenced this pull request Oct 18, 2026
## What's Changed
* fix(web): a snoozed thread wakes in the open chat view by @juliusmarminge in pingdotgg/t3code#21019
* fix(web): time-based labels update under the React Compiler by @juliusmarminge in pingdotgg/t3code#21026
* test(web): the right panel Escape test waits for focus to return by @juliusmarminge in pingdotgg/t3code#21030
* fix(web): table expand button only shows when a cell is cut off by @shivamhwp in pingdotgg/t3code#19782


**Full Changelog**: pingdotgg/t3code@v0.1.1-nightly.20261017.3272...v0.1.1-nightly.20261018.3285

Upstream release: https://github.com/pingdotgg/t3code/releases/tag/v0.1.1-nightly.20261018.3285
github-actions Bot added a commit to davidvanderklay/t3code-flake that referenced this pull request Oct 18, 2026
## What's Changed
* fix(web): a snoozed thread wakes in the open chat view by @juliusmarminge in pingdotgg/t3code#21019
* fix(web): time-based labels update under the React Compiler by @juliusmarminge in pingdotgg/t3code#21026
* test(web): the right panel Escape test waits for focus to return by @juliusmarminge in pingdotgg/t3code#21030
* fix(web): table expand button only shows when a cell is cut off by @shivamhwp in pingdotgg/t3code#19782


**Full Changelog**: pingdotgg/t3code@v0.1.1-nightly.20261017.3272...v0.1.1-nightly.20261018.3285

Upstream release: https://github.com/pingdotgg/t3code/releases/tag/v0.1.1-nightly.20261018.3285
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