Repository navigation
evidence(OMN-15488/OMN-15239): retire dead OCC#5763 binding stamps via append-only supersession - #5771
Conversation
…a append-only supersession (OMN-15599 class) Two dod_evidence entries on each contract bind OCC PR #5763, which CLOSED UNMERGED at 2026-07-31T21:42:59Z with its head branch deleted. node_dod_verify derives a live-PR binding from each and appends a ::pr-live-state assertion requiring MERGED + green required checks, so both fail permanently and can never clear: OMN-15488 status=failed (25 checks / 23 verified / 2 failed), OMN-15239 status=failed (18 / 16 / 2). Append-only supersession, not an edit: OCC Append-Only Gate rejects rewriting a merged entry and merged receipts pin the per-entry hash. Four new items carry evidence_artifact: supersedes_dod_evidence:<dead-id>. Zero per-entry hash drift measured across all 32 pre-existing entries, before and after yamlfmt reflow. Replacement asserts the corrected binding fact: the work #5763 was carrying landed as OCC #5767, squash-merged at c669b18. Each check pins BOTH that exact merge SHA AND state MERGED. GREEN under bash -euo pipefail and plain bash -c; RED-proven three ways (all-zero SHA rc=1; state pinned CLOSED rc=1; identical shape aimed at the dead #5763 rc=1). Attribution correction recorded in the artifact itself: occ-self-bind-pr-5763 was hand-authored by the wave-3 lane in da47c2e (2026-07-31T21:38:11Z), NOT emitted by autobind. Only dod-OmniNode-ai-onex_change_control-pr-5763 is automation-authored (companion #5764, merged 21:28:48Z). The generic defect -- PR-bound stamps have no retirement path when their PR closes unmerged -- is filed as OMN-15599 and is not closed here. Evidence-Ticket: OMN-15488 Evidence-Ticket: OMN-15239
📝 WalkthroughWalkthroughThe contracts add append-only supersession records for obsolete OCC ChangesOCC evidence supersession
Estimated code review effort: 3 (Moderate) | ~20 minutes Possibly related PRs
Suggested labels: 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
…ement items Net-new files only. Each contract_entry_sha256 is computed with omnibase_core.validation.validator_receipt_gate.compute_contract_entry_sha256 against the committed contract, so it binds the ENTRY, not the whole file, and leaves all 32 pre-existing entry hashes untouched. Each receipt records the real run: the check_value read back out of the contract and executed verbatim (exit 0 under bash -euo pipefail and plain bash -c), plus three RED legs -- all-zero merge SHA rc=1, state pinned CLOSED rc=1, and the identical shape aimed at the dead carrier #5763 rc=1. pr_number: 5771 binds these receipts to THIS PR, which is what occ-preflight eligibility requires (validator_occ_merge_eligibility._receipt_bound_to_pr accepts pr_number == this PR). No occ-self-bind contract ENTRY is authored for #5771: minting a contract stamp for a PR that has not merged is the exact pattern that produced the dead #5763 stamps this PR is retiring, and the receipt binding satisfies the gate without it. Evidence-Ticket: OMN-15488 Evidence-Ticket: OMN-15239
…orrection No content change. occ-preflight and verify both failed with reason=missing_contract, missing_contracts=["OMN-15599"]: _extract_ticket_ids finds no closing keyword in the body, falls back to the PR TITLE, and the title carried "(OMN-15599 class)" -- so eligibility demanded an OCC contract for a follow-up ticket that has no work landed and correctly has none. The title now names only the two tickets this PR carries evidence for. Both jobs ran on the old title (PR_EVENT_TITLE in the failing log confirms it) and do not re-run on an `edited` event, so this empty commit is the documented re-trigger. OMN-15599 remains referenced in the PR body prose, which is only scanned for Closes/Fixes/Resolves/Implements keywords -- none present, by design. Evidence-Ticket: OMN-15488 Evidence-Ticket: OMN-15239
Live
|
| ticket | report.status | total | verified | failed | superseded |
|---|---|---|---|---|---|
| OMN-15488 | FAIL | 25 | 23 | 2 | 3 |
| OMN-15239 | FAIL | 18 | 16 | 2 | 1 |
Both failures on both tickets:
dod-OmniNode-ai-onex_change_control-pr-5763::pr-live-state
occ-self-bind-pr-5763::pr-live-state
OmniNode-ai/onex_change_control#5763: PR not merged (state=CLOSED);
required checks not green (2: occ-preflight / eligibility, verify / verify)
AFTER (OCC_GOVERNANCE_REF = this branch at e8dea206876d1315b980cd25adc28011b28311f1):
| ticket | report.status | total | verified | failed | superseded |
|---|---|---|---|---|---|
| OMN-15488 | PASS | 25 | 25 | 0 | 5 |
| OMN-15239 | PASS | 18 | 18 | 0 | 3 |
The two dead stamps on each ticket now resolve to SUPERSEDED … not re-executed — preserved for audit, and each new item verifies in its own right:
verified | dod-omn15488-retire-autobind-stamp-occ5763 OK (933ms)
verified | dod-omn15488-retire-autobind-stamp-occ5763::pr-live-state #5767: MERGED; all 4 status check(s) green
verified | dod-omn15488-retire-selfbind-stamp-occ5763 OK (920ms)
verified | dod-omn15488-retire-selfbind-stamp-occ5763::pr-live-state #5767: MERGED; all 4 status check(s) green
verified | dod-omn15239-retire-autobind-stamp-occ5763 OK (926ms)
verified | dod-omn15239-retire-autobind-stamp-occ5763::pr-live-state #5767: MERGED; all 4 status check(s) green
verified | dod-omn15239-retire-selfbind-stamp-occ5763 OK (926ms)
verified | dod-omn15239-retire-selfbind-stamp-occ5763::pr-live-state #5767: MERGED; all 4 status check(s) green
The retirements take effect only because each superseder verifies (_supersession_is_in_effect, OMN-15390). A superseder with no passing check of its own would have left SUPERSESSION_NOT_IN_EFFECT and the original red — asserted, not assumed.
CI
43 pass / 0 fail / 17 skipping / 1 pending (tests+coverage shadow) on e8dea20687. Green includes OCC Append-Only Gate, Receipt Honesty Gate, Contract Substance Floor, occ-preflight / eligibility, verify / verify.
One real CI failure, root-caused rather than retried
occ-preflight and verify first failed with reason=missing_contract, missing_contracts=["OMN-15599"]. Not a flake: _extract_ticket_ids finds no Closes/Fixes/Resolves/Implements keyword in the body, falls back to the PR title, and the title carried (OMN-15599 class) — so eligibility demanded an OCC contract for a follow-up ticket that has no landed work and correctly has none. Fixed by removing that token from the title; both jobs had run against the old title (PR_EVENT_TITLE in the failing log confirms it) and do not re-run on an edited event, hence the empty re-trigger commit. OMN-15599 stays in the body prose, which is only scanned for closing keywords.
No self-bind contract entry for this PR — deliberate
occ-preflight eligibility is satisfied here by the receipts (pr_number: 5771), which validator_occ_merge_eligibility._receipt_bound_to_pr accepts directly. No occ-self-bind-pr-5771 contract entry was authored, because minting a permanent contract stamp for a PR that has not merged is precisely the pattern that produced the dead #5763 stamps this PR exists to retire. Confirmed working: the eligibility payload shows missing_or_nonpass_receipts: [] and no pr_ticket_mismatch — the only blocker was the title token above.
|
Self-correction on one stated figure, and terminal state. The PR body says "156 insertions / 0 deletions, 2 files." That was accurate for the contracts commit at the time it was written, before the four receipts were added. The merged diff is 252 insertions / 0 deletions across 6 files ( Terminal state, verified live:
Zero non-verified, non-superseded checks on either ticket. Both are now unblocked for |
What
Retires the four
dod_evidenceentries oncontracts/OMN-15488.yamlandcontracts/OMN-15239.yamlthat bind OCC PR #5763, which closed unmerged at2026-07-31T21:42:59Zwith its head branch deleted.node_dod_verifyderives a live-PR binding from each stamp (EvidenceCollector._resolve_pr_bindingstier 2) and appends a synthetic::pr-live-stateassertion that is VERIFIED only when the bound PR isMERGEDwith green required checks (_verify_live_pr, fail-closed). Against a PR that will never merge, those four assertions are permanently FAILED, and the entries are immutable — sodod_verifycannot PASS on either ticket, blocking the only sanctioned Done-flip path.Reproduced against
onex_change_control@origin/devwith default contract resolution, before this PR:Both failures on both tickets:
How — append-only supersession, never an edit
OCC Append-Only Gate(validator_occ_append_only, OMN-13962) rejects rewriting a mergeddod_evidenceentry, and merged receipts pin the per-entry hash, so in-place removal is impossible and would staleness-invalidate those receipts. Four new items are appended, each carryingevidence_artifact: supersedes_dod_evidence:<dead-id>:dod-omn15488-retire-autobind-stamp-occ5763dod-OmniNode-ai-onex_change_control-pr-5763dod-omn15488-retire-selfbind-stamp-occ5763occ-self-bind-pr-5763dod-omn15239-retire-autobind-stamp-occ5763dod-OmniNode-ai-onex_change_control-pr-5763dod-omn15239-retire-selfbind-stamp-occ5763occ-self-bind-pr-5763The retired entries stay verbatim for audit and resolve to
status=supersededat runtime.Not laundering.
_supersession_is_in_effect(OMN-15390) requires the superseder to VERIFY in its own right with nothing FAILED in its group; each new item carries falsifiable content and is proven RED three ways below. This removes a FALSE red — both tickets are bound to a merged OCC PR — and manufactures no green, because the retired stamps' own claim is re-asserted here against the carrier that actually merged.Falsifiable replacement. Each new check pins BOTH the exact squash merge SHA AND
state == MERGEDof OCC #5767, the PR that actually carried the guard-compatible binding repair todev:--repoand the PR number sit in the SAME shell clause so the collector binds(OmniNode-ai/onex_change_control, 5767)at tier 2 and the appended live-state check probes the merged carrier rather than falling through to the receipt-carrier tier (OMN-15465 class). Executor shape mirrors the merged*-guardcompatprecedent:testis the first shlex token and no$()contains an embedded quote character, so_invalid_check_value_reason(shlex.split(posix=True)) cannot mis-branch — the OMN-15535INVALID_CHECK_VALUE_NOT_A_COMMANDclass.Attribution correction (recorded in the artifact, not only in prose)
A prior lane reported both #5763 stamps as automation-authored. That is wrong for one of them, and the correction is written into
dod-omn154{88,239}-retire-selfbind-stamp-occ5763's description because the governance artifact is the durable surface:dod-OmniNode-ai-onex_change_control-pr-5763— genuinely machine-authored, by autobind companion evidence(OMN-15239, OMN-15488): OCC companion for OmniNode-ai/onex_change_control#5763 #5764 (merged21:28:48Z), 14 minutes before docs(OMN-15488): guard-compatible binding checks for OMN-15488/OMN-15239 (executor-compat correction) #5763 closed.occ-self-bind-pr-5763— hand-authored by the wave-3 repair lane inda47c2e43c54118a452c59ba08c0bfbd6ee7b72e(21:38:11Z). docs(OMN-15488): guard-compatible binding checks for OMN-15488/OMN-15239 (executor-compat correction) #5763 closed 4m48s later; the same lane's next commitd6200e79b(21:50:06Z) recorded that closure verbatim while retaining the dead stamp, which reacheddevinside docs(OMN-15488/OMN-15239): guard-compatible binding checks #5767 at21:55:19Z. It had never merged when docs(OMN-15488): guard-compatible binding checks for OMN-15488/OMN-15239 (executor-compat correction) #5763 closed and was still freely removable — Codex's in-flight alternative344b88ec4(21:52:29Z) did exactly that. The failure was avoidable, not structural.Evidence
compute_contract_entry_sha256recomputed for all 32 pre-existing entries → zero drift, both before and after theyamlfmtreflow._invalid_check_value_reason,_hardcoded_pr_bindings_in_valueandEvidenceCollector._resolve_supersessionsfromomnimarketand ran them over both amended contracts. All four new check_values:guard=None,bindings=[(OmniNode-ai/onex_change_control, 5767)]. Supersession resolution: 5 targets on OMN-15488, 3 on OMN-15239, 0 malformed. The only invalid check_values remaining are the 4 pre-existing superseded originals, which are never executed.bash -euo pipefailand under plainbash -c.rc=1; state pinnedCLOSED→rc=1; identical shape aimed at the dead carrier docs(OMN-15488): guard-compatible binding checks for OMN-15488/OMN-15239 (executor-compat correction) #5763 →rc=1. The check discriminates the exact failure it exists to prevent.node_dod_verifyagainst the amended contracts — see the post-push comment on this PR for the run.pre-commithook chain run on the.200gate host (rule 11a), clean on the second pass afteryamlfmtnormalization. Pushed from.200, not this Mac.Scope
Contracts + their receipts only. No source change, no status flip, no merge or
--autoarmed by the authoring lane.Follow-up
The generic defect — a PR-bound
dod_evidencestamp is authored before its PR is known to merge, and has no retirement path if that PR later closes unmerged (both producers;occ-preflighteligibility is per-PR, so it structurally requires minting a claim about an unresolved future) — is filed as OMN-15599 with falsifiable acceptance criteria, including a backfill census. Second occurrence of the class; the first was OMN-13906 (2026-07-15,#1845on OMN-13899). This PR is a per-instance repair and does not close it.Evidence-Ticket: OMN-15488
Evidence-Ticket: OMN-15239
Summary by CodeRabbit
#5763evidence.#5767as the verified replacement with its expected merged commit.