Repository navigation
fix(policy): verify equivalent signed merge origins - #5
Conversation
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
Independent technical review returned PASS for policy5 at 5cd61c4 against b328ace, tree 291b547fc7700e7d1e05ed6857bcda29ab53ebb3. Stable patch 38579fbc924f1c3f639c2313f0879de3cf3871bd and evaluator SHA-256 bdd671842d0f0c1d252a759a7aa8230b2b94d6d97e44bebc760b9b13e7c967f0 were independently verified. Two separate reviewers each passed all 264 policy tests. No blocking technical findings remain.
The added path requires both valid signed commit identities, the exact reviewed tree and identical ordered distinct base/head parents. Actual source/signer attestation, workflow bytes, all 14 selectors and every human/deployment guard remain enforced. Real read-only verification accepted the original signed native origin; the actual candidate deployment check still refuses policy-not-deployed.
This COMMENT records Codex technical evidence only. Protected deployment, a new exact-head human grant and core merging remain separate owner decisions. Signing stays in CI/CD.
PR #782 merged with missing historical Requirements provenance. This separately requested follow-up enforces an explicit, revision-bound human admission at producer, fresh execution and final verdict. Raw native failure remains unchanged, and independent Code Review and all CI stay required. - Call the immutable live policy independently at each boundary. Audit sidecars grant no later authority. An isolated CI job attests the original native artifact. - Preserve the eleven dependency cases and three CI controls, with all fourteen selectors and protected mapping digests unchanged. - Restore all three current-run evidence transfers by exact artifact ID. The pinned download action discarded a valid requested rerun ID through name deduplication. One shared workflow program checks repository/run/head/name, SHA-256, bounded HTTPS transfer and inert ZIP extraction before exclusive publication. Existing context survives. Policy [nold-ai/.github#4](nold-ai/.github#4) was owner-approved and deployed. Genuine fresh origin verification then exposed a literal synthetic-merge ID refusal despite identical signed tree/ancestry. Reviewed correction [nold-ai/.github#5](nold-ai/.github#5) has green CI and 264 passing policy tests. Core pins its immutable revision, but the candidate remains inactive pending explicit owner approval for protected deployment. Its new path requires both valid signed identities, the exact reviewed full tree and identical ordered base/head parents, while retaining actual source attestation. Fresh exact authority and separate missing-RED admission follow deployed-policy verification. Previous grants cannot transfer. Validation includes 179 policy tests, 114 focused core tests, independent security review with eight additional hostile probe groups, genuine live exact-ID transfers through the final program, and normal commit hooks. The required local smart-test gate passed its 111 selected tests. Full lint, YAML, pinned workflow lint, strict OpenSpec and unchanged mapping/plan checks pass. New test code has zero review findings; seven precisely scoped diagnostics in unchanged existing functions have independently verified baseline exceptions documented in [TDD evidence](https://github.com/nold-ai/specfact-cli/blob/c73a9d6d3809ac763edb4eeacb7ad4e2d082e38d/openspec/changes/isolate-semgrep-security-runtime/TDD_EVIDENCE.md). Final-head CI is running. Scope is CI, tests and issue #780 specifications. Official packages, certifi 2026.10.19, core 0.55.11 and the reviewed MCP exception through 4 November 2026 remain as merged. Signing and attestation generation are CI/CD-only. Core merging and any further protected deployment require owner approval. A future dependency-only release starts from published v0.55.4 and excludes unrelated dev runtime changes. This PR publishes no release.
PR specfact-cli#784 produced an authentic signed native origin, but deployed admission refuses it at
origin-source. Its attested workflow merge21cca82band live synthetic merge6636108bhave the same reviewed tree and ordered base/head parents, with valid signatures. Their signed payloads encode time zones differently, so their IDs differ.This correction accepts that equivalent merge case only when both authenticated full commit IDs match, both signatures verify, both trees equal the exact reviewed head tree, and both ordered parent lists are exactly the same distinct base/head pair. Workflow bytes and official attestation verification still bind the actual original signer/source revision.
All existing subject, fourteen-selector mapping, native failure, immutable artifact, human permission/expiry and deployed-policy checks remain enforced. The original exact-head and exact-current-merge paths retain their behavior. Candidate code cannot prepare or grant admission until explicitly deployed. Earlier human approvals cannot transfer to a new head or policy revision.
Validation includes a regression that first failed with
Refused: origin-source, separate reversed/duplicate-parent tests that failed before tightening, 264 passing policy tests, formatting/lint checks and genuine read-only verification of the existing signed origin/native ZIP. Independent security review passed the exact evaluator bytes, and the candidate was committed normally without local signing. Evidence remains tied to CI run 39595683488.This is a proposed protected deployment. Owner approval is required before merging it to main. It does not approve a core merge, waive CI, mutate evidence or authorize local signing. Rollback reverts this correction and restores the existing refusal.