Skip to content

fix(web): a snoozed thread wakes in the open chat view - #21019

Merged
juliusmarminge merged 1 commit into
mainfrom
fix/chatview-snooze-clock
Oct 17, 2026
Merged

juliusmarminge merged 1 commit into
mainfrom
fix/chatview-snooze-clock

Conversation

@juliusmarminge

Copy link
Copy Markdown
Member

With a snoozed thread open, the "Snoozed" status line didn't switch to "Woke from snooze" at the wake time, and the wake timer re-fired every 50 ms until something else changed the thread.

The React Compiler caches ChatView's effectiveSnoozed(shell, { now: new Date() }) and threadWokeAt(...) results on the thread shell and supportsSnooze, so the clock read during render froze. The timer's tick only re-ran the effect. The cached check still said "snoozed", so the timer re-armed with the 50 ms minimum, over and over. I confirmed this by compiling ChatView.tsx and reading the cache guards on those two expressions.

The snooze clock is now state. It resets when the shell changes and advances when the wake timer fires, so both checks re-run with a real time. The compiled output now guards them on snoozeClock.

The mobile thread list had the same bug (#20967, found by the on-device render counter in #21001).

Checks: lint and typecheck on ChatView.tsx, and reactCompilerCoverage for ChatView.tsx. No test covers the snooze status line, and I haven't checked it in a browser.

Claude Opus 5.5 via Claude Code.

🤖 Generated with Claude Code

The React Compiler caches ChatView's snooze check on the thread shell, so the
clock read during render froze. When the wake timer fired, the cached result
still said snoozed and the timer re-armed every 50ms until the shell changed.
The snooze clock is now state, reset with the shell and moved by the timer.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
@github-actions github-actions Bot added the vouch:trusted 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:S 10-29 changed lines (additions + deletions). label Oct 17, 2026
@macroscopeapp

macroscopeapp Bot commented Oct 17, 2026

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Approved at 1a9e5e0

Macroscope's review found this PR approvable — This is a focused one-file bug fix that makes the existing snooze wake timer update the clock used by the open chat view, so status transitions occur without repeatedly rearming the timer. It introduces no schema, deployment, default, or broader product behavior changes.

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

@juliusmarminge
juliusmarminge merged commit 07cb902 into main Oct 17, 2026
32 of 33 checks passed
@juliusmarminge
juliusmarminge deleted the fix/chatview-snooze-clock branch October 17, 2026 22:16
Pipyakas pushed a commit to Pipyakas/t3code that referenced this pull request Oct 18, 2026
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 <[email protected]>

* perf(web): the Electron browser host compiles with the React Compiler (pingdotgg#20548)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* perf(web): the CSV table preview compiles without manual memoization (pingdotgg#20680)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* perf(web): the thread lineage panel compiles without manual memoization (pingdotgg#20720)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* perf(web): the open panel pull request URL hook compiles without manual memoization (pingdotgg#20679)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* perf(web): highlighted code tokens compile without manual memoization (pingdotgg#20678)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* perf(web): scoped settings hooks compile without manual memoization (pingdotgg#20677)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* perf(web): the HTML document frame compiles without manual memoization (pingdotgg#20676)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* perf(web): the new project hook compiles without manual memoization (pingdotgg#20675)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* perf(web): the scratch project hook compiles without manual memoization (pingdotgg#20673)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* perf(web): the expanded image dialog compiles without manual memoization (pingdotgg#20672)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* perf(web): the sidebar project groups hook compiles without manual memoization (pingdotgg#20671)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* perf(web): review file patches compile without manual memoization (pingdotgg#20670)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* perf(web): the draft hero headline compiles without manual memoization (pingdotgg#20669)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* perf(web): settings project groups compile without manual memoization (pingdotgg#20668)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* perf(web): the chat route layout compiles without manual memoization (pingdotgg#20667)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* perf(web): scoped model availability compiles without manual memoization (pingdotgg#20666)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* perf(web): the environment hooks compile without manual memoization (pingdotgg#20665)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* perf(web): the provider settings panel compiles with the React Compiler (pingdotgg#20664)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* perf(web): the code block language picker compiles without manual memoization (pingdotgg#20663)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* perf(web): the right panel tabs compile with the React Compiler (pingdotgg#20662)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* perf(web): settings search availability compiles without manual memoization (pingdotgg#20661)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* perf(web): the editor preference hooks compile without manual memoization (pingdotgg#20660)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* perf(web): the code view file reveal hook compiles without manual memoization (pingdotgg#20659)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* perf(web): the command output panel compiles without manual memoization (pingdotgg#20658)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* perf(web): the annotatable diff view compiles without manual memoization (pingdotgg#20657)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* perf(web): the chat header compiles with the React Compiler (pingdotgg#20656)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* perf(web): the theme library compiles with the React Compiler (pingdotgg#20655)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* perf(web): the chat canvas compiles without manual memoization (pingdotgg#20654)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* perf(web): useResizableWidth compiles without manual memoization (pingdotgg#20653)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* perf(web): device controls compile without manual memoization (pingdotgg#20652)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* perf(web): file breadcrumbs compile with the React Compiler (pingdotgg#20651)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* perf(web): the changed files tree compiles without manual memoization (pingdotgg#20650)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* perf(web): the provider update dismissal hook compiles without manual memoization (pingdotgg#20649)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* perf(web): the sidebar primitives compile with the React Compiler (pingdotgg#20648)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* perf(web): the settings layout compiles without manual memoization (pingdotgg#20647)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* perf(web): the remote open hook compiles without manual memoization (pingdotgg#20646)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* perf(web): usePreviewBridge compiles with the React Compiler (pingdotgg#20644)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* perf(web): the citation chip compiles without manual memoization (pingdotgg#20643)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* perf(web): useHtmlRenderTheme compiles without manual memoization (pingdotgg#20642)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* perf(web): project content search compiles with the React Compiler (pingdotgg#20641)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* perf(web): the agent connect surface compiles without manual memoization (pingdotgg#20639)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* perf(web): the theme editor host compiles without manual memoization (pingdotgg#20638)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* perf(web): the first-run gate compiles with the React Compiler (pingdotgg#20637)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* perf(web): the settings scope context compiles without manual memoization (pingdotgg#20635)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* perf(web): the worktree base branch picker compiles without manual memoization (pingdotgg#20634)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* perf(web): the project file scripts hook compiles without manual memoization (pingdotgg#20632)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* perf(web): the diff file tree compiles with the React Compiler (pingdotgg#20631)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* perf(web): thread status indicators compile without manual memoization (pingdotgg#20630)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* perf(web): useMediaQuery compiles without manual memoization (pingdotgg#20629)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* perf(web): the source control settings compile with the React Compiler (pingdotgg#20628)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* perf(web): scheduled task settings compile without manual memoization (pingdotgg#20627)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* perf(web): the remove-cloned-project hook compiles without manual memoization (pingdotgg#20626)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* perf(web): resource telemetry diagnostics compile without manual memoization (pingdotgg#20625)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* perf(web): the archived threads hook compiles without manual memoization (pingdotgg#20624)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* perf(web): the Connect onboarding dialog compiles with the React Compiler (pingdotgg#20622)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* perf(web): redacted sensitive text compiles without manual memoization (pingdotgg#20621)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* perf(web): the pull request stack hook compiles without manual memoization (pingdotgg#20620)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* perf(web): the resource telemetry hook compiles without manual memoization (pingdotgg#20619)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* perf(web): the provider settings form compiles without manual memoization (pingdotgg#20618)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* perf(web): the provider models section compiles with the React Compiler (pingdotgg#20617)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* perf(web): the CLI authorize surface compiles without manual memoization (pingdotgg#20616)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* perf(web): the pull request thread dialog compiles without manual memoization (pingdotgg#20615)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* perf(web): the assistant citation target hook compiles with the React Compiler (pingdotgg#20614)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* perf(web): the device state hooks compile without manual memoization (pingdotgg#20613)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* perf(web): the provider accent color picker compiles without manual memoization (pingdotgg#20612)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* perf(web): the T3 Connect account pages hook compiles without manual memoization (pingdotgg#20611)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* perf(web): the session scope hooks compile without manual memoization (pingdotgg#20610)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* perf(web): the provider update notification compiles without manual memoization (pingdotgg#20609)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* perf(web): the open-source notices panel compiles with the React Compiler (pingdotgg#20608)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* perf(web): the project icon picker compiles without manual memoization (pingdotgg#20607)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* perf(web): the project scans hook compiles without manual memoization (pingdotgg#20606)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* perf(web): the thread context drop hook compiles with the React Compiler (pingdotgg#20605)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* perf(web): the local provider update groups compile without manual memoization (pingdotgg#20604)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* perf(web): thread find navigation compiles without manual memoization (pingdotgg#20603)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* perf(web): the font previews compile with the React Compiler (pingdotgg#20601)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* perf(web): project actions settings compile without manual memoization (pingdotgg#20602)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* perf(web): the thread find bar compiles with the React Compiler (pingdotgg#20600)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* perf(web): the project scripts control compiles without manual memoization (pingdotgg#20599)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* perf(web): keybindings settings compile without manual memoization (pingdotgg#20598)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* perf(web): the model picker sidebar compiles with the React Compiler (pingdotgg#20596)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* perf(web): the composer path search hook compiles without manual memoization (pingdotgg#20595)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* perf(web): the font picker compiles with the React Compiler (pingdotgg#20594)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* perf(web): the project clone toasts compile without manual memoization (pingdotgg#20593)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* perf(web): the pending user input panel compiles with the React Compiler (pingdotgg#20592)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* perf(web): useTurnDiffSummaries compiles without manual memoization (pingdotgg#20591)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* perf(web): the provider update pill compiles with the React Compiler (pingdotgg#20590)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* perf(web): the no-projects hero compiles without manual memoization (pingdotgg#20589)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* perf(web): useActiveThreadRef compiles without manual memoization (pingdotgg#20588)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* perf(web): the custom model editor compiles without manual memoization (pingdotgg#20586)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* perf(web): the root route compiles with the React Compiler (pingdotgg#20585)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* perf(web): the diff worker pool provider compiles without manual memoization (pingdotgg#20584)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* perf(web): the CLI command settings row compiles without manual memoization (pingdotgg#20583)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* perf(web): the composer banner stack compiles with the React Compiler (pingdotgg#20582)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* perf(web): the primary session state hook compiles without manual memoization (pingdotgg#20581)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* perf(web): the index route compiles with the React Compiler (pingdotgg#20580)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* perf(web): the command palette results compile without manual memoization (pingdotgg#20579)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* perf(web): the add provider dialog compiles without manual memoization (pingdotgg#20578)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* perf(web): useOrchestrationCommand compiles without manual memoization (pingdotgg#20576)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* perf(web): the environment selector compiles without manual memoization (pingdotgg#20575)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* perf(web): default theme adoption compiles with the React Compiler (pingdotgg#20574)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* perf(web): useAtomQueryRunner compiles without manual memoization (pingdotgg#20573)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* perf(web): the env mode selector compiles without manual memoization (pingdotgg#20572)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* perf(web): highlighted search lines compile without manual memoization (pingdotgg#20571)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* perf(web): the server update banner compiles without manual memoization (pingdotgg#20570)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* perf(web): the app sidebar layout compiles with the React Compiler (pingdotgg#20569)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* perf(web): useAtomCommand compiles without manual memoization (pingdotgg#20568)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* perf(web): the branch toolbar selector compiles without manual memoization (pingdotgg#20567)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* perf(web): the composer state hooks compile without manual memoization (pingdotgg#20566)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* perf(web): the escape-to-go-back hook compiles without manual memoization (pingdotgg#20564)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* perf(web): the guide tour compiles without manual memoization (pingdotgg#20563)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* perf(web): the onboarding completion hook compiles without manual memoization (pingdotgg#20561)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* perf(web): the guide stop compiles without manual memoization (pingdotgg#20560)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* perf(web): the prompt link page compiles with the React Compiler (pingdotgg#20559)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* perf(web): the hosted browser webview compiles with the React Compiler (pingdotgg#20558)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* perf(web): the branch picker compiles without manual memoization (pingdotgg#20557)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* perf(web): useStableCallback compiles without manual memoization (pingdotgg#20556)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* perf(web): the find reveal ref compiles without manual memoization (pingdotgg#20555)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* perf(web): the primary cloud link hook compiles without manual memoization (pingdotgg#20554)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* perf(web): the project action editor resets its form without an effect (pingdotgg#20550)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* perf(web): the zoomable image compiles without manual memoization (pingdotgg#20549)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* perf(web): the PR guide diff loader compiles with the React Compiler (pingdotgg#20543)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* perf(web): the traits picker compiles without manual memoization (pingdotgg#20540)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* perf(web): the managed relay hooks compile without manual memoization (pingdotgg#20552)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* perf(web): the guide excerpt compiles without manual memoization (pingdotgg#20553)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* perf(web): AnimatedHeight compiles with the React Compiler (pingdotgg#20562)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* perf(web): the browser favicon store compiles without manual memoization (pingdotgg#20546)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* perf(web): the browser surface slot compiles with the React Compiler (pingdotgg#20542)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* perf(web): the link opener hook compiles without manual memoization (pingdotgg#20541)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* perf(web): the guide file diff compiles without manual memoization (pingdotgg#20544)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* perf(web): the settings sidebar compiles with the React Compiler (pingdotgg#20623)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* perf(web): Codex setup compiles with the React Compiler (pingdotgg#20674)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* perf(web): chat markdown compiles with the React Compiler (pingdotgg#20715)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* perf(web): the device stream view compiles without manual memoization (pingdotgg#20645)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* perf(web): the load-balancing hook compiles with the React Compiler (pingdotgg#20565)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* fix(web): settings search keeps the clamped highlight when results shrink (pingdotgg#20764)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* perf(web): the provider update launch notification compiles with the React Compiler (pingdotgg#20577)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* perf(web): the model picker compiles without manual memoization (pingdotgg#20706)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* feat(web): step reasoning effort from the keyboard (pingdotgg#19928)

Co-authored-by: Bil0000 <[email protected]>
Co-authored-by: Claude Opus 5.5 <[email protected]>

* perf(web): the item inspector compiles without manual memoization (pingdotgg#20545)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* 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 <[email protected]>

* refactor(client-runtime): decide learned routes and session reuse in one place (pingdotgg#20445)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* refactor(web): thread find compiles under the strict React Compiler rules (pingdotgg#20772)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* test(web): chat markdown, timeline, and diff reveal tests pass the strict compiler rules (pingdotgg#20770)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* perf(web): Git actions control compiles without manual memoization (pingdotgg#20777)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* refactor(web): the theme search section compiles without manual memoization (pingdotgg#20778)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* fix(server): keep sensitive values out of settings reads, startup logs and preview snapshots (pingdotgg#20446)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* refactor(web): the thread pull requests panel keeps its caching without "use memo" hooks (pingdotgg#20740)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* refactor(web): scoped settings stay cached without "use memo" (pingdotgg#20767)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* refactor(web): settings search items stay cached without "use memo" (pingdotgg#20771)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* refactor(web): the file browser keeps its caching without "use memo" hooks (pingdotgg#20784)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* refactor(web): the pull request stack hook keeps its caching without "use memo" (pingdotgg#20741)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* refactor(web): the pull request thread dialog keeps its caching without "use memo" hooks (pingdotgg#20742)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* refactor(web): the MCP app frame keeps its caching without "use memo" hooks (pingdotgg#20759)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* refactor(web): the changed files tree keeps its caching without "use memo" hooks (pingdotgg#20766)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* refactor(web): sidebar resize options stay cached without "use memo" (pingdotgg#20776)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* refactor(web): paginated branches keep their caching without "use memo" (pingdotgg#20743)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* refactor(web): pull request markdown keeps its caching without "use memo" hooks (pingdotgg#20744)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* refactor(web): the pull request detail panel keeps its caching with fewer "use memo" hooks (pingdotgg#20761)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* refactor(web): the open panel pull request URL keeps its caching without "use memo" (pingdotgg#20768)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* refactor(web): the command output panel keeps its caching without "use memo" hooks (pingdotgg#20763)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* fix(client-runtime): the agents pill counts background agents from earlier turns (pingdotgg#20785)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* refactor(web): the diff panel keeps its caching without "use memo" hooks (pingdotgg#20745)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* refactor(web): the composer builds model options without a "use memo" hook (pingdotgg#20780)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* refactor(web): the preview bridge keeps its stable thread ref without "use memo" hooks (pingdotgg#20746)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* refactor(web): the pull request code tab keeps its caching with one "use memo" hook (pingdotgg#20773)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* refactor(web): provider models keep their caching without "use memo" (pingdotgg#20775)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* refactor(web): the thread lineage panel keeps its caching without "use memo" hooks (pingdotgg#20789)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* refactor(web): the attachment preview keeps its caching without "use memo" hooks (pingdotgg#20757)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* refactor(web): the pending user input panel keeps its caching without "use memo" hooks (pingdotgg#20762)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* refactor(web): the queued runs control keeps its caching without "use memo" hooks (pingdotgg#20779)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* refactor(web): the open-in picker keeps its caching without "use memo" hooks (pingdotgg#20758)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* refactor(web): highlighted tokens keep their caching without "use memo" hooks (pingdotgg#20760)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* refactor(web): merged settings stay cached without "use memo" (pingdotgg#20765)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* fix(server): a running Claude workflow member shows its answer so far (pingdotgg#20786)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* refactor(web): the keybindings panel keeps its caching without "use memo" hooks (pingdotgg#20782)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* refactor(web): linked pull request status keeps its caching without "use memo" hooks (pingdotgg#20781)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* refactor(web): the new-thread hook keeps its caching without "use memo" (pingdotgg#20769)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* refactor(web): review file patches keep their caching without "use memo" hooks (pingdotgg#20788)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* chore(web): React compiler rules apply to every web file (pingdotgg#20791)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* refactor(server): resolve project and worktree folders in one place (pingdotgg#20449)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* refactor(server): route git config through one env helper and end option parsing before names (pingdotgg#20440)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* test(web): React tests run compiled in a real browser (pingdotgg#20797)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* fix(android): menu icons take taps (pingdotgg#20802)

Co-authored-by: Pixel Perfect <[email protected]>
Co-authored-by: Claude Fable 5.1 <[email protected]>

* fix(android): a composer focused through an app switch stays above the keyboard (pingdotgg#20803)

Co-authored-by: Pixel Perfect <[email protected]>
Co-authored-by: Claude Fable 5.1 <[email protected]>

* refactor(web): the usage chart keeps its caching without "use memo" (pingdotgg#20792)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* refactor(web): pull request detail keeps its caching without "use memo" (pingdotgg#20811)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* refactor(web): the legacy sidebar keeps its caching without "use memo" (pingdotgg#20793)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* refactor(web): turn diff summaries keep their caching without "use memo" (pingdotgg#20794)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* refactor(web): the pull requests page keeps its caching without "use memo" (pingdotgg#20820)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* refactor(web): the terminal drawer keeps its caching without "use memo" (pingdotgg#20799)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* refactor(web): the model picker keeps its caching without "use memo" (pingdotgg#20815)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* refactor(web): pull request code tab keeps its caching without "use memo" (pingdotgg#20816)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* refactor(web): find reveal refs stay cached without "use memo" (pingdotgg#20818)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* refactor(web): the branch selector keeps its caching without "use memo" (pingdotgg#20822)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* refactor(web): the guide excerpt keeps its caching without "use memo" (pingdotgg#20798)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* refactor(web): chat composer keeps its caching without "use memo" (pingdotgg#20834)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* refactor(web): the usage page keeps its caching without "use memo" (pingdotgg#20807)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* refactor(web): the hosted browser webview keeps its caching without "use memo" (pingdotgg#20824)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* refactor(web): the command palette provider lookup keeps its caching without "use memo" (pingdotgg#20827)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* chore(web): lint rejects "use memo" directives (pingdotgg#20843)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* perf(web): relative "checked" labels re-render only when their text changes (pingdotgg#20819)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* perf(web): toggling a client setting no longer re-renders every settings row (pingdotgg#20830)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* perf(web): typing in the ACP registry search no longer re-renders every result row (pingdotgg#20817)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* perf(web): searching keybindings only renders rows entering or leaving the filter (pingdotgg#20840)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* perf(web): unchanged model picker rows skip re-rendering while searching (pingdotgg#20838)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* perf(web): router updates no longer re-render thread route consumers (pingdotgg#20837)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* perf(web): a minute tick no longer re-renders every sidebar thread row (pingdotgg#20814)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* test(web): jsdom-leftovers tests run in a real browser (pingdotgg#20862)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* test(web): hook-harness tests run in a real browser (pingdotgg#20866)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* test(web): misc-b tests run in a real browser (pingdotgg#20869)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* test(web): settings tests run in a real browser (pingdotgg#20872)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* test(web): misc-a tests run in a real browser (pingdotgg#20868)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* test(web): chat tests run in a real browser (pingdotgg#20870)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* test(web): browser tests from different checkouts no longer fight over one port (pingdotgg#20875)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* fix(web): chat view no longer renders twice per update (pingdotgg#20847)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* perf(web): markdown replies no longer re-render on reconnects and config pushes (pingdotgg#20852)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* perf(web): provider status pushes no longer re-render every timeline row (pingdotgg#20854)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* perf(client): a reconnect snapshot keeps unchanged skills and providers identical (pingdotgg#20855)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* perf(web): a client setting write only re-renders readers whose value changed (pingdotgg#20848)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* perf(web): right panel tabs no longer all re-render on unrelated chat updates (pingdotgg#20853)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* perf(web): opening chat and usage dialogs no longer re-renders the whole page (pingdotgg#20859)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* perf(web): typing in form dialogs no longer re-renders the dialog chrome (pingdotgg#20842)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* fix(web): a project action's error belongs to the request that opened it (pingdotgg#20891)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* test(web): the open-in picker test waits for the menu to close (pingdotgg#20892)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* perf(web): opening an image preview no longer re-renders the chat view (pingdotgg#20845)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* perf(web): another thread streaming no longer re-renders the app root and thread panels (pingdotgg#20823)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* perf(client): equal query refetches no longer re-render PR rows (pingdotgg#20850)

Co-authored-by: Claude Opus 5.5 <[email protected]>

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

Co-authored-by: Claude Opus 5.5 <[email protected]>

* 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 <[email protected]>

* test(web): onboarding and usage tests run in a real browser (pingdotgg#20902)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* test(web): pr-and-diff tests run in a real browser (pingdotgg#20901)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* test(web): chat markdown and timeline tests run in a real browser (pingdotgg#20905)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* test(web): provider, usage and relationship tests run in a real browser (pingdotgg#20914)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* 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 <[email protected]>

* test(web): every React test runs in a real browser (pingdotgg#20944)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* fix(release): release tests install Chromium for the web browser tests (pingdotgg#20934)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* fix(server): drop V1 projections nothing reads after the V2 upgrade (pingdotgg#20947)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* feat(server): t3 doctor can delete the database from before 0.1.0 (pingdotgg#20948)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* fix(web): a snoozed thread wakes in the open chat view (pingdotgg#21019)

Co-authored-by: Claude Opus 5.5 <[email protected]>

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

Co-authored-by: Claude Opus 5.5 <[email protected]>

* test(web): the right panel Escape test waits for focus to return (pingdotgg#21030)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* fix(web): table expand button only shows when a cell is cut off (pingdotgg#19782)

Co-authored-by: PR Batch Tester <[email protected]>
Co-authored-by: Claude Opus 5.5 <[email protected]>

* perf(mobile): Metro runs the React Compiler, with a coverage ratchet (pingdotgg#20967)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* perf(mobile): usage screens compile with the React Compiler (pingdotgg#20969)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* perf(mobile): Connect onboarding compiles with the React Compiler (pingdotgg#20970)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* perf(mobile): device preview compiles with the React Compiler (pingdotgg#20971)

Co-authored-by: Claude Opus 5.5 <[email protected]>

* 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 <[email protected]>
Co-authored-by: Claude Opus 5.5 <[email protected]>
Co-authored-by: Bilal Bakr <[email protected]>
Co-authored-by: Alex <[email protected]>
Co-authored-by: shivam <[email protected]>
Co-authored-by: PR Batch Tester <[email protected]>
aorwall added a commit to aorwall/t3code that referenced this pull request Oct 19, 2026
Merges `pingdotgg/t3code` up to `ab6be13d43`, from base `5c5dcbc60b`:
589 commits. Branched from `main` (`7e132898fa`), with no other merge PR
open.

Most of the range is the rest of upstream's move to the React Compiler,
plus its apps/web DOM tests moving to vitest browser mode
(`*.browser.test.tsx`, run in real Chromium). Upstream removed jsdom and
`react-test-renderer`.

## How the conflicts were resolved

All 27 conflicted files were resolved by the verdict `preflight.mjs`
printed for each. The tracker entry in `docs/fork/upstream-merge-log.md`
has the details.

**Tests**
- Seven upstream tests became browser tests. The fork's mocks were
re-ported into the new files, and the inventory was re-pointed at them.
- The fork's framed-preview tests moved to the fork-only
`PreviewView.frame.browser.test.tsx`. A browser-mode mock binds its
exports once, at load, so one file can't run both with and without the
desktop bridge.
- Three fork-only tests (ThreadForkDialog, MoatlessArtifactChip,
MobileSidebarDrawer) depended on `react-test-renderer` and on test
helpers upstream deleted. They are rewritten as browser tests.

**ChatView**
- Upstream moved the rewind dialog into `chat/ChatOverlayHosts.tsx`, and
the `checkpointFileRestore` gate moved with it.
- The ThreadDetailsPanel script props were re-applied in upstream's
inline JSX.

**Lockfile and package.json**
- `pnpm-lock.yaml` was re-derived with `install.mjs`.
- `apps/web/package.json` keeps the `moatless-api` workspace link and
the `tsc --noEmit` typecheck script.

**Converged**
- Upstream now renders Mermaid itself (`chat/MermaidDiagram.tsx`). The
fork's `fork/mermaidDiagram*` files, their inventory entries and the
Mermaid Diagram Delta section are deleted.

**Fixed along the way**
- The provider list's own "Add provider" button had no gate, on `main`
too. It is now behind `providerConfiguration`, like the title button.
- Upstream's React Compiler lint rules flagged 64 errors in fork-owned
files, and the compiler-coverage test found 2 bailouts (`finally` inside
a hook). All are fixed.
  - Most were `useMemo`/`useCallback` removals.
- The only behaviour change: sandbox "elapsed" times are now measured
from the status query's `dataUpdatedAt` instead of a `Date.now()` read
during render.

## Verification

`verify.mjs --sequential`: duplicate-adds, tripwires, resolution-check,
unsupported-methods (ADD 0 / DROP 0 / KEEP 2), lockfile, fmt, lint,
typecheck and build are all green.

The `test` step is red only on the five files that failed alone on
2026-10-17 too, on the same machine-only causes:
- `shared` `AgentScope`
- `ssh` `tunnel`
- `provider-opencode` `OpenCodeServerLedger`
- `t3` `AcpAdapterV2`
- `t3` `OrchestratorReplayFixtures`

`@t3tools/web` failed in the full run, and re-ran green after the fixes:
565 files, 8497 tests. The failure that wasn't a compiler bailout,
`WorkflowOpeningBlock.browser.test.tsx`, is upstream's file unchanged,
and it passed alone.

## Feature classification

### Usable as-is
- **Reasoning-effort stepping**: new `composer.increaseEffort` and
`composer.decreaseEffort` commands. They have no default binding, and
keybinding editing stays behind `serverAdministration`.
- **Transcript and markdown fixes**:
  - Windows paths and terminal links (pingdotgg#21069, pingdotgg#21199, pingdotgg#19627)
  - Math in Mermaid diagrams (pingdotgg#16198)
  - Code-block highlight jump (pingdotgg#20923)
  - Copied task lists (pingdotgg#14778)
  - Table expand button (pingdotgg#19782)
- **Message-list fixes**:
  - Huge-thread scroll loop (pingdotgg#21269)
  - Answered questions stay visible (pingdotgg#21086)
  - "Failed" status for failed runs (pingdotgg#20996)
  - Resumed-subagent rows (pingdotgg#18099)
  - Background-agent count (pingdotgg#20785)
  - A single completion sound (pingdotgg#17540)
- **Composer fixes**:
  - Spacing and centring (pingdotgg#21345, pingdotgg#12952, pingdotgg#17820, pingdotgg#21241)
  - Quotes (pingdotgg#20350, pingdotgg#19450)
  - Send shortcut on follow-ups (pingdotgg#20929)
  - `/tmp/x` no longer opens the slash menu (pingdotgg#19671)
  - Failed attachments don't block send (pingdotgg#20737)
  - HEIC attachments (pingdotgg#10429)
  - Long approval commands wrap (pingdotgg#17802)
  - Android Backspace (pingdotgg#18063)
- **Thread drag and drop into chat** (pingdotgg#19697, pingdotgg#20024).
- **Diff, file and pull request panel fixes**: pingdotgg#20297, pingdotgg#20333, pingdotgg#19089,
pingdotgg#18288, pingdotgg#17132, pingdotgg#21048, pingdotgg#17554, pingdotgg#19945, pingdotgg#15341, pingdotgg#21245, pingdotgg#21147.
- **Sidebar and breadcrumb fixes**: middle truncation (pingdotgg#18858, pingdotgg#17208),
"No project" scratch breadcrumb (pingdotgg#19721), and snoozed threads waking in
an open chat (pingdotgg#21019).
- **Settings and miscellaneous UI fixes**:
  - Model picker lists every custom model (pingdotgg#14961)
  - Font picker (pingdotgg#9814)
  - Settings search highlight (pingdotgg#20764)
  - Usage popover (pingdotgg#19808, pingdotgg#16936)
  - Web app manifest name (pingdotgg#19175)
  - Dark-mode switches (pingdotgg#14984)
- **Phone browser**: tapping away from the model picker no longer
presses what is under it (3f2dbd7).
- **client-runtime**: queries stay pending during a connection hand-off
(pingdotgg#18155), and a dropped session is not shown as a failed connection
(pingdotgg#18469).
- **React Compiler and render-performance work**: about 190 commits.
- **Workflow thread view**: `WorkflowOpeningBlock` shows a workflow's
phases and agents (pingdotgg#20857). It renders only when `workflowScript` is
set, which Moatless never sends; see the backend list.

### Unsupported in Moatless / needs implementation
- **`t3 doctor`, server telemetry and the Node CLI** (pingdotgg#20948, pingdotgg#15028,
pingdotgg#15921, pingdotgg#15913): upstream's server only, with no client surface.
- **SSH device hosts and T3 Connect/relay fixes** (pingdotgg#20377, pingdotgg#17440,
pingdotgg#18832, pingdotgg#19444, pingdotgg#18621, pingdotgg#17743, pingdotgg#18838): behind `FEATURES.connections`
or `FEATURES.deviceHub`.
- **Tailscale HTTPS row** (pingdotgg#21057): behind `FEATURES.connections`.
- **Remote server self-update and how-to-update messages** (pingdotgg#18980,
pingdotgg#18110): behind `FEATURES.serverUpdateBanner`.
- **Masking of secret settings fields** (pingdotgg#20446): the form is behind
`FEATURES.providerConfiguration`, because Moatless does not dispatch
`server.updateSettings`.
- **Desktop updater, desktop preview and local-machine fixes** (pingdotgg#21210,
pingdotgg#20994, pingdotgg#16026, pingdotgg#18549, pingdotgg#19846, pingdotgg#20206, pingdotgg#20277): desktop bridge only, or
behind `FEATURES.openInEditor`.

### Backend behavior to consider reproducing in Moatless
Added to [gaps: runtime
fixes](docs/fork/gaps.md#runtime-fixes-upstream-made-to-its-own-server).
- **`workflowScript: true` on a conversation message whose body is a
provider-native workflow script.** Without it the timeline shows the raw
script.
- **`endedWatch` on an ended pull request watch**, so watching again
doesn't repeat news the thread already got (pingdotgg#21155).
- **`pullRequests` on orchestrator MCP thread list and read results**
(pingdotgg#17454). Related: `t3_thread_send` now says why a message was refused
(pingdotgg#21027).
- **`vcs.createWorktree` always sends `path: null`** and expects the
server to place the worktree. Moatless doesn't dispatch this method; it
is under `projectManagement`.
- **Run lifecycle**:
  - Refuse `thread.create` for an id that already exists (pingdotgg#19704).
  - Cancel a preparing run on archive (pingdotgg#20073).
  - A parent Stop clears orphaned delegated follow-ups (pingdotgg#20310).
  - Queued messages land in order after a resume (pingdotgg#17773).
- **Workflow members stream thinking and tool calls into their own
threads** (pingdotgg#20786).
- **Pull request link handling**: canonicalise legacy links (pingdotgg#19129),
don't inherit watches into forks (pingdotgg#16623), and settle threads after
their pull request merges (pingdotgg#18232, pingdotgg#19937).

No new RPC methods. `vcs.createWorktree` is the only change to `rpc.ts`.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

---
Moatless task:
https://moatless.soaplabstest.com/tasks/5bcfa708-8eac-41b0-a580-c885a620afb5
Pipyakas pushed a commit to Pipyakas/t3code that referenced this pull request Oct 19, 2026
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:S 10-29 changed lines (additions + deletions). vouch:trusted 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