Repository navigation
evidence(OMN-15963): rebind the admissibility-validator receipt off the dead carrier #6536
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
65650fc
748e39b
1a3f1a9
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,34 @@ | ||
| --- | ||
| schema_version: 1.0.0 | ||
| ticket_id: OMN-15963 | ||
| evidence_item_id: dod-occ-evidence-admissibility-validator | ||
| check_type: command | ||
| supersedes: drift/dod_receipts/OMN-15963/dod-occ-evidence-admissibility-validator/command.supersede.885.yaml | ||
| reason: |- | ||
| The surviving record in this chain (ordinal 885, the OMN-14623 2nd-consumer autobind rebind) binds this item to omninode_infra#885, which CLOSED UNMERGED at 2026-08-13T18:49:40Z with mergeCommit null, so the derived ::pr-live-state assertion fails closed on it forever. That record is immutable under the append-only rule and is preserved byte-for-byte; this net-new higher-ordinal record carries the rebound receipt, completing the dead-carrier tombstone this PR already applies to the two pr-885 stamp items. The replacement re-executes this item's OWN declared check verbatim and, in the same probe, reads the carrier that actually landed, omninode_infra#884 (merge 0fa14c8ff0c3ee85dcf23f65db86abfd561fdeee), plus an item-id-labelled echo so the rebind discriminates THIS item. | ||
| superseder: receipt-repair-lane/no-consistent-pr-binding-rebind | ||
| created_at: '2026-08-16T07:37:56Z' | ||
| replacement: | ||
| schema_version: 1.0.0 | ||
| ticket_id: OMN-15963 | ||
| evidence_item_id: dod-occ-evidence-admissibility-validator | ||
| check_type: command | ||
| check_value: |- | ||
| uv run pytest tests/test_evidence_admissibility.py -q && gh pr view 884 --repo OmniNode-ai/omninode_infra --json number,state && echo dod-occ-evidence-admissibility-validator | ||
| contract_entry_sha256: sha256:19576fafcce0d3bb2f527cac704c0f6b563b73719798baf4887203cce01e5dfd | ||
| status: PASS | ||
| run_timestamp: '2026-08-16T07:37:56Z' | ||
| commit_sha: 0fa14c8ff0c3ee85dcf23f65db86abfd561fdeee | ||
|
Comment on lines
+16
to
+21
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🗄️ Data Integrity & Integration | 🟠 Major | ⚡ Quick win 🧩 Analysis chain🏁 Script executed: #!/bin/bash
set -eu
file='drift/dod_receipts/OMN-15963/dod-occ-evidence-admissibility-validator/command.supersede.0886.yaml'
printf '%s\n' '--- receipt ---'
cat -n "$file"
printf '%s\n' '--- related receipt files ---'
git ls-files 'drift/dod_receipts/OMN-15963/*' | head -80
printf '%s\n' '--- supersession and schema references ---'
rg -n -S 'supersede|replacement|mergeCommit|probe_stdout|actual_output|ModelDodReceipt|dod_receipts' \
scripts drift tests pyproject.toml 2>/dev/null | head -240Repository: OmniNode-ai/onex_change_control Length of output: 32290 🏁 Script executed: #!/bin/bash
set -eu
printf '%s\n' '--- compliance path and shape rules ---'
sed -n '270,360p' scripts/check_dod_compliance.py
printf '%s\n' '--- hardening documentation and replacement validation ---'
sed -n '40,225p' scripts/validation/check_receipt_hardening.py
sed -n '810,875p' scripts/validation/check_receipt_hardening.py
printf '%s\n' '--- hardening carrier-related rules ---'
sed -n '500,545p' scripts/validation/check_receipt_hardening.py
sed -n '735,875p' tests/test_check_receipt_hardening.py
printf '%s\n' '--- target and nearby supersession records ---'
for f in \
drift/dod_receipts/OMN-15963/dod-occ-evidence-admissibility-validator/command.yaml \
drift/dod_receipts/OMN-15963/dod-occ-evidence-admissibility-validator/command.supersede.885.yaml \
drift/dod_receipts/OMN-15963/dod-OmniNode-ai-omninode_infra-pr-885/command.supersede.0001.yaml
do
echo "### $f"
cat -n "$f"
done
printf '%s\n' '--- gh carrier query patterns ---'
rg -n -S 'gh pr view .*--json|mergeCommit|state.*MERGED|MERGED.*state' \
drift scripts tests | head -240Repository: OmniNode-ai/onex_change_control Length of output: 50387 🏁 Script executed: #!/bin/bash
set -eu
printf '%s\n' '--- stdout-emittability implementation ---'
sed -n '550,715p' scripts/validation/check_receipt_hardening.py
printf '%s\n' '--- receipt binding implementation ---'
sed -n '930,1010p' scripts/validation/check_receipt_hardening.py
printf '%s\n' '--- exact gh/version declarations ---'
rg -n -S -i 'gh( |[-_])version|github cli|gh cli|gh:|setup-gh|cli/gh|GH_VERSION' \
.github .devcontainer Dockerfile* Makefile* pyproject.toml uv.lock requirements*.txt scripts tests 2>/dev/null | head -180
printf '%s\n' '--- supersession naming/path tests ---'
rg -n -S 'supersession|supersede|run_timestamp|canonical.*receipt|ModelDodReceipt' \
tests scripts/check_dod_compliance.py scripts/validation/check_receipt_hardening.py | head -220Repository: OmniNode-ai/onex_change_control Length of output: 34568 🌐 Web query:
💡 Result: The mergeCommit field is a supported and documented option for the gh pr view --json command [1][2]. This field allows you to retrieve the merge commit associated with a pull request [3][4]. When you request this field, the output returns a JSON object containing the merge commit details, typically structured as follows [4]: { "mergeCommit": { "oid": "example-commit-sha" } } The oid field within the mergeCommit object provides the full commit hash (SHA) of the merge commit [5][4]. Key points regarding the usage of this field: - Availability: It is an explicitly listed field in the GitHub CLI documentation for both gh pr view and gh pr list [1][6]. - Use Case: It is primarily used to programmatically obtain the commit hash for merged pull requests [3][4]. - Data structure: As defined in the GitHub CLI source code, the mergeCommit field maps to a Commit object, which includes the OID [5]. If you need to extract just the hash for scripting purposes, you can combine this with the --jq flag [7]: gh pr view --json mergeCommit --jq '.mergeCommit.oid' Citations:
Make the landed-carrier check fail closed. Require 🤖 Prompt for AI Agents |
||
| runner: receipt-repair-batch-lane-20260816 | ||
| verifier: receipt-repair-lane/no-consistent-pr-binding-rebind | ||
| probe_command: |- | ||
| uv run pytest tests/test_evidence_admissibility.py -q && gh pr view 884 --repo OmniNode-ai/omninode_infra --json number,state && echo dod-occ-evidence-admissibility-validator | ||
| probe_stdout: "\e[32m.\e[0m\e[32m.\e[0m\e[32m.\e[0m\e[32m.\e[0m\e[32m.\e[0m\e[32m.\e[0m\e[32m.\e[0m\e[32m.\e[0m\e[32m.\e[0m\e[32m.\e[0m\e[32m.\e[0m\e[32m.\e[0m\e[32m.\e[0m\e[32m.\e[0m\e[32m.\e[0m\e[32m.\e[0m\e[32m.\e[0m\e[32m.\e[0m\e[32m.\e[0m\e[32m.\e[0m\e[32m.\e[0m\e[32m.\e[0m\e[32m.\e[0m\e[32m.\e[0m\e[32m.\e[0m\e[32m.\e[0m\e[32m.\e[0m\e[32m.\e[0m\e[32m.\e[0m\e[32m.\e[0m\e[32m.\e[0m\e[32m.\e[0m\e[32m.\e[0m\e[32m.\e[0m\e[32m.\e[0m\e[32m.\e[0m\e[32m.\e[0m\e[32m.\e[0m\e[32m.\e[0m\e[32m.\e[0m\e[32m.\e[0m\e[32m.\e[0m\e[32m.\e[0m\e[32m.\e[0m\e[32m.\e[0m\e[32m.\e[0m\e[32m.\e[0m\e[32m.\e[0m\e[32m.\e[0m\e[32m.\e[0m\e[32m.\e[0m\e[32m.\e[0m\e[32m.\e[0m\e[32m.\e[0m\e[32m.\e[0m\e[32m.\e[0m\e[32m.\e[0m\e[32m.\e[0m\e[32m.\e[0m\e[32m.\e[0m\e[32m.\e[0m\e[32m.\e[0m\e[32m.\e[0m\e[32m.\e[0m\e[32m.\e[0m\e[32m.\e[0m\e[32m.\e[0m\e[32m.\e[0m\e[32m.\e[0m\e[32m.\e[0m\e[32m.\e[0m\e[32m.\e[0m\e[32m | ||
| [ 94%]\n\e[0m\e[32m.\e[0m\e[32m.\e[0m\e[32m.\e[0m\e[32m.\e[0m\e[32m [100%]\e[0m\n\e[32m\e[32m\e[1m76 | ||
| passed\e[0m\e[32m in 0.06s\e[0m\e[0m\n{\"number\":884,\"state\":\"MERGED\"}\ndod-occ-evidence-admissibility-validator" | ||
| actual_output: |- | ||
| PASS: re-executed the item's declared admissibility check live and paired it with the landed carrier OmniNode-ai/omninode_infra#884 (state=MERGED) in the same probe, replacing the dead-carrier rebind record that bound this item to the closed-unmerged #885. | ||
| exit_code: 0 | ||
| pr_number: 884 | ||
| branch: jonah/omn-15963-tombstone-885 | ||
| no_source_change: true | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,23 @@ | ||
| --- | ||
| schema_version: 1.0.0 | ||
| ticket_id: OMN-15963 | ||
| evidence_item_id: occ-self-bind-pr-6536 | ||
| check_type: command | ||
| check_value: |- | ||
| test "$(gh pr view 6536 --repo OmniNode-ai/onex_change_control --json number --jq .number)" = "6536" && test "$(gh pr view 6536 --repo OmniNode-ai/onex_change_control --json headRefName --jq .headRefName)" = "jonah/omn-15963-admissibility-rebind" | ||
| contract_entry_sha256: sha256:494206e7ccfbbb77f80994630338ede05d60cdff47a0abfe719378a59cfdf088 | ||
| status: PASS | ||
| run_timestamp: '2026-08-16T09:46:17Z' | ||
| commit_sha: 748e39b931e34d4c646a5cb7792bb3083f5bab23 | ||
| runner: receipt-repair-lane-omn15963-record | ||
| verifier: receipt-repair-lane/omn-15963-admissibility-rebind-probe | ||
| probe_command: |- | ||
| test "$(gh pr view 6536 --repo OmniNode-ai/onex_change_control --json number --jq .number)" = "6536" && test "$(gh pr view 6536 --repo OmniNode-ai/onex_change_control --json headRefName --jq .headRefName)" = "jonah/omn-15963-admissibility-rebind" && echo CHECK_VALUE_EXIT=0 | ||
| probe_stdout: | | ||
| CHECK_VALUE_EXIT=0 | ||
| actual_output: |- | ||
| PASS: OCC self-bind for OMN-15963 (onex_change_control#6536), the carrier of the ordinal-0886 supersede record that rebinds the admissibility-validator item off the dead carrier omninode_infra#885. Satisfies occ-preflight's per-PR _receipt_bound_to_pr requirement, which the first CI pass on this PR failed with reason=pr_ticket_mismatch because the PR's payload record binds to omninode_infra#884. The committed check_value was read back out of the contract and executed VERBATIM under bash -o pipefail; it asserts BOTH the carrier PR number AND its head branch jonah/omn-15963-admissibility-rebind, RED-proven against a wrong branch name (exit 1). Hand-authored by the repair lane, hence source=manual, like the sibling occ-self-bind-pr-6453. | ||
| exit_code: 0 | ||
| pr_number: 6536 | ||
| branch: jonah/omn-15963-admissibility-rebind | ||
| no_source_change: true |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🗄️ Data Integrity & Integration | 🟠 Major | 🏗️ Heavy lift
Align the receipt with the required storage contract.
The file uses
command.supersede.0886.yaml, but the applicable rule requiresdrift/dod_receipts/<TICKET>/<ITEM_ID>/<run_timestamp>.yaml. The document is also a supersession envelope with a nestedreplacement, not a standaloneomnibase_core.ModelDodReceipt. Move the record and update the related resolver contract, or define an explicit supersession exception before merge. Otherwise receipt tooling can reject or skip this evidence.As per coding guidelines, the rule is:
drift/dod_receipts/**/*.yamlfiles must usedrift/dod_receipts/<TICKET>/<ITEM_ID>/<run_timestamp>.yamland theomnibase_core.ModelDodReceiptshape.Also applies to: 11-18
🤖 Prompt for AI Agents
Source: Coding guidelines