Skip to content

fix(coord): bind tier-4 engine to wrapper manifest - #2912

Merged
EHotwagner merged 3 commits into
mainfrom
item/2908-bind-tier4-manifest
Aug 24, 2026
Merged

EHotwagner merged 3 commits into
mainfrom
item/2908-bind-tier4-manifest

Conversation

@EHotwagner

@EHotwagner EHotwagner commented Aug 24, 2026 •

Copy link
Copy Markdown
Contributor

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-coord and tests/coord-engine-parity/shim.sh at head 9d6a8629a255798edb96a9071d028d88ce9192b8; effective base d6a6482d8ab7117260e86cce4cc581c502093118.

Regression controls

  • Two real Git checkout fixtures carry conflicting pins (wrapper=0.72.0, caller=0.71.0). The wrapper-root 0.72 assembly executes while preserving caller cwd and receiving next --help unchanged.
  • The fake engine deliberately does not print resolution facts; assertions parse the production wrapper JSON receipt, proving the evidence is not fixture-supplied.
  • Removing the wrapper pin drives an explicit restore bound to the wrapper manifest; forcing the selected assembly to report 0.71 makes the wrapper fail closed with manifest, pin, assembly, and observed-version evidence.

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

  • Production-shaped parity: 87/87 passed after rebase.
  • Release build: 0 warnings, 0 errors.
  • Pinned ShellCheck 0.11.0: 149 files and 456 workflow steps clean.
  • Coherent scalar: all three packages evaluate to 0.75.2; bounded release-notes fixture 27/27.
  • FS.GG.Kit and FS.GG.Drivers package verification passed; all three packages pack as 0.75.2.
  • Release coherence: 17/17; pipefail, syntax, diff, and relock stability gates clean.

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.

@EHotwagner

EHotwagner commented Aug 24, 2026 •

Copy link
Copy Markdown
Contributor Author

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.

@EHotwagner

Copy link
Copy Markdown
Contributor Author

{"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"}

@github-actions

Copy link
Copy Markdown

✅ This PR stays inside the touch-set its issue declared.

@EHotwagner

Copy link
Copy Markdown
Contributor Author

{"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"}

@EHotwagner
EHotwagner force-pushed the item/2908-bind-tier4-manifest branch from 03e8e4d to 1b84b0e Compare August 24, 2026 02:10
@EHotwagner

Copy link
Copy Markdown
Contributor Author

{"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"}

@EHotwagner

Copy link
Copy Markdown
Contributor Author

{"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"}

@EHotwagner

Copy link
Copy Markdown
Contributor Author

{
"schema": "fsgg.coord.review-wait/v1",
"event": "complete",
"reviewGeneration": "1b84b0e1a43217067ad2d15f5d7c7b9f380da13a:initial-review:0",
"at": "2026-08-24T02:24:15Z",
"evidenceRef": "#2912 (comment)"
}

@EHotwagner
EHotwagner force-pushed the item/2908-bind-tier4-manifest branch from 1b84b0e to 9d6a862 Compare August 24, 2026 05:09
@EHotwagner

Copy link
Copy Markdown
Contributor Author

@EHotwagner

Copy link
Copy Markdown
Contributor Author

{"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"}

@EHotwagner

Copy link
Copy Markdown
Contributor Author

@EHotwagner

Copy link
Copy Markdown
Contributor Author

{"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"}

@EHotwagner
EHotwagner merged commit 0d56bb1 into main Aug 24, 2026
63 of 65 checks passed
@EHotwagner
EHotwagner deleted the item/2908-bind-tier4-manifest branch August 24, 2026 05:36
@EHotwagner

Copy link
Copy Markdown
Contributor Author

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 feeds-complete verdict.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[coord] Bind tier-4 engine resolution to the wrapper manifest, independent of caller cwd

1 participant