Skip to content

evidence(OMN-18048): bind OMN-18048 to omnibase_infra#3356 as a second consumer - #8783

Merged
jonahgabriel merged 4 commits into
devfrom
lakshman/omn-18048-occ-bind-pr-3356
Sep 9, 2026
Merged

jonahgabriel merged 4 commits into
devfrom
lakshman/omn-18048-occ-bind-pr-3356

Conversation

@Patel230

@Patel230 Patel230 commented Sep 9, 2026

Copy link
Copy Markdown
Contributor

Unblocks omnibase_infra#3356, which fails occ-preflight with:

reason: pr_ticket_mismatch
detail: no PASS receipt for one or more tickets binds to PR #3356
        or one of its commit SHAs: OMN-18048

Every receipt OMN-18048 has on dev carries pr_number: 3351, so nothing binds to the follow-up PR.

Corrected premise

OCC#8774 is not the companion that unblocks #3356. Its supersession receipts also carry pr_number: 3351, so merging it would not clear this — the two PRs are sequential in ticket only, not in gate dependency. I had recorded the opposite and parked #3356 behind #8774; that was wrong, and this PR is the consequence of correcting it.

What this adds

Two second-consumer supersessions — the OMN-14623 merged-path pattern — neither editing a merged base receipt:

item replacement reads result
dod-omn-18048-qualifier-and-emphasis the same handler file the base entry reads, at #3356's head, for _TRAILING_EMPHASIS_RE 2
dod-omn-18048-red-first-module-exists the same PR-files surface the base entry reads, for #3356 rather than #3351 1

Both anchor to their superseded item's own declared artifact family (S2), and their check_values differ from one another (S1).

The first check is RED-derivable, and I proved it rather than asserting it

_TRAILING_EMPHASIS_RE is the marker introduced by #3356's MAJOR hostile-review fix:

at #3356 head 65a53a15e : 2   exit 0
at #3351 head 546d66164 : 0   exit 1

So it discriminates this PR from its predecessor rather than passing for both. That is the difference between evidence and a surrogate, and it is the property pr_state_surrogate findings exist to enforce.

Deliberately not included

  • No .supersede.3356.yaml for dod-omn-18048-behavior-proof. That item is contested on OCC#8774 with an open S2 violation; adding a second supersession against it while that is unresolved would tangle two independent problems.
  • No contract edit. The merged entries are untouched — git diff against the merge base is 2 files, 89 insertions, 0 deletions.
  • Receipt hardening, yamlfmt contamination, dod-authoring and substance-floor all pass.

Ticket: OMN-18048

…d consumer

#3356 fails occ-preflight with reason=pr_ticket_mismatch: "no PASS receipt
binds to PR #3356 or one of its commit SHAs". Every receipt OMN-18048 has on
dev carries pr_number 3351, so nothing binds to the follow-up PR.

Corrected premise, from Jonah's landing review: OCC#8774 is NOT the companion
that unblocks #3356. Its supersession receipts also carry pr_number 3351, so
merging it would not clear this. The two PRs are sequential in ticket only, not
in gate dependency. I had recorded the opposite and was wrong.

Two second-consumer supersessions, the OMN-14623 merged-path pattern, neither
editing a merged base receipt:

- dod-omn-18048-qualifier-and-emphasis -> reads the SAME handler file the base
  entry reads, at #3356's head, for _TRAILING_EMPHASIS_RE, the marker the MAJOR
  hostile-review fix introduces. Returns 2.
- dod-omn-18048-red-first-module-exists -> reads the same PR-files surface the
  base entry reads, for #3356 rather than #3351. Returns 1.

Both anchor to their superseded item's own declared artifact family, which is
what S2 requires, and their check_values differ from each other, which is what
S1 requires.

The first check is RED-derivable and I proved it rather than asserting it:
_TRAILING_EMPHASIS_RE returns 2 at #3356's head and 0 at #3351's head (exit 1).
It discriminates this PR from its predecessor rather than passing for both.
Eligibility fails #8783 with missing_occ_self_bind: OCC evidence for
OMN-18048 verifies, but no receipt binds it to this OCC PR itself (I3 —
an OCC PR validates its own in-tree contract and receipts).

Appended, not edited. The four existing entries are byte-identical to
origin/dev, verified entry-by-entry before committing. That matters
because all four merged receipts carry contract_entry_sha256, and
_contract_hash_violation validates the per-entry hash and returns
without ever reaching the whole-file comparison
(check_receipt_hardening.py:1486). Their entries are untouched, so they
stay bound and no merged receipt needs rewriting.

The eligibility message asks for contract_sha256 to be recomputed on the
existing receipts. That is not required here and would mean editing four
receipts already merged on dev — an append-only violation of exactly the
shape that blocked OCC#8774 this morning.
Discharges missing_occ_self_bind on #8783. The probe was run live, not
composed: gh pr view 8783 returned {"headRefName":"lakshman/omn-18048-occ-bind-pr-3356","number":8783,"state":"OPEN"}
at exit 0, and that is the stdout recorded in the receipt.

commit_sha 3036449 is the pushed contract-append commit, confirmed to
resolve via the GitHub API before the receipt was written
(COMMIT_SHA_EXISTS).

Gate proven load-bearing rather than assumed: run bare, the hardening
check exits 0 even against a deliberately corrupted hash, because it
validates nothing without --paths-file0. Scoped the way CI invokes it
(ci.yml:273), it exits 1 on the corrupted entry hash and 0 on the real
one. The passing run is only meaningful because the failing one was
watched first.

The four receipts already merged on dev are untouched, and the control
confirms they stay bound: occ-self-bind-pr-8762 still hashes to
494f0c53, exactly what its merged receipt carries.
OCC#8774 merged at 12:52:50Z and appended occ-self-bind-pr-8774 plus a
behaviour-proof-budget entry to the same contract, so this branch
conflicted.

Merged rather than rebased on purpose. A rebase rewrites history and the
push would then need a force, which the branch-safety guard refuses —
the same wall that stranded the #3351 follow-ups this morning. A merge
fast-forwards cleanly and keeps 3036449, the commit this branch's
receipt binds to, a real ancestor rather than an orphan.

Conflict resolved by taking dev's file verbatim and re-appending only the
8783 entry, so every entry dev owns stays byte-identical. Verified
entry-by-entry after resolving: 6 UNCHANGED, 1 added.

Receipt updated: contract_sha256 -> a8e3cc99 (the post-merge whole-file
hash). contract_entry_sha256 is unchanged at 73e4a07a because the entry's
own content did not move — which is the whole point of OMN-13888, and is
visible here on someone else's receipt: occ-self-bind-pr-8774 still
carries the pre-merge whole-file hash 182b3c68 and validates anyway,
because its per-entry hash matches.

Gate run scoped the way CI invokes it, over both my receipt and 8774's
merged one: clean. Control: corrupting the entry hash makes it name the
exact mismatch.
@jonahgabriel
jonahgabriel merged commit 4b435da into dev Sep 9, 2026
73 checks passed
@jonahgabriel
jonahgabriel deleted the lakshman/omn-18048-occ-bind-pr-3356 branch September 9, 2026 13:42
@Patel230

Patel230 commented Sep 9, 2026

Copy link
Copy Markdown
Contributor Author

Thank you for the merge.

Confirming the chain closed, by content rather than by the merge notice:

  • drift/dod_receipts/OMN-18048/occ-self-bind-pr-8783/command.yaml — on origin/dev
  • drift/dod_receipts/OMN-18048/dod-omn-18048-qualifier-and-emphasis/command.supersede.3356.yaml — on origin/dev
  • control: occ-self-bind-pr-8774/command.yaml still present, so the query distinguishes rather than blanket-passing

omnibase_infra#3356 has picked it up and its CI Summary is re-running now. pr_ticket_mismatch was the single cause of all five of its reds, so this should clear them together — I will report what actually happens rather than predict it.

That matters beyond the two PRs: dev has been carrying both hostile-review defects since #3351 merged at 08:20:45Z — _TRAILING_EMPHASIS_RE and _AC_HEADING_PHRASES are still absent from origin/dev. #3356 is what removes them.

Two things this PR left behind that are worth having on the record.

The remediation text that sent #8774 into an append-only violation is filed as OMN-18082. It tells you to recompute contract_sha256 on existing receipts; against merged receipts that is the violation. It is unnecessary too — _contract_hash_violation (scripts/validation/check_receipt_hardening.py:1486) validates contract_entry_sha256 and returns before the whole-file comparison is ever reached.

Your merge proved that, on a receipt I did not author. After it, the contract's whole-file hash is a8e3cc99, while occ-self-bind-pr-8774/command.yaml still carries contract_sha256: 182b3c68 — stale — and validates anyway, because its per-entry hash 08bb20cc still matches. That is better evidence for OMN-13888 than anything I could have written myself.

Also flagged separately on OMN-18048 (5fe2a2d7): the gap_ac_unbound hold's remediation has the same shape — "add binds_ac to the dod_evidence item" is not applicable when every such item is merged. Measured: adding it moved an entry hash 8a232746 → fbeb2619 and took the hardening gate to exit 1. I built net-new binding entries instead, in #8794, which is the shape ci.yml:1446 prescribes and the one OMN-18062 already uses.

jonahgabriel added a commit that referenced this pull request Sep 9, 2026
occ-preflight eligibility and verify/verify both failed on the same cause,
missing_occ_self_bind: the OMN-18081 evidence verified (receipts PASS, hashes
bound) but nothing bound a receipt to the OCC PR carrying the contract.

Appends `occ-self-bind-pr-8800` and its PASS receipt. The entry is APPENDED,
never edited into an existing one, so both existing entries keep their
contract_entry_sha256 byte-for-byte — recomputed and confirmed identical
(9ea64111... and 9c56e1ea...), which is the OMN-13888 property that makes a
later append non-destructive.

The whole-file hash does move on an append, so contract_sha256 is recomputed on
the three receipts from 48c7f629... to 79ef9bbf.... That is legal here and is
not the add-only violation the OMN-18056 lane recorded: those three receipts are
NEW in this same unmerged PR, not merged evidence being rewritten. The Receipt
Honesty Gate checks contract_sha256 against the CURRENT contract unconditionally
on pr_number, so leaving them stale would have traded one red gate for another.

No binds_ac on the self-bind entry: it is an infrastructure binding, not
evidence for an acceptance criterion, matching the landed precedents
(OMN-18048 #8783, OMN-18026 #8791).

Probe run for real, not asserted: `gh pr view 8800` returns state OPEN on
headRefName jonah/omn-18081-occ-companion-pr-364, exit 0. All four receipts
re-validated against the contract with the core hash functions, plus a negative
control proving two entries do not share an entry hash.

Companion for omniweb#364 (OMN-18081). Autobind is down this window (OMN-18073).
jonahgabriel added a commit that referenced this pull request Sep 9, 2026
…8800)

* evidence(OMN-18081): union-resolve — bind OMN-18081 to omniweb#364

Hand-bound OCC companion for OmniNode-ai/omniweb#364, binding AC1, AC2
and AC3.

Hand-minted because the occ-companion-effect job could not publish. On
run 34355977342 it failed with "the lane declares
security_protocol=SASL_PLAINTEXT / sasl_mechanism=SCRAM-SHA-256, but
KAFKA_SASL_USERNAME and/or KAFKA_SASL_PASSWORD are not set in this job's
environment", which is the autobind outage OMN-18073 records. Without a
companion, #364 has no receipt to cite and fails the Receipt Gate on the
missing citation rather than on anything wrong with the change. Same
union-resolve shape as OCC#8760 (omninode_infra#1266) and OCC#8787
(omninode_infra#1274).

AC4 is deliberately NOT bound: it is the staging readback on dev.app
after delivery, and it cannot be proven before this merges and reaches
onex-dev. Rule 24 is stated rather than implied in the contract summary —
the .201 compose dev lane runs no dashboard, so there is no lab surface
for this change and no lab pass is claimed.

Receipts carry real probe output, not asserted output. The behavior-proof
receipt records the RED control taken in-lane: 10 of 17 fail at acec8de,
17/17 pass at the pushed head, and the 7 that pass in BOTH states are the
OMN-18011 protection pins, which is the correct result for a change that
must preserve them.

Rule 22 respected: no credential was rotated, re-issued, revoked or
minted; no secret value was read, printed or decoded; no cluster object
was mutated.

* evidence(OMN-18081): self-bind the companion to OCC PR #8800

occ-preflight eligibility and verify/verify both failed on the same cause,
missing_occ_self_bind: the OMN-18081 evidence verified (receipts PASS, hashes
bound) but nothing bound a receipt to the OCC PR carrying the contract.

Appends `occ-self-bind-pr-8800` and its PASS receipt. The entry is APPENDED,
never edited into an existing one, so both existing entries keep their
contract_entry_sha256 byte-for-byte — recomputed and confirmed identical
(9ea64111... and 9c56e1ea...), which is the OMN-13888 property that makes a
later append non-destructive.

The whole-file hash does move on an append, so contract_sha256 is recomputed on
the three receipts from 48c7f629... to 79ef9bbf.... That is legal here and is
not the add-only violation the OMN-18056 lane recorded: those three receipts are
NEW in this same unmerged PR, not merged evidence being rewritten. The Receipt
Honesty Gate checks contract_sha256 against the CURRENT contract unconditionally
on pr_number, so leaving them stale would have traded one red gate for another.

No binds_ac on the self-bind entry: it is an infrastructure binding, not
evidence for an acceptance criterion, matching the landed precedents
(OMN-18048 #8783, OMN-18026 #8791).

Probe run for real, not asserted: `gh pr view 8800` returns state OPEN on
headRefName jonah/omn-18081-occ-companion-pr-364, exit 0. All four receipts
re-validated against the contract with the core hash functions, plus a negative
control proving two entries do not share an entry hash.

Companion for omniweb#364 (OMN-18081). Autobind is down this window (OMN-18073).
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.

2 participants