Skip to content

chore(v2): merge main into the V2 branch - #14504

Merged
juliusmarminge merged 14 commits into
t3code/codex-turn-mappingfrom
v2/main-sync-0930
Oct 1, 2026
Merged

juliusmarminge merged 14 commits into
t3code/codex-turn-mappingfrom
v2/main-sync-0930

Conversation

@juliusmarminge

@juliusmarminge juliusmarminge commented Oct 1, 2026 •

Copy link
Copy Markdown
Member

V2 is 12 commits behind main. This merges origin/main at 1905846 into t3code/codex-turn-mapping at f3eb99e as one merge commit that resolves the conflicts and does nothing else. #10154, which landed on main during the push, is not included.

It brings in #14375, #10963, #14351, #14462 (vite-plus 1.0), #14479, #14480, #14485, #14486, #14490, #13612 (threads without a project), #14497 and #14499. There are no new migrations.

#14521, which moves "threads without a project" into a ScratchWorkspace service, is stacked on this one, and both merge together. This branch also merges V2's f48d257 (#14502), with no conflicts.

V1 files V2 deleted (kept deleted)

Content conflicts

  • relay/AgentAwarenessRelay.test.ts: V2's tests, using chore: bump vite-plus to 1.0 #14462's describe(name, { concurrent: false }, …) in place of describe.sequential.
  • apps/web/src/performance.bench.ts, packages/client-runtime/src/remotePerformance.bench.ts: V2's benchmarks, written in chore: bump vite-plus to 1.0 #14462's test(name, ({ bench }) => bench(…).run(options)) form.
  • KeybindingsSettings.logic.test.ts: V2's Usage order, with usage.open first and checked against both binding orders. Main's compareCommands and chat.newWithoutProject merged cleanly.
  • contracts/rpc.ts: both V2's projects.mutate and feat: start threads without a project #13612's projects.ensureScratch, in main's contract shape.
  • ws.ts: V2's side everywhere, and feat: start threads without a project #13612's V1 dispatch helpers are not brought back. projects.ensureScratch is a stub that fails with "Threads without a project are not available yet." The config answer omits scratchWorkspaceRoot, so web and mobile hide the feature. The stacked PR implements both.

Verification

  • vp i: the lockfile and the package.json files match main's vite-plus 1.0 bump, and nothing else changed.
  • tsc --noEmit, exit 0 with no error TS or warning TS, for apps/server, apps/web, apps/mobile, packages/contracts, packages/client-runtime and packages/shared.
  • Server tests, inside unshare -U -p: AgentAwarenessRelay.test.ts (22 passed); OrchestratorReplayFixtures.integration.test.ts, ClaudeReplayFixtures.integration.test.ts and ws.test.ts (109 passed).
  • KeybindingsSettings.logic.test.ts (21 passed), contracts/rpc.test.ts (5 passed), vscodeThemeImport.test.ts (18 passed).
  • Both bench files, with vp test bench --run: web 6 passed, client-runtime 5 passed.
  • fix(server): Claude /compact no longer ends early and leaves the thread busy #14497 coverage: a throwaway probe, since removed, replayed fix(server): Claude /compact no longer ends early and leaves the thread busy #14497's frame order through ClaudeAdapterV2 with zero- and positive-turn task-notification wakes and a peer wake, with and without an early echo.
  • vp lint on the conflicted files: no errors. The three warnings in ws.ts (unused Fiber, Schedule and projectSetupScriptRunner) are already on V2. vp fmt --check is clean, and vp run knip:check is clean.
  • Not run: the full test suites.

Model: Claude Opus 5.5 (Claude Code)

🤖 Generated with Claude Code


Devin Review

shivamhwp and others added 13 commits September 30, 2026 07:05
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
Co-authored-by: shivam <91240327+shivamhwp@users.noreply.github.com>
Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-authored-by: maria-rcks <maria@kuuro.net>
Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…ad busy (#14497)

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Merges origin/main (1905846) into t3code/codex-turn-mapping (f3eb99e).
Brings in #14375, #10963, #14351, #14462 (vite-plus 1.0), #14479, #14480,
#14485, #14486, #14490, #13612 (threads without a project), #14497 and
#14499. No new migrations on main.

V1 files V2 deleted (kept deleted):
- provider/Layers/ClaudeAdapter(.test).ts: #14497 ignores a result that
  answers a different Claude turn (an echoed user_message_uuid(s) that is not
  the active turn's, or a non-human origin), so a /compact queued behind a
  Claude-initiated turn gets its own result. V2 covers part of this.
  ClaudeAdapterV2.ts:5913 drops the zero-turn task-notification result that
  #14497's test sends, and :6178 sends a positive-turn task-notification wake
  to a continuation run once the process echoes early. Two cases are not
  covered: a positive-turn task-notification wake before the process's first
  early echo is accepted as the prompt's result (:6161, :5945), and V2 checks
  only origin "task-notification" (:2289), not other non-human origins. Both
  are left for a separate fix in ClaudeAdapterV2, not ported here.
- server.test.ts: #13612's tests for the V1 WebSocket dispatch path. The
  stacked ScratchWorkspace service PR adds service tests instead.

Content conflicts:
- relay/AgentAwarenessRelay.test.ts: V2's tests with #14462's vite-plus 1.0
  API (describe.sequential -> describe(name, { concurrent: false }, ...)).
  V2 has no signRelayAgentActivityPublishProof block, so only startup
  catch-up changes.
- web performance.bench.ts and client-runtime remotePerformance.bench.ts:
  V2's benchmarks (V2 projection fixtures, message updates) in #14462's
  test(name, ({ bench }) => bench(...).run(options)) form.
- KeybindingsSettings.logic.test.ts: V2's order (usage.open ranked first,
  checked against both binding orders). Main's compareCommands and
  chat.newWithoutProject merged cleanly into the logic and defaults.
- contracts/rpc.ts: both V2's projects.mutate and #13612's
  projects.ensureScratch (main's contract shape), with both import sets.
- ws.ts: V2's side everywhere. #13612's V1 dispatch additions are not
  brought back. projects.ensureScratch is a stub that fails with "Threads
  without a project are not available yet.", and the config answer omits
  scratchWorkspaceRoot, so web and mobile do not offer the feature. The
  stacked ScratchWorkspace service PR implements both.

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 1,000+ changed lines (additions + deletions). 📱 Native Change Changes the native fingerprint; merging blocks production OTAs until a new store build ships. labels Oct 1, 2026
@github-actions

github-actions Bot commented Oct 1, 2026 •

Copy link
Copy Markdown
Contributor

Thread transfer impact

✅ Thread transfer remains within every enforced ceiling.

ℹ️ No successful main baseline artifact is available yet. This run establishes the initial measurement.

Provider Metric Main baseline This PR Impact PR ceiling
Codex Total thread wire — 4.9 KiB — 6.8 KiB ✅
Codex Thread snapshot wire — 3.7 KiB — 4.9 KiB ✅
Codex Live turn WebSocket wire — 1.1 KiB — 2.0 KiB ✅
Codex Live turn WebSocket decoded — 20.4 KiB — 29.3 KiB ✅
Codex Live turn messages — 1 — 8 ✅
Claude Total thread wire — 4.9 KiB — 6.8 KiB ✅
Claude Thread snapshot wire — 3.7 KiB — 4.9 KiB ✅
Claude Live turn WebSocket wire — 1.2 KiB — 2.0 KiB ✅
Claude Live turn WebSocket decoded — 20.8 KiB — 29.3 KiB ✅
Claude Live turn messages — 2 — 8 ✅

Baseline: unavailable · PR result: 6b1d22f · Source CI: success

Scenario and decoded snapshot size

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

  • Codex decoded thread snapshot: 106.1 KiB
  • Claude decoded thread snapshot: 106.4 KiB

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

@juliusmarminge juliusmarminge added the macroscope-review Opt PRs made by unvouched contributors in for Macroscope review. Vouched contributors auto-reviews label Oct 1, 2026 — with ChatGPT Codex Connector
@macroscopeapp

macroscopeapp Bot commented Oct 1, 2026 •

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Not approved

Macroscope's review found this PR not approvable — This 55-file branch sync includes a substantial threads-without-project capability, a new default shortcut, authentication/RPC changes, and a major toolchain upgrade rather than only mechanical merge resolution. Its broad runtime and sensitive-path impact requires human review.

No code changes detected at 6b1d22f. Prior analysis still applies.

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

Brings in f48d257 (#14502), which only touches CheckpointRestoreSafety.ts
and its test. No conflicts.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Comment thread apps/server/src/ws.ts
@juliusmarminge
juliusmarminge merged commit 6b1d22f into t3code/codex-turn-mapping Oct 1, 2026
25 checks passed
@juliusmarminge
juliusmarminge deleted the v2/main-sync-0930 branch October 1, 2026 03:05
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 📱 Native Change Changes the native fingerprint; merging blocks production OTAs until a new store build ships. size:XXL 1,000+ 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.

6 participants