For: following an upstream, layer 4 of 5 (split from #3622). Source: refs/pull/3722/head changes to src/crew/autonomy.ts, src/crew/brief.ts and src/crew/runner.ts.
Done:
[ ] A check that records "conflict" starts one converge run, whose brief names the upstream URL, the fetched head and the conflicting files. A second check on the same head starts none.
[ ] The run respects the crew's autonomy settings: off means the conflict is only noted on the row.
[ ] A test with a stubbed runner sees exactly one run per conflicting head. bun x tsc --noEmit and the crew tests the change touches pass.
Files: src/actions/upstream_follow.ts, src/crew/autonomy.ts, src/crew/brief.ts, src/crew/runner.ts, tests.
Risk: runaway runs. One per head, never per check. If the check fails where it ran and not in the change, say so in the pull.
For: following an upstream, layer 4 of 5 (split from #3622). Source:
refs/pull/3722/headchanges tosrc/crew/autonomy.ts,src/crew/brief.tsandsrc/crew/runner.ts.Done:
bun x tsc --noEmitand the crew tests the change touches pass.Files:
src/actions/upstream_follow.ts,src/crew/autonomy.ts,src/crew/brief.ts,src/crew/runner.ts, tests. Risk: runaway runs. One per head, never per check. If the check fails where it ran and not in the change, say so in the pull.