Repository navigation
fix(coord): bind tier-4 engine to wrapper manifest - #2912
Conversation
|
Owner and fulfillment authority: #2903. After every remaining #2903 child change has accumulated into the prepared 0.75.2 coherent-set source, the parent must verify the coordinated FS.GG.Kit, FS.GG.Drivers, and FS.GG.Coord.Cli 0.75.2 release on both feeds and post the exact-head delivery receipt. #2908 does not authorize publication and does not fulfill this obligation independently. |
|
{"schema":"fsgg.coord.review-wait/v1","event":"enter","item":"#2908","claimGeneration":"5389678076","reviewGeneration":"03e8e4d8f6ca4a261e9daefb593502c2e055bcd0:initial-review:0","kind":"initial-review","enteredAt":"2026-08-24T02:03:06Z","expiresAt":"2026-08-24T06:03:06Z","evidenceRef":"https://github.com/FS-GG/.github/pull/2912"} |
|
✅ This PR stays inside the touch-set its issue declared. |
|
{"schema":"fsgg.coord.review-wait/v1","event":"cancel","reviewGeneration":"03e8e4d8f6ca4a261e9daefb593502c2e055bcd0:initial-review:0","at":"2026-08-24T02:04:04Z","evidenceRef":"https://github.com/FS-GG/.github/actions/runs/32681716933/job/97299432380"} |
03e8e4d to
1b84b0e
Compare
|
{"schema":"fsgg.coord.review-wait/v1","event":"enter","item":"#2908","claimGeneration":"5389678076","reviewGeneration":"1b84b0e1a43217067ad2d15f5d7c7b9f380da13a:initial-review:0","kind":"initial-review","enteredAt":"2026-08-24T02:10:59Z","expiresAt":"2026-08-24T06:10:59Z","evidenceRef":"https://github.com/FS-GG/.github/pull/2912"} |
|
{"acceptedExceptions":[],"baseSha":null,"claimGeneration":null,"critic":"snipe-0e30","diffAuditReceipts":[],"diffAuditRequired":false,"digest":"0bad690f9c29566ecc77e0c723df784cb1b85566296a265acf9c9ce50756f90a","headSha":"1b84b0e1a43217067ad2d15f5d7c7b9f380da13a","initialReview":null,"kind":"initial","policyVersion":"structured-decisions/1","precedingReview":null,"previousDigest":null,"repairPhaseReceipt":null,"revision":1,"round":0,"routeApplicability":"meaningful","routeEvidence":["Built artifact: exact head 1b84b0e over effective base 44bac48 was built in detached worktree /tmp/fsgg-2908-critic-snipe.vcEhvu; dotnet build src/FS.GG.Coord.Cli -c Release succeeded with 0 warnings and 0 errors. Verification: git rev-parse HEAD; git merge-base 44bac48 HEAD; exact build output.","Executed command: uv run --with PyYAML==6.0.3 bash tests/coord-engine-parity/shim.sh passed 87/87 after the 614-assertion inner corpus; replacing WRAPPER_TOP derivation with caller TOP in a separate exact-head mutation worktree returned 83/87 with the four named reds for wrapper/caller separation, caller 0.71 selection, explicit wrapper restore, and mismatch refusal. Pinned ShellCheck 0.11.0 passed 149 files and 456 workflow steps; pipefail baselines, bash -n, relock stability, git diff --check, and verify-paths also passed. Verification: exact commands in /tmp/fsgg-2908-critic-snipe.vcEhvu and /tmp/fsgg-2908-mut-snipe.h2tmav; /tmp/2908-critic-mut-parity.log; live FSGG-PATHS OK classified registry/repos.lock as the ADR-0044 generated exemption.","Compared routes: the copied production wrapper rooted its 0.72.0 manifest and exact resolver-cache assembly independently of a caller checkout pinning 0.71.0, while the direct dotnet assembly invocation retained the caller checkout as PWD and preserved next --help argv; missing wrapper cache state invoked dotnet tool restore --tool-manifest on the wrapper manifest, and a forced 0.71.0.0 report from the selected 0.72.0 assembly refused at exit 69. Producer-agreement control: the host SDK cache at /home/developer/.dotnet/toolResolverCache/1/fs.gg.coord.cli contains the same Version, Name, Runner, and PathToExecutable record shape consumed by scripts/fsgg-coord:361-374; the restored fixture supplied both negative and positive versions and the restored exact assembly. Verification: parity output, independent mutation output, and direct read of the host resolver cache.","Observed result: CHANGES REQUIRED with two material in-scope findings. F1 acceptance/output: issue #2908 requires output or refusal to name the manifest/pin and resolved assembly used, but the successful production path at scripts/fsgg-coord:438-446 emits no such resolution evidence; the test passes only because its fake dotnet/engine prints assembly, cwd, and pin at tests/coord-engine-parity/shim.sh:1551-1558, so the fixture supplies a property production lacks. Repair the production success path or narrow the accepted requirement with accountable issue evidence, then add a gate whose observation comes from production rather than the fake. F2 releaseability: the exact-head hosted kit-published-coherence/pr-arm is red because scripts/fsgg-coord changes kit bytes while FS.GG.Kit remains 0.75.0, equal to the newest published version; its diagnostic says merging would leave canonical/receiver bytes incoherent and requires a version greater than 0.75.0. This is not either designed pre-authorization red: claim-fence and claim-generation are separately red until the sanctioned delivery call, while pr-arm is a tree defect that waiting cannot clear. The current none obligation and PR prose defer publication to parent #2903, but they do not satisfy this PR\u0027s required version arm; repair the version/declared delivery boundary consistently with the parent gate and rerun the hosted check. Verification: issue #2908 current body (0 edits), PR #2912 current body (2 edits, both before the current wait), scripts/fsgg-coord:333-446, tests/coord-engine-parity/shim.sh:1516-1599, hosted job https://github.com/FS-GG/.github/actions/runs/32682165813/job/97300744169, and parent #2903 comment 5389399537. No finding was filed because both repairs belong inside this PR and filing was explicitly out of scope. Diff audit is not required: the diff contains no bulk mechanically discovered semantic replacement."],"schema":"fsgg.coord.review-decision/v2","subject":"#2908/pr/2912","succession":null,"timestamp":"2026-08-24T02:23:33Z","verdict":"changes-required"} |
|
{ |
1b84b0e to
9d6a862
Compare
|
{"claimGeneration":"5389678076","enteredAt":"2026-08-24T05:10:01.0000000\u002B00:00","event":"enter","evidenceRef":"https://github.com/FS-GG/.github/pull/2912","expiresAt":"2026-08-24T09:10:01.0000000\u002B00:00","item":"FS-GG/.github#2908","kind":"repair-confirmation","reviewGeneration":"9d6a8629a255798edb96a9071d028d88ce9192b8:repair-confirmation:1","schema":"fsgg.coord.review-wait/v1"} |
|
{"acceptedExceptions":[],"baseSha":null,"claimGeneration":null,"critic":"finch-a559","diffAuditReceipts":[],"diffAuditRequired":false,"digest":"6027db3938c65488505b275f4e3d3e60e0d48de2dab69df97ac4fc92d90c3877","headSha":"9d6a8629a255798edb96a9071d028d88ce9192b8","initialReview":"https://github.com/FS-GG/.github/pull/2912#issuecomment-5389994745","kind":"confirmation","policyVersion":"structured-decisions/1","precedingReview":"https://github.com/FS-GG/.github/pull/2912#issuecomment-5389994745","previousDigest":"0bad690f9c29566ecc77e0c723df784cb1b85566296a265acf9c9ce50756f90a","repairPhaseReceipt":null,"revision":2,"round":1,"routeApplicability":"meaningful","routeEvidence":["Built artifact: exact repaired head 9d6a862 over live base d6a6482 was fully reviewed in detached checkout /tmp/fsgg-2908-r1-finch.2B6VgH; Release build completed with 0 warnings and 0 errors, all three coherent-set packages packed successfully as 0.75.2, and the generated scripts/fsgg-coord digest agrees with registry/repos.lock. Verification: git rev-parse HEAD; git diff --find-renames BASE..HEAD; dotnet build src/FS.GG.Coord.Cli -c Release; uv run --with PyYAML==6.0.3 dotnet pack on FS.GG.Kit, FS.GG.Drivers, and FS.GG.Coord.Cli; sha256sum scripts/fsgg-coord; registry/repos.lock:13.","Executed command: uv run --with PyYAML==6.0.3 bash tests/coord-engine-parity/shim.sh completed the 614-assertion inner corpus and the production shim corpus at 87/87. The changed refusal gate is reached by .github/workflows/coord-engine.yml pull_request, job engine, invocation line 222; this diff matches its scripts/fsgg-coord and tests/coord-engine-parity/** impact subjects. Independent true suppression of only the production receipt returned 85/87 with exactly the successful selection and explicit-restore receipt assertions red; independently replacing wrapper-root discovery with caller TOP returned 83/87 with the four selection, caller-pin, restore, and mismatch controls red. Restored exact head remained 87/87. Verification: /tmp/2908-r1-parity.log, /tmp/2908-receipt-suppress.log, /tmp/2908-root-mut.log, and .github/workflows/coord-engine.yml:126,222.","Compared routes: the copied production wrapper selected its own 0.72.0 manifest and exact resolver-cache assembly while invoked from a separate Git checkout pinned to 0.71.0; direct dotnet assembly execution preserved the caller checkout as PWD and preserved next --help argv. A missing wrapper-pin cache entry restored with --tool-manifest bound to the wrapper manifest, and a selected assembly reporting 0.71.0.0 refused at exit 69 with manifest, package pin, assembly, and observed version. The fake dotnet/engine emits only execution cwd and argv, so the fsgg.coord.engine-resolution/v1 object is independently observed production output after exact-version verification rather than fixture-supplied evidence. Verification: the four exact-head section-7 assertions in /tmp/2908-r1-parity.log and independent mutation results above.","Observed result: PASS; no unresolved material finding remains. Initial F1 is repaired by one deterministic stderr receipt after exact version verification without changing engine stdout/exit status, caller cwd, or argv. Initial F2 is repaired coherently: Directory.Build.props resolves Kit, Drivers, and Coord.Cli to 0.75.2; engine release-notes fixture passed 27/27, release-coherence passed 17/17, all three 0.75.2 packages packed, live kit-published-coherence pr-arm is green, and kit/v0.75.2, drivers/v0.75.2, and coord-engine/v0.75.2 remain uncut. The exact-head obligation comment 5389863298 declares coherent-set-0.75.2-release and assigns fulfillment exclusively to parent #2903; this PR performs no publication. FSGG-PATHS is OK, including generated registry/repos.lock under ADR-0044; diff audit is not required because no bulk semantic replacement exists. Verification: scripts/check-coherent-set-version.py; tests/engine-release-notes/run.sh; tests/release-coherence/run.sh; gh check run pr-arm job 97328889494; git ls-remote --tags origin for the three v0.75.2 tags returned empty; PR comment 5389863298; FSGG_WORKER=finch-a559 scripts/fsgg-coord verify-paths --pr 2912 --repo .github --issue #2908."],"schema":"fsgg.coord.review-decision/v2","subject":"#2908/pr/2912","succession":null,"timestamp":"2026-08-24T05:23:47Z","verdict":"pass"} |
|
{"at":"2026-08-24T05:24:30.0000000\u002B00:00","event":"complete","evidenceRef":"https://github.com/FS-GG/.github/pull/2912#issuecomment-5391085278","reviewGeneration":"9d6a8629a255798edb96a9071d028d88ce9192b8:repair-confirmation:1","schema":"fsgg.coord.review-wait/v1"} |
|
{"acceptedExceptions":[],"baseSha":"d6a6482d8ab7117260e86cce4cc581c502093118","claimGeneration":"5389678076","critic":"finch-a559","diffAuditReceipts":[],"diffAuditRequired":false,"digest":"d44349ddb62698323e285121f7695960e38369d2bd5d546ce86e482e8086bf6d","headSha":"9d6a8629a255798edb96a9071d028d88ce9192b8","initialReview":"https://github.com/FS-GG/.github/pull/2912#issuecomment-5389994745","kind":"acceptance","policyVersion":"structured-decisions/1","precedingReview":"https://github.com/FS-GG/.github/pull/2912#issuecomment-5391085278","previousDigest":"6027db3938c65488505b275f4e3d3e60e0d48de2dab69df97ac4fc92d90c3877","repairPhaseReceipt":null,"revision":3,"round":0,"routeApplicability":"not-meaningful","routeEvidence":["Host acceptance is a governance transition over the exact-head critic pass, terminal hosted checks, and parent-owned release obligation; it introduces no separate runtime route to compare."],"schema":"fsgg.coord.review-decision/v2","subject":"#2908/pr/2912","succession":null,"timestamp":"2026-08-24T05:31:47Z","verdict":"accepted"} |
|
Parent-owned release verification is complete. Verification: the linked evidence records the exact manifest identity, complete three-package/two-feed census, tag/source binding, independently recomputed payload hashes, positive control, and |
Closes #2908
Outcome
Tier 4 resolves the receiver wrapper manifest to one exact restored assembly, verifies that assembly version against the pin, and executes it directly without changing caller cwd. A successful real production execution emits one stable JSON receipt on stderr (
fsgg.coord.engine-resolution/v1) containing the exact manifest path, package pin, and resolved assembly; stdout and exit status remain the engine contract.Verification:
scripts/fsgg-coordandtests/coord-engine-parity/shim.shat head9d6a8629a255798edb96a9071d028d88ce9192b8; effective based6a6482d8ab7117260e86cce4cc581c502093118.Regression controls
wrapper=0.72.0,caller=0.71.0). The wrapper-root 0.72 assembly executes while preserving caller cwd and receivingnext --helpunchanged.Gate inversion: suppressing only the production receipt made exactly the two successful-resolution controls fail (85/87); restoring it returned 87/87. Replacing wrapper-root discovery with caller-root discovery independently produced the four selection/restore/mismatch failures; exact code was restored before rebase.
Gates
Delivery
Immutable 0.75.1 tags were cut at the #2859 merge before these later bytes existed. Parent #2903 therefore authorized the coordinated uncut 0.75.2 patch line. This PR performs no publication. Parent #2903 exclusively owns coordinated 0.75.2 publication and exact-head two-feed verification; #2908 neither authorizes nor fulfills it independently.