Skip to content

chore: sync upstream main with Orchestrator V2 landed, keeping fork features - #65

Merged
vkpdeveloper merged 162 commits into
mainfrom
chore/sync-upstream-2026-10-03
Oct 2, 2026
Merged

vkpdeveloper merged 162 commits into
mainfrom
chore/sync-upstream-2026-10-03

Conversation

@vkpdeveloper

Copy link
Copy Markdown
Owner

Upstream landed Orchestrator V2 on main (pingdotgg#2829) and deleted the V1 orchestration layer. The fork was behind, and a direct merge produced 444 conflicts because main has V2 as one squash commit while the fork had merged the V2 branch earlier.

This merges in two steps so that only real changes conflict:

  1. Merge the V2 PR head (b37fcea42f). The fork last merged that branch at a3fbbe4531, so git uses both merge bases (42 conflicts).
  2. Merge upstream/main (cc1e634bfa), applying only main's delta past that head: Claude MCP tool names and icons, the OpenCode policy for released builds, the preview manifest revert, and mobile 2.0.0.

Fork features kept: usage-limit auto-resume banner and cancel (web and mobile), transient-failure retry, image generation instructions, custom environment names on mobile pairing, shared-credential adapter caching, graceful Claude interrupt, Cursor SDK model cache, manifest refresh on boot, pooled usage without hub sources, Vibe Proxy usage, and Expo battery for Dock mode (now ~58.0.3 for SDK 58). The fork's 8 deliberate deletions stay deleted, and migrations 041–049 keep the published sequence.

Removed, needs a look: upstream deleted V1. These fork files were already unreachable before this merge and only compiled against V1, so they are removed rather than ported:

  • worktreeCleanup.ts: its layer was never provided. V2 storageCleanup.ts already prunes worktrees through resolveWorktreeCleanup.
  • The mcp/toolkits/threadReference toolkit: never registered. t3_thread_read is served by upstream's orchestrator toolkit, so t3-thread link instructions still work.
  • persistence/Services/ProjectionCheckpoints.ts: had no importers.
  • The V1 copies of the usage-limit reactor and decider test: the V2 UsageLimitResumeService is what runs.

Verification

  • Typecheck passes for server, web, mobile, desktop, contracts, shared, client-runtime, and relay.
  • Tests: Claude V2 adapter 127/127, registry, manifest, Cursor catalog, Codex instructions, shared usage limits, client-runtime onboarding and threads-sync, relay publisher.
  • One failure that predates this merge: providerCompatibility.test.ts "bundles a compatibility policy for every built-in harness" fails for devin, the fork-added provider, which has never had a bundled policy.
  • Not run in a real client.

Model: Claude Opus 5.5 (1M context) · Harness: Claude Code in T3 Code.

🤖 Generated with Claude Code

saphid and others added 30 commits September 27, 2026 14:24
…ingdotgg#13539)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Claude Code <noreply@anthropic.com>
Co-authored-by: shivamhwp <91240327+shivamhwp@users.noreply.github.com>
…ead (pingdotgg#13489)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: shivamhwp <91240327+shivamhwp@users.noreply.github.com>
… finishes (pingdotgg#13938)

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

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

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: shivamhwp <91240327+shivamhwp@users.noreply.github.com>
…ingdotgg#13879)

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

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

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

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

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

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

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

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

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

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

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Conflicts resolved:
- CodexDeveloperInstructions: keep V2's launcher-path wording, take main's simctl/adb guidance.
- Cursor keychain timeout (pingdotgg#13870): V2 renamed cursorCredentialStore to cursorKeychainToken; point imports at the V2 file.
- ClaudeAdapter (V1, pingdotgg#13999): stays deleted on V2.
- MessagesTimeline (pingdotgg#13850): the reasoning header main restyled does not exist on V2.
- Sidebar: keep both new imports.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
… thread (pingdotgg#14181)

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

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

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

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

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

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

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

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
flamboh and others added 26 commits October 2, 2026 00:20
Co-authored-by: t3-code[bot] <269035359+t3-code[bot]@users.noreply.github.com>
Co-authored-by: maria <254055478+maria-rcks@users.noreply.github.com>
…gdotgg#14636)

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

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

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-authored-by: codex <codex@users.noreply.github.com>
…seconds (pingdotgg#14835)

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

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Merges origin/main (6c8fed3) into t3code/codex-turn-mapping (3eaae44).
The previous sync (pingdotgg#14668) was squash-merged, so V2 already holds main's
content up to a3abb52 without the merge parent. This merge was built with
`git merge-tree --merge-base=a3abb52660`, so only the 15 commits in
a3abb52..6c8fed3 apply and nothing already synced re-conflicts.
No new migrations on main.

Brings in pingdotgg#14673 (batched GitHub GraphQL polling), pingdotgg#13926 (beta Working
section), pingdotgg#14678 (update providers on every machine), pingdotgg#14674, pingdotgg#13426,
pingdotgg#14700, pingdotgg#14675, pingdotgg#14601, pingdotgg#14532, pingdotgg#14756, pingdotgg#14734 (Expo 58 update), the 1.4.0
mobile version bump, pingdotgg#12615, pingdotgg#14367 and pingdotgg#14710.

V1 files V2 deleted (kept deleted):
- orchestration/PullRequestSyncReactor(.test).ts and
  orchestration/ThreadPullRequestReactor.ts: pingdotgg#14673's reactor batching.
  Git matched them to V2's orchestration-v2/PullRequestSyncReactor(.test).ts
  and ThreadPullRequestService.ts, so the change landed there: one queued
  "requested" sweep reads a burst of requestSync keys together, a summary
  that places a PR in no stack skips the stack read, and a stack-number
  change in the summary triggers a stack refresh. Main's two new reactor
  tests merged into V2's test file and use V2's harness as-is.
- web ChatMarkdown.workspace-images.test.tsx: V2 removed it in 894f6c4.
  pingdotgg#12615 added Windows-path cases there; the link case is ported into V2's
  ChatMarkdown.test.tsx "Windows file links" block. The image-resource
  cases depend on that file's asset mocks and are not ported.

Content conflicts:
- orchestration-v2/PullRequestSyncReactor.ts: main's sweep(scope) signature
  over V2's projections.getThreadsWithPullRequests() read.
- orchestration-v2/ThreadPullRequestService.ts: main's concurrency 32 (was
  V2's 25), so a sweep's branch lookups reach GitHubCli's 50-wide GraphQL
  document together.
- chat/ChatHeader.tsx: kept V2's slim header (f71e6a2); main's
  header-actions block is not in V2. pingdotgg#13426's ChatView half (the maximize
  control leaves the flex flow when closed) is applied to V2's panel
  controls in ChatView.tsx.
- Sidebar.logic(.test).ts, Sidebar.tsx: pingdotgg#13926 on V2's sidebar model.
  isSidebarThreadWorking folds V2's "working" and "waiting" (idle with open
  background tasks, main's "monitoring") statuses, minus a ready plan.
  sortInboxThreadsByReturn reads latestRun instead of latestTurn. V2's
  subagent filter, section resolver and CollapsibleSectionHeader stay;
  the Working header uses the muted tone. Main's status tests are rewritten
  on V2's runtime fixture.
- settings/SettingsPanels.tsx, settingsSearch.ts, docs/user/thread-sidebar.md:
  both sides (V2's limited-thread rows and title docs, main's Working
  section row and docs).

pingdotgg#14678 uses the existing server.updateProvider RPC, which V2's ws.ts
serves through providerMaintenanceRunner, so no server change is needed.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
The merge's Sidebar.logic.test.ts import list took V2's side, which had
dropped resolveSidebarDropTarget and planSidebarThreadDrop, while main's
Working shelf tests call both. Also formats isSidebarThreadWorking.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Merges origin/main (e0db2a5) into t3code/codex-turn-mapping (af7de21).
The previous sync (pingdotgg#14851) landed as a merge commit, so git's merge base is
6c8fed3 and only main's 3 new commits apply.

Brings in pingdotgg#14850 (Android release builds no longer crash when opening a
thread: react-native-keyboard-controller patch), the v0.0.45 release prep
(package versions), and pingdotgg#13295.

V1 files V2 deleted (kept deleted):
- orchestration/Layers/OrchestrationEngine(.test).ts (pingdotgg#13295): V1's engine
  republished every event since a stale snapshot after a failed command, so a
  second server sharing the state directory could start a duplicate Claude
  turn. V2's EventSink only ever publishes the events its own write appended
  (EventSink.ts: each publishLiveEvents call takes the storedEvents its
  transaction returned), so V2 has no equivalent path to port.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
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>
Merge pingdotgg/t3code PR pingdotgg#2829 at b37fcea, the head that landed on main
as de34391. The fork last merged that branch at a3fbbe4, so this merge
uses both bases instead of replaying the squash.

Upstream removed the V1 orchestration layer and contracts/orchestration.ts.
The fork's usage-limit auto-resume and transient retry already run on V2, so
their V1 copies go with it; migrations 041-049 keep the published sequence.
Fork changes preserved: usage-limit banner and cancel, image generation
instructions, shared-credential adapter caching, graceful Claude interrupt,
Cursor SDK catalog caching, manifest refresh on boot, custom environment names,
pooled usage without hub sources, Expo battery for Dock mode.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Merge pingdotgg/t3code main at cc1e634. Main squashed Orchestrator V2
(pingdotgg#2829), which the previous commit already merged from its PR head, so only
main's delta past that head is applied: Claude MCP tool names and icons,
OpenCode policy for released builds, the preview manifest revert, and the
mobile 2.0.0 version.

Follow-ups from V1's removal:
- inline the message role in the fork's thread reference contract
- drop fork files that were already unreachable and only compiled against V1:
  worktreeCleanup (V2 storageCleanup owns worktree pruning), the unregistered
  threadReference MCP toolkit (t3_thread_read is served by the orchestrator
  toolkit), and the unused ProjectionCheckpoints service
- adapt fork code to upstream's namespaced imports and RN 0.88 view refs

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@github-actions github-actions Bot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. size:XXL labels Oct 2, 2026
@vkpdeveloper
vkpdeveloper merged commit 3dc6051 into main Oct 2, 2026
8 of 23 checks passed
@vkpdeveloper
vkpdeveloper deleted the chore/sync-upstream-2026-10-03 branch October 2, 2026 20:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

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.