Problem
#1404's merged Builder Action Automatic press fires view-diff for implement/review builders, which opens the multi-file aggregate diff editor. The SD+ Files/Changes dials navigate per-file, so for dial-driven review the press should land on the builder's first file in per-file diff mode, positioned so the dials step from there.
Origin: #1404 dev-approval review discussion (owner + builder); routed through the architect.
Ground truth (verified against the code 2026-08-12)
diff-first-file → codev.diffFirstFile → navigateDiffToFirst opens the first per-file diff and seeds dial navigation, but takes no builder-id argument: resolveDiffContext (apps/vscode/src/commands/diff-nav.ts:118) resolves the builder from the active editor's diff-inject entry or lastPosition, and fired cold it flashes 'open a builder file diff first' and no-ops.
view-diff → codev.viewDiff is the only relay verb that opens a specific builder's diff by id, and it opens the aggregate editor.
- So no verb today means 'open builder X's first file diff'.
Verify first (fold into a hardware session)
Confirm on hardware whether the dials already navigate after an Automatic view-diff press (whether the aggregate open populates the diff-inject registry / lastPosition). If they do, this issue is a 'land on file 1 in per-file mode' polish; if they don't, it is a broken-dial-flow fix and rises in priority.
Proposed (vscode-side)
Add a builder-id-scoped 'open first file diff' path: seed navigateDiffToFirst from an explicit id (reuse resolveDiffContext internals / openBuilderFileDiff), expose as a relay verb (e.g. open-diff-first taking [builderId]), and point the deck's Automatic diff branch at it. The explicit 'View Diff' PI option keeps opening the aggregate, unchanged.
Relation / sequencing
Builds on #1404 (changes where its Automatic diff branch points) — after it merges. Fits #1410's dial-driven review workflow.
Suggested protocol
PIR (hardware verification of the dial seeding either way).
Problem
#1404's merged Builder Action Automatic press fires
view-difffor implement/review builders, which opens the multi-file aggregate diff editor. The SD+ Files/Changes dials navigate per-file, so for dial-driven review the press should land on the builder's first file in per-file diff mode, positioned so the dials step from there.Origin: #1404 dev-approval review discussion (owner + builder); routed through the architect.
Ground truth (verified against the code 2026-08-12)
diff-first-file→codev.diffFirstFile→navigateDiffToFirstopens the first per-file diff and seeds dial navigation, but takes no builder-id argument:resolveDiffContext(apps/vscode/src/commands/diff-nav.ts:118) resolves the builder from the active editor's diff-inject entry orlastPosition, and fired cold it flashes 'open a builder file diff first' and no-ops.view-diff→codev.viewDiffis the only relay verb that opens a specific builder's diff by id, and it opens the aggregate editor.Verify first (fold into a hardware session)
Confirm on hardware whether the dials already navigate after an Automatic
view-diffpress (whether the aggregate open populates the diff-inject registry /lastPosition). If they do, this issue is a 'land on file 1 in per-file mode' polish; if they don't, it is a broken-dial-flow fix and rises in priority.Proposed (vscode-side)
Add a builder-id-scoped 'open first file diff' path: seed
navigateDiffToFirstfrom an explicit id (reuseresolveDiffContextinternals /openBuilderFileDiff), expose as a relay verb (e.g.open-diff-firsttaking[builderId]), and point the deck's Automatic diff branch at it. The explicit 'View Diff' PI option keeps opening the aggregate, unchanged.Relation / sequencing
Builds on #1404 (changes where its Automatic diff branch points) — after it merges. Fits #1410's dial-driven review workflow.
Suggested protocol
PIR (hardware verification of the dial seeding either way).