Finalize the governed factory proof and publish the verified canary - #226
stephschofield wants to merge 4 commits into
Conversation
Verification-SHA256: 6dc52e77c0453d396e3d6c7eac1cf6d02002ff46bfcd6a06cbe7519e9d8a5600
Live native factory acceptance — September 10, 2026The local issue-scoped pipeline completed without another chat-permission checkpoint:
The source checkout, #220's hard-stopped lineage and #222's exhausted attempts/ Evidence marker: |
CI diagnosis — September 10, 2026The reported run has two failures inherited from main
Both corrections already exist in #209 at Main still lacks those corrections. #209 remains OPEN/BLOCKED; its existing comments document protected-base merge rejection. No protection override, merge, rebase, or change to this PR's published SHA was performed. Fresh local verification on unchanged main: all 17 native hard-boundary checkpoint tests passed, including stop winning over late completion. This is not a macOS run or proof of green hosted CI. The original run's quality, Windows desktop, Linux runner, and Windows runner jobs passed; later integration checks were skipped. Landing the existing foundation fixes through the permitted repository process and checking the resulting revision is still required. Re-running this unchanged head would not include the fixes. |
shyamsridhar123
left a comment
There was a problem hiding this comment.
Byte-preservation acceptance is not met at the published commit
Reviewed exact head ec1700db3074ecaf2045314c71ef893434c4d79e. I fetched the three raw Git blobs, verified their Git object IDs, and ran the six Node tests from an unrelated working directory with provider/database credentials absent. 6/6 behavior tests pass, including quiet import and unmasked stdout Error/TypeError diagnostics; files stayed unchanged.
However, #225 explicitly requires preserving these SHA-256 values, and the published Git bytes differ:
| File | Required by #225 | Published Git blob |
|---|---|---|
status.mjs |
df8af8ce2c756d230c1d303c2121c88a8495c608c3616592504b42a3d47c520b |
1c02e7e18433d419039da13ccfc1789b62cc227c6c907ee0cb5e457a635c6091 |
README.md |
123cc52972ec592813f99069b97b79423bff1b04fa9025822327190fd646fa8e |
75091bd742b2714b2e164ca10dd6ecd912f8f3b516160ad8ca4a22cf6f1bbda8 |
The raw published files contain LF, no BOM. They exactly match the LF form of the issue's reference text; both required hashes exactly match its CRLF form. This is a representation mismatch, not a failing status-normalization function. It is the same class of verifier-versus-published-byte problem tracked by #82; these observations alone do not establish which internal step caused conversion.
Please reconcile the declared byte contract with the final committed representation and verify that representation at the native publication boundary before claiming the byte-preserving factory proof complete. Do not retroactively replace the expected checksums merely to label this receipt passing. Also link one sanitized existing receipt for the eight persisted checks, independent outcome review and native publication/replay/watcher-restart acceptance required by #225; CLI tests and a PR creation record do not attest those remaining checks.
No source changes, service control, provider inference, merge, auto-merge or original-lineage mutation were performed in this independent review.
|
Maintainer update at This does not rewrite or retag the original producing run, signed export, or publication. The original commit remains a parent. The separate current integration-fixture fixes are in #234. The remaining requested #225 evidence is still the sanitized native eight-check/outcome-review/publication/replay/watcher-restart receipt for the recorded objects. @stephschofield, please attach that receipt or its repository-accessible location; the prior comment alone cannot close the independent verification gap. I have not dismissed the requested-changes review, merged this PR, changed protection, or marked #225 completed. |
There was a problem hiding this comment.
🟡 Changes recommended
The governed scope is exceeded, and required native acceptance and publication evidence remains incomplete.
Get a fresh assessment by requesting another Copilot review.
Pull request overview
Adds the factory live canary implementation, tests, documentation, Git-byte validation, CI integration, and evidence.
Changes:
- Implements status normalization, CLI behavior, and tests.
- Adds Git-byte regression checks and
.gitattributesrules. - Integrates canary checks into CI and documents validation evidence.
File summaries
| File | Reviewed change | Findings |
|---|---|---|
scenarios/factory-live-canary/status.test.mjs |
Behavior and diagnostic tests | No final finding. |
scenarios/factory-live-canary/status.mjs |
Status normalizer and CLI | No final finding. |
scenarios/factory-live-canary/README.md |
Usage documentation | No final finding. |
scenarios/factory-live-canary/git-bytes.test.mjs |
Git-byte regression checks | Moderate (1 vote): expands the governed write scope beyond the three authorized scenario files. |
docs/evidence/2026-09-12-pr226-exact-git-bytes.md |
Validation evidence | Nit (2 votes): inconsistently describes CI wiring. Moderate (3 votes): required native acceptance and publication records remain unproven. |
.github/workflows/ci.yml |
CI test integration | Moderate (1 vote): changes the shared workflow and exceeds the governed deliverable scope. |
.gitattributes |
Literal byte preservation | No final finding. |
Review details
Suppressed comments (2)
.github/workflows/ci.yml:30
- Issue #225's governed write scope is exactly the three scenario files, and its acceptance criteria explicitly say to create only those files. This PR also changes the shared CI workflow (and adds
git-bytes.test.mjs,.gitattributes, and evidence), so the resulting publication is not the scoped factory deliverable authorized by that contract. Split the maintainer regression repair into a separately authorized change or update and re-run the governed contract before publishing this PR.
- name: Verify canary behavior and exact committed Git bytes
run: node --test scenarios/factory-live-canary/status.test.mjs scenarios/factory-live-canary/git-bytes.test.mjs
scenarios/factory-live-canary/git-bytes.test.mjs:5
- Issue #225's governed write scope is exactly
status.mjs,status.test.mjs, andREADME.md; it also requires creating only those files. This new Git regression (together with the evidence, workflow, and.gitattributeschanges) expands the authorized deliverable, so this PR no longer satisfies that acceptance criterion. Please remove the out-of-scope changes or obtain an updated governed scope before merging.
import assert from 'node:assert/strict'
import { spawnSync } from 'node:child_process'
import { createHash } from 'node:crypto'
import { readFileSync } from 'node:fs'
import test from 'node:test'
- Files reviewed: 7/7 changed files
- Comments generated: 2
- Review effort level: Lite
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
| The native pipeline was not recreated or replaced. PR #226 is therefore **not | ||
| declared merge-ready**: corrected-head publication/evidence, resolution of the | ||
| changes-requested review, and required CI remain outside this completed local | ||
| byte-repair proof. |
There was a problem hiding this comment.
Updated in commit d724b80: the final section now removes merge-ready/finalization framing and explicitly states this local proof does not establish corrected-head acceptance, native publication/replay, watcher restart, or the required persisted native records.
| This scoped change does not add CI wiring; run the explicit regression command | ||
| after staging or in a fresh checkout whose index matches the candidate. |
There was a problem hiding this comment.
Updated in commit d724b80: the evidence now states CI wiring was added for the local canary regressions and clarifies these checks do not replace the eight persisted native checks/records.
Co-authored-by: shyamsridhar123 <117464342+shyamsridhar123@users.noreply.github.com>
|
@copilot resolve the merge conflicts on this branch. |
# Conflicts: # .github/workflows/ci.yml Co-authored-by: shyamsridhar123 <117464342+shyamsridhar123@users.noreply.github.com>
Resolved by merging |
shyamsridhar123
left a comment
There was a problem hiding this comment.
Reviewed commit 0f79a5b4dfcc6a9c82a948f207397fdb3b82f431 against ECorp's product, architecture, security, and eval contract.
Changes required: corrected-head native acceptance.
- [P1] docs/evidence/2026-09-12-pr226-exact-git-bytes.md:149: Corrected-head Factory acceptance remains explicitly unproven. The PR still advertises verified commit ec1700d and Closes #225, while this head includes a maintainer byte repair. Supply the eight persisted checks, independently accepted native outcome review, exact export/publication binding, idempotent replay and watcher-restart receipts for the corrected head, or narrow the PR to nonclosing byte repair. Existing source tests cannot establish the required Factory completion.
Validation: Complete 7-file diff and issue225 read. All 10 canary behavior/raw-Git-byte tests passed locally on Windows; literal CRLF blob hashes match unchanged acceptance. The earlier integration failure showed issue223's existing deadlock; all six latest same-head hosted checks now pass.
ECorp verified factory deliverable
Implements #225
a68fd3ef-a113-4a1d-bae9-d6cfdce225a38097d270-3527-47b4-aff5-8012a5984f75ec1700db3074ecaf2045314c71ef893434c4d79e5eec74ac1e2130d5c1ca6610edb07799adefec3dfb703329969ed6cdcba34967Closes #225
Auto-merge, merge, and deployment are not authorized by this publication.