Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 16 additions & 0 deletions contracts/OMN-15628.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -130,3 +130,19 @@ dod_evidence:
checks:
- check_type: "command"
check_value: "gh pr view 5902 --repo OmniNode-ai/onex_change_control --json number,state"
- id: "dod-OmniNode-ai-omnibase_infra-pr-2617"
description: "PR #2617 on OmniNode-ai/omnibase_infra - Evidence-Source autobind."
source: "manual"
status: "verified"
checks:
- check_type: "command"
check_value: "gh pr view 2617 --repo OmniNode-ai/omnibase_infra --json number,state"
- check_type: "command"
check_value: "gh pr view 2617 --repo OmniNode-ai/omnibase_infra --json files"
Comment on lines +133 to +141

Copy link
Copy Markdown

Choose a reason for hiding this comment

The 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
printf '%s\n' '--- contract excerpt ---'
cat -n contracts/OMN-15628.yaml | sed -n '115,155p'
printf '%s\n' '--- receipt ---'
cat -n drift/dod_receipts/OMN-15628/dod-OmniNode-ai-omnibase_infra-pr-2617/command.yaml
printf '%s\n' '--- related references ---'
rg -n --glob '*.yaml' --glob '*.yml' 'headRefOid|headRefName|contract_entry_sha256|commit_sha|OMN-15628|pr-2617' contracts drift | head -n 240
printf '%s\n' '--- repository files for validator gate ---'
git ls-files | rg '(^|/)(validator_receipt_gate|omnibase_core|pyproject.toml|requirements.*|poetry.lock|uv.lock|setup.cfg|setup.py)' | head -n 160

Repository: OmniNode-ai/onex_change_control

Length of output: 37866


🏁 Script executed:

#!/bin/bash
set -eu
printf '%s\n' '--- external PR identity ---'
if command -v gh >/dev/null 2>&1; then
  gh pr view 2617 --repo OmniNode-ai/omnibase_infra --json number,state,headRefOid,headRefName,baseRefName,url
else
  curl -fsSL -H 'Accept: application/vnd.github+json' \
    https://api.github.com/repos/OmniNode-ai/omnibase_infra/pulls/2617 |
    jq '{number,state,headRefOid:.head.sha,headRefName:.head.ref,baseRefName:.base.ref,url}'
fi
printf '%s\n' '--- local commit identity ---'
git rev-parse HEAD
git cat-file -t fbc23a702f8528087b519058cc82fd7b7677c469 2>/dev/null || true
printf '%s\n' '--- hash-related project configuration ---'
rg -n -C 3 'omnibase_core|validator_receipt_gate|contract_sha256|contract_entry_sha256|canonical' pyproject.toml uv.lock contracts drift | head -n 260
printf '%s\n' '--- installed validator gate availability ---'
python3 - <<'PY'
try:
    import inspect
    import omnibase_core.validation.validator_receipt_gate as gate
    print("module:", gate.__file__)
    print("exports:", [x for x in dir(gate) if "hash" in x.lower() or "contract" in x.lower() or "entry" in x.lower()])
    for name in dir(gate):
        if "hash" in name.lower() or "contract" in name.lower() or "entry" in name.lower():
            obj = getattr(gate, name)
            if callable(obj):
                try:
                    print(name, inspect.signature(obj))
                except (TypeError, ValueError):
                    print(name, type(obj).__name__)
except Exception as exc:
    print(type(exc).__name__ + ":", exc)
PY

Repository: OmniNode-ai/onex_change_control

Length of output: 19655


🌐 Web query:

omnibase_core validation.validator_receipt_gate compute_contract_entry_sha256 canonical JSON

💡 Result:

The omnibase_core library—the kernel of the ONEX (OmniNode eXecution) platform—utilizes validator_receipt_gate as part of its validation framework [1][2][3]. This module handles logic related to the "Enforcement by Receipt" policy, which ensures that pull requests are backed by verified evidence artifacts [4][5]. The function compute_contract_entry_sha256 (and related canonicalization operations within the broader ecosystem of canonical-JSON implementations) relies on a deterministic serialization process to ensure consistent cross-process hashing [6][7][8][9][10]. In these contexts, "canonical JSON" generally follows strict serialization rules to guarantee that the same logical input produces identical byte-level output [6][8][9][10]. These rules typically include: 1. Lexicographical sorting of object keys [6][8][9][10]. 2. Minified JSON output with no whitespace (separators set to , and :) [6][9][10]. 3. Character encoding enforced as UTF-8 (no BOM) [8][9][10]. 4. Consistent handling of data types (e.g., ensuring no non-standard floating-point tokens and handling numbers/booleans deterministically) [6][7][9][10]. For exact implementation details, developers should refer to the omnibase_core source repository [11][3]. The validator_receipt_gate.py module is located within the src/omnibase_core/validation/ directory [1]. [1][4][6][9]

Citations:


🏁 Script executed:

#!/bin/bash
set -eu
printf '%s\n' '--- OMN-15628 hash fields and complete structure ---'
rg -n -C 4 'contract_sha256|contract_entry_sha256|dod_evidence|schema_version|ticket_id' contracts/OMN-15628.yaml drift/dod_receipts/OMN-15628
printf '%s\n' '--- hash gate references and local implementations ---'
git ls-files | rg -i '(receipt|contract|validator|hash|gate)' | head -n 260
rg -n -C 5 'compute_contract_entry_sha256|contract_sha256|contract_entry_sha256|validator_receipt_gate' --glob '*.py' --glob '*.md' --glob '*.yaml' --glob '*.yml' . | head -n 360
printf '%s\n' '--- dependency declaration ---'
sed -n '1,42p' pyproject.toml

Repository: OmniNode-ai/onex_change_control

Length of output: 50388


🏁 Script executed:

#!/bin/bash
set -eu
tmp="$(mktemp -d)"
trap 'rm -rf "$tmp"' EXIT
curl -fsSL \
  'https://raw.githubusercontent.com/OmniNode-ai/omnibase_core/f91468b0e930b2853a3f0bf0ba82868cd9fd8d7b/src/omnibase_core/validation/validator_receipt_gate.py' \
  -o "$tmp/validator_receipt_gate.py"
printf '%s\n' '--- validator hash functions ---'
rg -n -C 8 'def .*hash|contract_sha256|contract_entry_sha256|canonical|json.dumps' "$tmp/validator_receipt_gate.py"
printf '%s\n' '--- contract header and target entry ---'
cat -n contracts/OMN-15628.yaml | sed -n '1,45p'
cat -n contracts/OMN-15628.yaml | sed -n '125,145p'
printf '%s\n' '--- target receipt ---'
cat -n drift/dod_receipts/OMN-15628/dod-OmniNode-ai-omnibase_infra-pr-2617/command.yaml
printf '%s\n' '--- compact hash-field inventory for this ticket ---'
for f in contracts/OMN-15628.yaml drift/dod_receipts/OMN-15628/dod-OmniNode-ai-omnibase_infra-pr-2617/command.yaml; do
  printf '%s: ' "$f"
  rg -o '^(contract_sha256|contract_entry_sha256):.*' "$f" | paste -sd ';' - || true
done

Repository: OmniNode-ai/onex_change_control

Length of output: 12139


🏁 Script executed:

#!/bin/bash
set -eu
tmp="$(mktemp -d)"
trap 'rm -rf "$tmp"' EXIT
for ref in main v0.46.7; do
  url="https://raw.githubusercontent.com/OmniNode-ai/omnibase_core/${ref}/src/omnibase_core/validation/validator_receipt_gate.py"
  if curl -fsSL "$url" -o "$tmp/gate-$ref.py"; then
    printf '%s\n' "--- $ref entry-hash symbols ---"
    rg -n -C 10 'compute_contract_entry_sha256|contract_entry_sha256|canonical|json.dumps' "$tmp/gate-$ref.py" || true
  fi
done
printf '%s\n' '--- raw contract hash ---'
sha256sum contracts/OMN-15628.yaml
printf '%s\n' '--- relevant receipt schema/hash enforcement references ---'
rg -n -C 8 'contract_sha256|contract_entry_sha256|compute_contract_entry_sha256' \
  --glob '*.py' --glob '*.yaml' --glob '*.yml' --glob '*.md' . | \
  rg 'OMN-15628|validator|contract_sha256|contract_entry_sha256|compute_contract_entry_sha256' | head -n 220

Repository: OmniNode-ai/onex_change_control

Length of output: 39031


🏁 Script executed:

#!/bin/bash
set -eu
python3 - <<'PY'
import hashlib
import json
from pathlib import Path

contract_path = Path("contracts/OMN-15628.yaml")
receipt_path = Path(
    "drift/dod_receipts/OMN-15628/"
    "dod-OmniNode-ai-omnibase_infra-pr-2617/command.yaml"
)

try:
    import yaml
except Exception as exc:
    print("yaml_import:", type(exc).__name__, str(exc))
    raise SystemExit(0)

contract_data = yaml.safe_load(contract_path.read_text(encoding="utf-8"))
entry_id = "dod-OmniNode-ai-omnibase_infra-pr-2617"
entry = next(
    item for item in contract_data["dod_evidence"] if item.get("id") == entry_id
)
canonical = {
    "header": {
        "ticket_id": contract_data.get("ticket_id"),
        "schema_version": contract_data.get("schema_version"),
    },
    "entry": entry,
}
blob = json.dumps(
    canonical, sort_keys=True, separators=(",", ":"), ensure_ascii=False
).encode("utf-8")
expected_entry = "sha256:" + hashlib.sha256(blob).hexdigest()
raw_contract = "sha256:" + hashlib.sha256(contract_path.read_bytes()).hexdigest()

receipt_text = receipt_path.read_text(encoding="utf-8")
recorded_entry = next(
    line.split(":", 1)[1].strip().strip('"')
    for line in receipt_text.splitlines()
    if line.startswith("contract_entry_sha256:")
)

print("raw_contract_sha256:", raw_contract)
print("computed_contract_entry_sha256:", expected_entry)
print("recorded_contract_entry_sha256:", recorded_entry)
print("entry_hash_matches:", expected_entry == recorded_entry)
print("contract_has_contract_sha256:", "contract_sha256:" in contract_path.read_text())
print("receipt_has_contract_sha256:", "contract_sha256:" in receipt_text)
PY

Repository: OmniNode-ai/onex_change_control

Length of output: 225


Bind the receipt to the external PR head and contract hashes.

PR 2617 currently has head fbc23a702f8528087b519058cc82fd7b7677c469, but the checks do not query or assert headRefOid.

  • Update contracts/OMN-15628.yaml#L133-L141 to query headRefOid and assert the expected SHA.
  • Update the receipt to record headRefOid and require it to equal commit_sha. Keep the external headRefName separate from the local branch.
  • Add contract_sha256 for the contract raw-byte hash and regenerate contract_entry_sha256 with omnibase_core.validation.validator_receipt_gate.
📍 Affects 2 files
  • contracts/OMN-15628.yaml#L133-L141 (this comment)
  • drift/dod_receipts/OMN-15628/dod-OmniNode-ai-omnibase_infra-pr-2617/command.yaml#L6-L20
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@contracts/OMN-15628.yaml` around lines 133 - 141, Update
contracts/OMN-15628.yaml lines 133-141 so the PR 2617 checks query headRefOid
and assert fbc23a702f8528087b519058cc82fd7b7677c469. Update
drift/dod_receipts/OMN-15628/dod-OmniNode-ai-omnibase_infra-pr-2617/command.yaml
lines 6-20 to record headRefOid equal to commit_sha while keeping external
headRefName separate from local branch; add contract_sha256 and regenerate
contract_entry_sha256 using omnibase_core.validation.validator_receipt_gate.

Source: Learnings

- id: "occ-self-bind-pr-5911"
description: "Binds OMN-15628 to OCC companion PR #5911 (self-bind)."
source: "manual"
status: "verified"
checks:
- check_type: "command"
check_value: "gh pr view 5911 --repo OmniNode-ai/onex_change_control --json number,state"
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
---
schema_version: "1.0.0"
Comment on lines +1 to +2

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🗄️ Data Integrity & Integration | 🟠 Major | ⚡ Quick win

Use the required timestamp filename for the receipt.

This receipt is stored as command.yaml. The repository rule requires drift/dod_receipts/<TICKET>/<ITEM_ID>/<run_timestamp>.yaml. Rename the file to use the recorded run timestamp and update any receipt lookup that depends on this path.

As per coding guidelines, DoD receipts must use the <run_timestamp>.yaml path.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In
`@drift/dod_receipts/OMN-15628/dod-OmniNode-ai-omnibase_infra-pr-2617/command.yaml`
around lines 1 - 2, Rename the receipt file from command.yaml to the required
recorded run_timestamp.yaml format under the same ticket and item directory, and
update any lookup or reference that depends on the old command.yaml path to use
the timestamp-based path.

Source: Coding guidelines

ticket_id: "OMN-15628"
evidence_item_id: "dod-OmniNode-ai-omnibase_infra-pr-2617"
check_type: "command"
check_value: |-
gh pr view 2617 --repo OmniNode-ai/omnibase_infra --json number,state,headRefName
contract_entry_sha256: "sha256:45cb8de118fd0dc9d74bd8e295ba945c39c4ed3098a9705b66ebbb65ed068ff7"

Copy link
Copy Markdown

Choose a reason for hiding this comment

The 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 -euo pipefail

printf '%s\n' '--- target receipt ---'
cat -n drift/dod_receipts/OMN-15628/dod-OmniNode-ai-omnibase_infra-pr-2617/command.yaml

printf '%s\n' '--- matching receipt files ---'
git ls-files 'drift/dod_receipts/**/*.yaml' | sed -n '1,120p'

printf '%s\n' '--- hash and validator references ---'
rg -n --hidden -S \
  'contract_sha256|contract_entry_sha256|validator_receipt_gate|ModelDodReceipt' \
  --glob '!node_modules' --glob '!dist' --glob '!build' .

Repository: OmniNode-ai/onex_change_control

Length of output: 50388


🏁 Script executed:

#!/bin/bash
set -euo pipefail

printf '%s\n' '--- repository files near receipt and validator ---'
fd -H -t f | rg '(^|/)(command\.yaml|.*receipt.*|.*validator.*|pyproject\.toml|package\.json|README.*)$' | sed -n '1,200p'

printf '%s\n' '--- receipt directory metadata ---'
find drift/dod_receipts/OMN-15628 -maxdepth 3 -type f -print | sort

printf '%s\n' '--- relevant tracked-file contents ---'
while IFS= read -r f; do
  case "$f" in
    drift/dod_receipts/*.yaml)
      echo "### $f"
      cat -n "$f"
      ;;
  esac
done < <(git ls-files 'drift/dod_receipts/**/*.yaml' | sed -n '1,80p')

Repository: OmniNode-ai/onex_change_control

Length of output: 16026


🏁 Script executed:

#!/bin/bash
set -euo pipefail
printf '%s\n' '--- target receipt ---'
cat -n drift/dod_receipts/OMN-15628/dod-OmniNode-ai-omnibase_infra-pr-2617/command.yaml
printf '%s\n' '--- all relevant references ---'
rg -n --hidden -S 'contract_sha256|contract_entry_sha256|validator_receipt_gate|ModelDodReceipt' \
  --glob '!node_modules' --glob '!dist' --glob '!build' .

Repository: OmniNode-ai/onex_change_control

Length of output: 50388


🏁 Script executed:

#!/bin/bash
set -euo pipefail
python3 - <<'PY'
from pathlib import Path
p = Path("drift/dod_receipts/OMN-15628/dod-OmniNode-ai-omnibase_infra-pr-2617/command.yaml")
print("exists:", p.exists())
if p.exists():
    print(p.read_text())
for root in (Path("drift"), Path(".")):
    if root.exists():
        for f in root.rglob("*"):
            if f.is_file() and f.suffix in {".yaml", ".yml", ".py", ".md", ".toml", ".json"}:
                try:
                    s = f.read_text(errors="ignore")
                except Exception:
                    continue
                if any(x in s for x in ("contract_sha256", "contract_entry_sha256",
                                        "validator_receipt_gate", "ModelDodReceipt")):
                    print("REF", f)
PY

Repository: OmniNode-ai/onex_change_control

Length of output: 50388


🏁 Script executed:

#!/bin/bash
set -euo pipefail

printf '%s\n' '--- target receipt ---'
cat -n drift/dod_receipts/OMN-15628/dod-OmniNode-ai-omnibase_infra-pr-2617/command.yaml

printf '%s\n' '--- nearby OMN-15628 receipts ---'
for f in \
  drift/dod_receipts/OMN-15628/dod-OmniNode-ai-omnibase_infra-pr-2612/command.yaml \
  drift/dod_receipts/OMN-15628/dod-OmniNode-ai-omnibase_infra-pr-2615/command.yaml \
  drift/dod_receipts/OMN-15628/dod-OmniNode-ai-omnibase_infra-pr-2615/command.supersede.2006.yaml
do
  echo "### $f"
  cat -n "$f"
done

printf '%s\n' '--- hashing standard ---'
cat -n docs/standards/receipt_hashing_and_supersession.md | sed -n '1,240p'

printf '%s\n' '--- validator references, limited ---'
rg -n -m 80 'contract_sha256|contract_entry_sha256|validator_receipt_gate|ModelDodReceipt' \
  docs scripts tests architecture-handshakes .github/workflows pyproject.toml

Repository: OmniNode-ai/onex_change_control

Length of output: 24807


🏁 Script executed:

#!/bin/bash
set -euo pipefail

printf '%s\n' '--- exact target and comparable receipts ---'
for f in \
  drift/dod_receipts/OMN-15628/dod-OmniNode-ai-omnibase_infra-pr-2617/command.yaml \
  drift/dod_receipts/OMN-15628/dod-OmniNode-ai-omnibase_infra-pr-2612/command.yaml \
  drift/dod_receipts/OMN-15628/dod-OmniNode-ai-omnibase_infra-pr-2615/command.yaml
do
  echo "### $f"
  sed -n '1,80p' "$f"
done

printf '%s\n' '--- relevant standard excerpts ---'
rg -n -C 4 'contract_sha256|contract_entry_sha256|validator_receipt_gate|whole-file|whole-contract|canonical' \
  docs/standards/receipt_hashing_and_supersession.md \
  tests scripts .github/workflows architecture-handshakes \
  --glob '!**/*.yaml' --glob '!**/*.yml' | sed -n '1,260p'

Repository: OmniNode-ai/onex_change_control

Length of output: 24533


Store the receipt at the canonical timestamp path.

contract_entry_sha256 is the strict binding and does not require contract_sha256. Move this omnibase_core.ModelDodReceipt from command.yaml to drift/dod_receipts/<TICKET>/<ITEM_ID>/<run_timestamp>.yaml.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In
`@drift/dod_receipts/OMN-15628/dod-OmniNode-ai-omnibase_infra-pr-2617/command.yaml`
at line 8, Move the omnibase_core.ModelDodReceipt currently stored in
command.yaml to the canonical
drift/dod_receipts/<TICKET>/<ITEM_ID>/<run_timestamp>.yaml timestamp path,
preserving contract_entry_sha256 as the strict binding and excluding any
contract_sha256 field.

Source: Coding guidelines

status: PASS
run_timestamp: "2026-08-02T00:28:35Z"
commit_sha: "fbc23a702f8528087b519058cc82fd7b7677c469"
runner: "codex-merge-controller"
verifier: "occ-evidence-source-autobind"
probe_command: "gh pr view 2617 --repo OmniNode-ai/omnibase_infra --json number,state,headRefName"
probe_stdout: |
{"headRefName":"jonah/omn-15628-remediation-round2","number":2617,"state":"OPEN"}
actual_output: "PASS: Evidence-Source autobind for OMN-15628 from OmniNode-ai/omnibase_infra#2617."
exit_code: 0
pr_number: 2617
branch: "codex/omn-15628-infra-2617-occ-002835"
20 changes: 20 additions & 0 deletions drift/dod_receipts/OMN-15628/occ-self-bind-pr-5911/command.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
---
schema_version: "1.0.0"
ticket_id: "OMN-15628"
evidence_item_id: "occ-self-bind-pr-5911"
check_type: "command"
check_value: |-
gh pr view 5911 --repo OmniNode-ai/onex_change_control --json number,state,headRefName
Comment on lines +1 to +7

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🗄️ Data Integrity & Integration | 🟠 Major | ⚡ Quick win

Use the canonical receipt path and self-reference check_value.

The file path ends in command.yaml, but the required path ends in <run_timestamp>.yaml. Move this receipt to drift/dod_receipts/OMN-15628/occ-self-bind-pr-5911/2026-08-02T00:28:35Z.yaml.

Set check_value to the final receipt path. Keep the executed command in probe_command.

As per coding guidelines, DoD receipts must use the timestamp-based path. Based on learnings, ModelDodReceipt.check_value must contain the receipt's own path.

Proposed fix
- drift/dod_receipts/OMN-15628/occ-self-bind-pr-5911/command.yaml
+ drift/dod_receipts/OMN-15628/occ-self-bind-pr-5911/2026-08-02T00:28:35Z.yaml

-check_value: |-
-  gh pr view 5911 --repo OmniNode-ai/onex_change_control --json number,state,headRefName
+check_value: "drift/dod_receipts/OMN-15628/occ-self-bind-pr-5911/2026-08-02T00:28:35Z.yaml"
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@drift/dod_receipts/OMN-15628/occ-self-bind-pr-5911/command.yaml` around lines
1 - 7, Rename the receipt from command.yaml to the canonical timestamp-based
filename 2026-08-02T00:28:35Z.yaml, set ModelDodReceipt.check_value to that
final receipt path, and preserve the executed gh pr view command under
probe_command.

Sources: Coding guidelines, Learnings

contract_entry_sha256: "sha256:136270b8aa4469c2666d973faea1301a3798f454bc3d10d18ee686995fb9e17d"
status: PASS
run_timestamp: "2026-08-02T00:28:35Z"
commit_sha: "710b3239bb314eb98360ec86c9d73e7fd52a92d4"
runner: "codex-merge-controller"
verifier: "occ-evidence-source-autobind"
probe_command: "gh pr view 5911 --repo OmniNode-ai/onex_change_control --json number,state"
probe_stdout: |
{"number":5911,"state":"OPEN"}
Comment on lines +11 to +16

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🗄️ Data Integrity & Integration | 🟡 Minor | ⚡ Quick win

🧩 Analysis chain

🏁 Script executed:

gh pr view 5911 --repo OmniNode-ai/onex_change_control --json number,state,headRefName,headRefOid
git cat-file -e '710b3239bb314eb98360ec86c9d73e7fd52a92d4^{commit}'

Repository: OmniNode-ai/onex_change_control

Length of output: 310


🏁 Script executed:

#!/bin/bash
set -e
python3 - <<'PY'
import json
from pathlib import Path

path = Path("drift/dod_receipts/OMN-15628/occ-self-bind-pr-5911/command.yaml")
text = path.read_text()
print(text)
PY

gh api repos/OmniNode-ai/onex_change_control/commits/710b3239bb314eb98360ec86c9d73e7fd52a92d4 --jq '{sha: .sha, message: .commit.message}'
gh api repos/OmniNode-ai/onex_change_control/commits/1cdbca4897d818428e94fbf77198c0c33d6a65c8 --jq '{sha: .sha, message: .commit.message}'

Repository: OmniNode-ai/onex_change_control

Length of output: 1173


Capture the PR head in the receipt.

commit_sha resolves to a valid commit, but it differs from PR head 1cdbca4897d818428e94fbf77198c0c33d6a65c8. Record headRefName and headRefOid in probe_stdout to establish the relationship.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@drift/dod_receipts/OMN-15628/occ-self-bind-pr-5911/command.yaml` around lines
11 - 16, Update the receipt’s probe_stdout for the gh pr view command to include
headRefName and headRefOid, using the PR head values so the recorded commit_sha
relationship is explicit while preserving the existing number and state fields.

Source: Learnings

actual_output: "PASS: OCC self-bind for OMN-15628 (OCC#5911)."
exit_code: 0
pr_number: 5911
branch: "codex/omn-15628-infra-2617-occ-002835"
Loading