Skip to content

chore(sync): absorb upstream main through 1604ccc9d (orchestrator V2) - #167

Open
NoahHendrickson wants to merge 167 commits into
customfrom
claude/sync-2026-10-05
Open

NoahHendrickson wants to merge 167 commits into
customfrom
claude/sync-2026-10-05

Conversation

@NoahHendrickson

Copy link
Copy Markdown
Owner

Problem

custom was 166 commits behind upstream (last sync point 024d49520, 2026-10-02). The first commit in that range is pingdotgg#2829, the orchestrator-V2 rewrite the previous sync (#164) deliberately left out: a full server rewrite that deletes the hosts of both fork server customizations (CheckpointReactor.ts, server.test.ts, the ws.ts bootstrap block), moves the client-side message queue to the server, and steps the desktop profile.

What this does

Merges upstream/main through 1604ccc9d into custom. 37 conflicted files resolved (30 content, 7 modify/delete), 5 override shadows ported by hand, every fork fence accounted for in a census against the pre-merge baseline.

Notable decisions, all fenced and recorded in .fork/customizations.yaml:

  • Server — server-local-thread-branch re-homes at ThreadLaunchService's thread.create (root and existing-folder launches read the live checkout; a worktree launch names its own branch). server-local-checkout-branch-follow becomes a fork-owned follower (forkLocalCheckoutBranchFollow.ts): run finalization's observer hands back the checkout status it already read, finalize passes it to the follower, and runtimeLayer provides the real follower (backed by thread management) to production only — no layer cycle, and the replay harness keeps the no-op default. V2 has no expectedBranch compare-and-swap; the adoption is guarded by expectedWorktreePath: null.
  • Desktop — the Electron profile mirrors upstream's V2 step slot for slot: t3code-fork-v2, importing the fork's own t3code-fork once (localStorage, Windows safeStorage keys); the never-matching "T3 Code (Fork)" sentinel stays. The launch isolation script and its guard follow.
  • Composer / design mode — upstream removed the client queue (queuedMessageStore, sendQueuedMessage); queued sends are server-side runs on the single startTurn path, so design-change pills ride every send. Editing an already-queued run leaves pills pending (no client createdAt for preview correlation). The idle dictation mic yields the slot to upstream's new resume action; a live session never does. The composer-inset stamp moved into upstream's publishComposerOverlayHeight.
  • Sidebar — ported sweep-to-settle/un-settle/wake (feat(web): sweep sidebar buttons to settle, un-settle, and wake threads pingdotgg/t3code#14768), the draft context menu (fix(web): add context menu to draft threads in the sidebar pingdotgg/t3code#10637), Working-section ordering (fix(clients): Working section keeps its order while agents finish and wake pingdotgg/t3code#15418), secondary-pointer reveal (fix(web): reveal sidebar actions for secondary hovering pointers pingdotgg/t3code#15536) and the new limited status into the fork's card rows; SidebarBrandWidthProbe re-implemented for the fork's header geometry; the model/price dialogs ride in the usage popover body.
  • Workspace header — pills sit on upstream's ActionGroup/ThreadDetailsControl; the fork marks are toolbar-only, the new thread-details panel stays unmarked; the multiline git progress readout is let out of the 28px pin.
  • Icons — 14 new lucide names mapped in the Phosphor shim.
  • Lint — the fork React-compiler baselines re-measured against upstream's own ChatView.tsx; upstream's dead imports in fork-owned files carry oxlint-disable-next-line rather than deletion.
  • Parked: fork-subagent-spawn-card — upstream removed AgentSpawnRow and the agent-panel model the fork tree drew from; spawn batches render through V2SubagentGroup. The manifest records the parked state and the guard pins it; the Figma tree needs a V2-shaped redesign, not a port.

Verified

  • web / server / desktop / mobile / contracts / client-runtime / shared typecheck: 0 errors
  • fork guard suite 494/494; 116 server tests around the re-homed customizations (incl. ThreadLaunchService, RunFinalizationService, RunExecutionService, runtime layer); 1455 focused web tests (chat, sidebar, usage, custom, overrides); desktop identity / Clerk / user-data tests
  • vp lint apps/web/src 0 errors; .fork/lint-owned.mjs no blocking warnings
  • Known host-dependent failure only: the Windows cross-arch artifact test on Apple Silicon (pre-existing)

Not run in a browser. Worth a look after merge: the queued-runs control inside the fork composer shell, the sweep gesture on card rows, the thread details panel pills, and first launch of a packaged build (V1 → V2 profile import).

Follow-ups (not in this PR)

  • Redesign the subagent spawn CTA against V2SubagentGroup and un-park fork-subagent-spawn-card.
  • The fork liveness pill shows only a count; upstream's dropped banner listed per-task links to subagent threads.
  • 125 deferred fork lint warnings remain under DEFERRED_RULES.

Claude Fable 5.1 via Claude Code (T3 Code), with four subagents for the sidebar, composer, workspace-header and override-shadow/desktop clusters.

🤖 Generated with Claude Code

juliusmarminge and others added 30 commits October 2, 2026 12:22
Co-authored-by: maria-rcks <maria@kuuro.net>
Co-authored-by: Bilal Bakr <62337003+Bil0000@users.noreply.github.com>
Co-authored-by: shivam <91240327+shivamhwp@users.noreply.github.com>
Co-authored-by: Vitalii Yehorov <vitalyiegorov@gmail.com>
Co-authored-by: Jake Leventhal <jakeleventhal@me.com>
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
Co-authored-by: Alex Southwell <saphid@gmail.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Nicholas Wasmiller <derped@mineperial.com>
Co-authored-by: PB <poilmb@gmail.com>
Co-authored-by: Exotic <118054752+extoci@users.noreply.github.com>
Co-authored-by: Yash Singh <saiansh2525@gmail.com>
Co-authored-by: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Co-authored-by: Theo Browne <me@t3.gg>
Co-authored-by: Gabriel De Andrade <30420087+gabrielelpidio@users.noreply.github.com>
Co-authored-by: Dara Adedeji <76637177+SunkenInTime@users.noreply.github.com>
Co-authored-by: scratchyone <scratchywon@gmail.com>
Co-authored-by: Dominic Roy <dominic@sdko.org>
Co-authored-by: chukfinley <chuk@chuk.dev>
Co-authored-by: Primož Ajdišek <bigpod@bigpod.si>
Co-authored-by: benthecarman <benthecarman@live.com>
Co-authored-by: NaveDanan <nave0712@gmail.com>
Co-authored-by: aaditagrawal <103925638+aaditagrawal@users.noreply.github.com>
Co-authored-by: Aditya Garud <153842990+yashranaway@users.noreply.github.com>
Co-authored-by: Nick Anisimov <n.anisimov.23@gmail.com>
Co-authored-by: MacKinley Smith <smithmackinley@gmail.com>
Co-authored-by: Yordis Prieto <yordis.prieto@gmail.com>
Co-authored-by: t3-code[bot] <269035359+t3-code[bot]@users.noreply.github.com>
Co-authored-by: AKolenda <akole779@mtroyal.ca>
Co-authored-by: Guillermo Casanova <75276669+Gigioxx@users.noreply.github.com>
Co-authored-by: Otavio Salvador <otavio@ossystems.com.br>
Co-authored-by: Shirish Pothi <183252392+shirishpothi@users.noreply.github.com>
Co-authored-by: Ishaan Kothari <ishaanko.mail@gmail.com>
Co-authored-by: Bob Fowler <bob@rjf.ca>
Co-authored-by: Anton Bezdenezhnykh <gamer392@yandex.ru>
Co-authored-by: ValeraZSD <48602572+ValeraZSD@users.noreply.github.com>
Co-authored-by: Ephraim <ephraim39hr14m@gmail.com>
Co-authored-by: Ryan Ilano <ryanilano@users.noreply.github.com>
Co-authored-by: Alex <me@pixp.cc>
Co-authored-by: maco <gosarmarcel7@gmail.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Tristan Knight <admin@snappeh.com>
Co-authored-by: PR Batch Tester <agent@local.test>
Co-authored-by: oliver <97427849+flamboh@users.noreply.github.com>
Co-authored-by: kamkm <99585688+Kamkmgamer@users.noreply.github.com>
Signed-off-by: Yordis Prieto <yordis.prieto@gmail.com>
Co-authored-by: codex <codex@users.noreply.github.com>
…4860)

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…ersion (pingdotgg#14863)

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…ingdotgg#14893)

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…gents (pingdotgg#14726)

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
)

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…ge (pingdotgg#14915)

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…wser tabs (pingdotgg#14727)

Co-authored-by: PR Batch Tester <agent@local.test>
Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
)

Signed-off-by: Yordis Prieto <yordis.prieto@gmail.com>
…re binaries (pingdotgg#14944)

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…gdotgg#14972)

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…string (pingdotgg#14950)

Signed-off-by: Yordis Prieto <yordis.prieto@gmail.com>
…ingdotgg#14994)

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Added markflorkowski and Yash-Singh1 to exemptions list.
…connect (pingdotgg#15002)

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…dotgg#15019)

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…pingdotgg#15016)

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
… sockets (pingdotgg#14897)

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…ingdotgg#15029)

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…dotgg#15024)

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
pingdotgg#15008)

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…retries back off (pingdotgg#15034)

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…otgg#15041)

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
juliusmarminge and others added 24 commits October 4, 2026 18:11
…dotgg#15468)

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…15475)

Co-authored-by: Bil0000 <62337003+Bil0000@users.noreply.github.com>
Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-authored-by: maria-rcks <254055478+maria-rcks@users.noreply.github.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…ngdotgg#15847)

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…ingdotgg#15807)

Co-authored-by: T3 Code Test <t3code-test@example.com>
Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…otgg#15577)

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…ingdotgg#15219)

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…le (pingdotgg#15072)

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…gdotgg#15037)

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-authored-by: Yash Singh <saiansh2525@gmail.com>
…ingdotgg#15546)

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…ingdotgg#14918)

Co-authored-by: Simone <185146821+Lucenx9@users.noreply.github.com>
…#15851)

Co-authored-by: maria-rcks <254055478+maria-rcks@users.noreply.github.com>
…#15853)

Co-authored-by: maria-rcks <254055478+maria-rcks@users.noreply.github.com>
Merge upstream/main (166 commits since 024d495) into custom, including
the orchestrator-V2 rewrite (pingdotgg#2829) the 2026-10-02 sync deferred.

Server: the two fork customizations lost their hosts (CheckpointReactor.ts,
server.test.ts, the ws.ts bootstrap block). server-local-thread-branch now
hooks ThreadLaunchService's thread.create; server-local-checkout-branch-follow
is a fork-owned follower (forkLocalCheckoutBranchFollow.ts) that
RunFinalizationService feeds with the checkout status its observer already
read, wired through runtimeLayer for production only.

Desktop: the Electron profile mirrors upstream's V2 step — t3code-fork-v2,
importing the fork's own t3code-fork once; the "T3 Code (Fork)" sentinel
stays. The launch isolation script and its guard follow.

Web: design-mode pills ride upstream's server-side queued runs (the client
queue store is gone); the thread sidebar ports sweep-to-settle, the draft
context menu, Working ordering and the limited status; the workspace header
pills ride ActionGroup/ThreadDetailsControl toolbar-only; the override
shadows absorb their upstream diffs; the lucide shim gains 14 glyphs.
fork-subagent-spawn-card is parked (upstream removed its host; needs a V2
redesign). The fork lint baselines are re-measured against upstream's own
ChatView.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@github-actions github-actions Bot added 📱 Native Change Changes the native fingerprint; merging blocks production OTAs until a new store build ships. vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. size:XXL labels Oct 5, 2026

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do not approve. The V2 re-homes are the right shape: the checkout follower is its own Reference with a no-op default, thread-branch fill-in sits on ThreadLaunchService.thread.create, draft rows go through presentThreadShell, the spawn tree is parked against V2SubagentGroup, and ChatComposer decides when the idle mic yields to resume. Do not decompose ChatComposer, theme.custom.css, or the yaml for this sync.

One structural miss. The new pill exception keys on a Tailwind utility the toolbar path never applies, so the 28px pin still clips the multiline git progress this PR claims to let out. Stamp a real attribute on that control and key the CSS on it.

Open in Web View Automation 

Sent by Cursor Automation: Thermo nuke 4.6

Comment on lines +200 to +205
/* Upstream's git progress / success readouts (ThreadDetailsControl `multiline`,
class h-auto) grow a second output row while an action runs; the pin above
would clip it to one. Let that one button size to its content. */
:root[data-fork="noahhendrickson-t3code"] [data-fork-pill] > button.h-auto {
height: auto;
}

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this keys on a Tailwind utility the toolbar never has. ThreadDetailsControl on the toolbar (panel={false}) renders Button size="sm-multiline" — min-h-8 / sm:min-h-7, no h-auto. The panel path that does add h-auto is unmarked (data-fork-pill={isPanel ? undefined : true}). So this exception matches nothing, and the 28px pin above still clips the progress readout.

this works as a comment, but it makes the surrounding CSS more spaghetti. let's keep the behavior and restructure the hook.

Judo: stamp data-fork-pill-grow (or equivalent) on the toolbar multiline control — same last-resort fence as data-fork-pill — and key this rule on that attribute. Pin the attr + selector in the workspace-header guard; do not regex-lock .h-auto. Do not whole-file decompose theme.custom.css (3004).

}
part="primary"
panel={isPanel}
multiline

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this is the toolbar control the 28px pin clips. multiline here becomes Button sm-multiline, not class h-auto, so [data-fork-pill] > button.h-auto cannot see it.

Stamp data-fork-pill-grow when !isPanel (the Button already spreads leftover props). The panel success row below stays unmarked. That gives the CSS exception a real contract instead of a coincidental utility class.

@github-actions

github-actions Bot commented Oct 5, 2026

Copy link
Copy Markdown

Thread transfer impact

✅ Thread transfer remains within every enforced ceiling.

⚠️ The thread fixture changed, so impact percentages are not directly comparable to the main baseline.

Provider Metric Main baseline This PR Impact PR ceiling
Codex Total thread wire — 5.0 KiB — 6.8 KiB ✅
Codex Thread snapshot wire — 3.8 KiB — 4.9 KiB ✅
Codex Live turn WebSocket wire — 1.2 KiB — 2.0 KiB ✅
Codex Live turn WebSocket decoded — 20.9 KiB — 29.3 KiB ✅
Codex Live turn messages — 2 — 8 ✅
Claude Total thread wire — 5.0 KiB — 6.8 KiB ✅
Claude Thread snapshot wire — 3.8 KiB — 4.9 KiB ✅
Claude Live turn WebSocket wire — 1.2 KiB — 2.0 KiB ✅
Claude Live turn WebSocket decoded — 21.2 KiB — 29.3 KiB ✅
Claude Live turn messages — 2 — 8 ✅

Baseline: ef5d6a9 · PR result: 82a31f8 · Source CI: failure

Scenario and decoded snapshot size

10 historical turns, 5 command tools per turn, 878.9 KiB retained MCP result per historical turn, and a 1.05 MiB retained result in the measured turn.

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

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

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

📱 Native Change Changes the native fingerprint; merging blocks production OTAs until a new store build ships. size:XXL 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.