Skip to content

Finalize the governed factory proof and publish the verified canary - #226

Open
stephschofield wants to merge 4 commits into
mainfrom
ecorp/factory-live-225
Open

stephschofield wants to merge 4 commits into
mainfrom
ecorp/factory-live-225

Conversation

@stephschofield

Copy link
Copy Markdown
Collaborator

ECorp verified factory deliverable

Implements #225

  • Factory work item: a68fd3ef-a113-4a1d-bae9-d6cfdce225a3
  • Mission: 8097d270-3527-47b4-aff5-8012a5984f75
  • Verified commit: ec1700db3074ecaf2045314c71ef893434c4d79e
  • Deliverable digest: 5eec74ac1e2130d5c1ca6610edb07799adefec3dfb703329969ed6cdcba34967

Closes #225

Auto-merge, merge, and deployment are not authorized by this publication.

Verification-SHA256: 6dc52e77c0453d396e3d6c7eac1cf6d02002ff46bfcd6a06cbe7519e9d8a5600
@stephschofield

Copy link
Copy Markdown
Collaborator Author

Live native factory acceptance — September 10, 2026

The local issue-scoped pipeline completed without another chat-permission checkpoint:

  • Real GitHub Project intake → native work item/mission → real Copilot SDK/CLI
    provider in an isolated worktree → 8/8 persisted checks → independent
    automated review → native publication of this PR.
  • Exact reviewed and published head: ec1700db3074ecaf2045314c71ef893434c4d79e.
  • Work item: a68fd3ef-a113-4a1d-bae9-d6cfdce225a3.
  • Mission: 8097d270-3527-47b4-aff5-8012a5984f75.
  • Run: 23bc53f3-0bcb-4a6b-b0df-453b4f379a10.
  • Source export: 915b77c5-edb2-4316-ad8f-968e5120d0ad.
  • Publication: 4437be95-8fc8-4a26-a915-e78ac1df8851, one attempt.
  • Native duplicate publication returned recovered with the same record/version.
  • A real watcher restart preserved all mission/run/publication IDs. Intake then
    correctly found this Published/In Review issue ineligible for another run.
  • The browser enforced requester exclusion, recorded the independent acceptance,
    and subsequently displayed Published with this exact PR link.
  • GitHub Project Build the deterministic child-process agent adapter #3 shows Finalize the governed factory proof and publish the verified canary #225 In Review.
  • The short-lived publisher credential was revoked and its plaintext file deleted.
  • Repository base gates passed: migrations, format, Clippy, 384 serial Rust tests
    (142 opt-in tests ignored), web build and web lint.

The source checkout, #220's hard-stopped lineage and #222's exhausted attempts/
review history were preserved. This is a local development-principal functional
proof with real GitHub/provider operations and independent automated review—not
production OIDC, unrestricted shared-backlog, or umbrella #63 completion evidence.
No merge, auto-merge or deployment was performed.

Evidence marker: factory-live-01a08bb9-e2e-complete.

@stephschofield

Copy link
Copy Markdown
Collaborator Author

CI diagnosis — September 10, 2026

The reported run has two failures inherited from main 971445e, not from this PR's three canary files:

  • Integration: tools/e2e_codex.mjs:270 still expects failed after a hard budget stop. The native behavior deliberately retains source and reports cancelled, without accepted completion or late artifact upload.
  • macOS runner: the invalid-UTF-8 fixture fails at file creation (workspace.rs:1865, EILSEQ 92), before fingerprinting runs.

Both corrections already exist in #209 at 578002a4c91c9e63b169af1ec4d58aacc018def8. The Codex correction strengthens retained-source and event-ordering checks; the macOS correction asserts its exact creation boundary while retaining Linux fingerprint rejection coverage. No duplicate patch is needed.

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 shyamsridhar123 left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

@shyamsridhar123

Copy link
Copy Markdown
Collaborator

Maintainer update at dfc3c54d3cf1ff09e53ded3e57d6edd4e915a276: the byte-preservation defect is fixed and pushed. I fetched the actual new GitHub Git blobs (not Windows working copies): both original #225 SHA-256 requirements now match exactly. Ten canary behavior/Git-byte checks pass, and the quality workflow runs both test files. Current main is integrated; 194 frontend checks/build/lint pass. Native source/manifests/migrations are byte-identical to the fresh 452-pass Rust baseline (200 opt-in cases ignored).

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.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 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 .gitattributes rules.
  • 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, and README.md; it also requires creating only those files. This new Git regression (together with the evidence, workflow, and .gitattributes changes) 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.

Comment on lines +163 to +166
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.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Comment on lines +128 to +129
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.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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>
@shyamsridhar123

Copy link
Copy Markdown
Collaborator

@copilot resolve the merge conflicts on this branch.

# Conflicts:
#	.github/workflows/ci.yml

Co-authored-by: shyamsridhar123 <117464342+shyamsridhar123@users.noreply.github.com>

Copilot AI commented Sep 13, 2026

Copy link
Copy Markdown

@copilot resolve the merge conflicts on this branch.

Resolved by merging origin/main and fixing the workflow conflict in commit 0f79a5b.

@shyamsridhar123 shyamsridhar123 left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

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.

Finalize the governed factory proof and publish the verified canary

4 participants