chore(v2): merge main into the V2 branch - #14567
Conversation
Co-authored-by: Khai Shern, Toh <khaishern8235@gmail.com> Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
…14028) 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: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…#14027) Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…sh (#14029) Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
… parent's model (#14540) Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…d plugins (#14542) Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…nup (#14553) Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Merges origin/main (148e6de) into t3code/codex-turn-mapping (2330919). Brings in #10154, #14028, #14025 (side-by-side PR checks and weighted server shards), #14037, #14027, #14029, #14540, #14542 (restart the agent session from cmd+k), #14548, #14553 and #14527 (new project from a name). No new migrations on main. V1 files V2 deleted (kept deleted): - provider/Layers/ClaudeAdapter(.test).ts: #14540 pushes a subagent's snapshot model at once, and gives a task launched from inside a subagent (its tool_use seen only in the subagent's assistant snapshot) that subagent as owner and its model. V2 covers the first half: ClaudeAdapterV2.ts:5516-5535 emits subagent.updated with the snapshot model as soon as it arrives. It does not cover the second: V2 records requested models only for Agent tool_use blocks (:5711) and keeps no owner map for snapshot-only tool calls, so main's nested task_started gets model null and the root turn node as parent. Left for a separate ClaudeAdapterV2 fix, not ported here. - server.test.ts: #14527's test for projects.createNew through the V1 WebSocket path. The stacked project-folders service PR adds service tests instead. Content conflicts: - ws.ts: V2's side everywhere. #14527's inline createNewProject (folder, normalizeDispatchCommand, dispatch) is not brought in. projects.createNew is a stub that fails with "Starting a new project from a name is not available yet.", and the config answer omits newProjectsRoot, so web and mobile do not offer the feature. Main's reasoningMessages flag stays dropped, as in the previous sync. #14542's fresh flag on providers.refresh merged cleanly. - contracts/rpc.ts: V2's orchestrationV2 imports plus #14527's ProjectCreateNewInput/Result. - ProviderRegistry.test.ts: V2's orchestrationAdapter field plus #14542's invalidateCaches counter. - knip.jsonc: V2's probe/verify script entries plus #14025's update-test-shard-weights.ts, sorted. Also adapted (merged cleanly but wrong for V2): - ci.yml: git placed V2's "Install C toolchain for process-tree fixtures" step in #14025's new Typecheck job. Moved back to the Test job, where V2 runs the ACP process-tree tests that need cc. - CommandPalette.tsx: #14542's Restart agent session read thread.session, which V2's thread shell does not have. It now uses thread.runtime, as V2's other stopSession callers do. NewProject.ts and its test come in as-is from main; nothing calls them yet. shardWeights.json lists 15 V1 test files V2 deleted. The sequencer treats recorded names it does not see as absent and unknown files as fast, so the split still covers every V2 server test file exactly once. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Thread transfer impact✅ Thread transfer remains within every enforced ceiling.
Baseline: unavailable · PR result: Scenario and decoded snapshot size10 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.
Updated in place by a trusted workflow. PR artifacts are strictly validated and never executed. |
ApprovabilityVerdict: Not approved Macroscope's review found this PR not approvable — This is a broad 53-file sync containing new project and session capabilities, provider behavior changes, npm publication changes, and production deployment workflow changes. It also modifies authorization code and adds static-analysis suppression directives, creating a review surface that requires human assessment. You can add or adjust custom eligibility rules. Learn more. |
bb607b0
into
t3code/codex-turn-mapping
Merges
main(148e6de, 11 commits) into the V2 branch, so V2 stays current with main. A merge commit that resolves the conflicts and adapts two clean merges that were wrong for V2; nothing else.A refactor PR is stacked on this one: it moves #14527 ("start a new project from just a name") into a service for the project folders T3 creates under its data dir, merged with
ScratchWorkspace. Both merge together.What comes in
RpcAuthorization, web, mobile,client-runtime, docs, andproject/NewProject.ts(as-is; nothing calls it yet).ProviderRegistryfresh workspace scans,AntigravityProviderrescans, the command palette action, docs.Conflicts and how they were resolved
provider/Layers/ClaudeAdapter(.test).ts,server.test.ts(V1, deleted on V2): kept deleted.ws.ts: V2's side everywhere.projects.createNewis a stub that fails with "Starting a new project from a name is not available yet.", and the config answer omitsnewProjectsRoot, so web and mobile hide the feature. The stacked PR implements both.contracts/rpc.ts: both import sets (V2's orchestrationV2, main'sProjectCreateNew*).ProviderRegistry.test.ts: V2'sorchestrationAdapterplus feat(web): restart the agent session from cmd+k to load new skills and plugins #14542'sinvalidateCachescounter.knip.jsonc: V2's script entries plusupdate-test-shard-weights.ts.Adapted after merging cleanly:
ci.yml: git put V2's "Install C toolchain for process-tree fixtures" step into perf(ci): run PR checks side by side and balance server shards #14025's new Typecheck job. Moved it back to Test, which runs the ACP process-tree tests that compile withcc.CommandPalette.tsx: feat(web): restart the agent session from cmd+k to load new skills and plugins #14542 readthread.session, which V2's thread shell lacks. It now usesthread.runtime, like V2's otherstopSessioncallers.Follow-up: #14540 is only partly covered by V2
I fed #14540's test frames through
ClaudeAdapterV2in a throwaway probe (not committed).subagent.updated(ClaudeAdapterV2.ts:5516-5535).task_startedwhosetool_use_idappears only in a subagent's assistant snapshot (main'stoolu_nested) getsmodel: null, and its child thread takes the parent's model. ItsparentNodeIdis the root turn node, not the owning subagent. V2 records requested models only forAgenttool_use blocks (:5711) and has no owner map for snapshot-only tool calls.The fix is being ported to
ClaudeAdapterV2as its own PR.Sharding check (#14025)
ci.ymlnow runs the server in 6 shards on 4-vCPU runners, ordered byWeightedShardSequencer.shardWeights.jsonlists main's files, 15 of which are V1 tests V2 deleted. The sequencer only looks up weights for files it is given, so stale names are ignored and V2-only files count as fast.transferBudgetV2.integration.test.tslands in one shard, so the single transfer-report artifact still works. Re-recording the weights on V2 would balance the shards better; that is optional.scripts/build-npm-platform-packages.ts,smoke-cli-archive.tsandcli.tsare unchanged on V2 since the last sync, so they are main's versions verbatim, and the preview path (release_channel == 'preview') is untouched.Verification
vp i, thentsc --noEmitexits 0 forapps/server,apps/web,apps/mobile,packages/contracts,packages/client-runtimeandpackages/shared.unshare -U --map-current-user -p -f --mount-proc:ProviderRegistry.test.ts,AntigravityProvider.test.ts,NewProject.test.ts,RpcAuthorization.test.ts,weightedShardSequencer.test.tsandscripts/publishOrder.test.ts: 92 passed.OrchestratorReplayFixtures.integration.test.ts,ClaudeReplayFixtures.integration.test.tsandws.test.ts: 115 passed.KeybindingsSettings.logic.test.ts,ComposerCommandMenu.test.tsxandcomposerMenuHighlight.test.ts: 34 passed. Shared:path.test.ts: 6 passed.vp linton the conflicted and adapted files shows no errors. TheCommandPalette.tsxwarnings were already on V2.vp run knip:checkpasses.Model: Claude Opus 5.5 (Claude Code)
🤖 Generated with Claude Code