Repository navigation
chore(OMN-9893): migrate OMN-9892 receipts file_exists→command (unblock #948) - #440
Conversation
#948) OCC#438 merged contracts/OMN-9892.yaml + receipts at drift/dod_receipts/OMN-9892/dod-{001,002}/file_exists.yaml with check_type: file_exists, status: PASS. Post-OMN-9788 receipt_gate hardening (model_dod_receipt.py Rule 2) defines WEAK_PROOF_CHECK_TYPES = {"file_exists"} -- file_exists+PASS receipts auto-downgrade to ADVISORY -> fail receipt-gate as "Missing or non-PASS receipts". omnibase_core#948 (deploy-gate fix; queue blocker for ~26 PRs) is BLOCKED on this. Run 24988740665 (run_attempt=2, ran 2026-04-27T10:08:50Z, AFTER OCC#438 merge at 10:04:32Z) shows the exact failure mode. Migrate to canonical command pattern from OMN-9891 / OCC#436 (contracts OMN-9761/9763/9764/9765): * Rename receipts file_exists.yaml -> command.yaml. * Receipt body: check_type=command, check_value uses grep -q markers against the receipt itself (status, evidence_item_id, ticket_id) plus a domain-specific marker (deploy-gate-reusable.yml@main for dod-001, actionlint for dod-002). Distinct verifier (omn-9893-receipt-migration-v1) and runner (omn-9893-migration-runner-v1). * Contract: drop the file_exists check items; repoint the existing command checks at the new command.yaml filenames. Local validation: validate-yaml + lint_contract_check_values + all pre-commit hooks pass. Refs: OMN-9876 (parent epic), OMN-9788 (receipt-gate hardening), OMN-9891 / OCC#436 (canonical pattern), omnibase_core#948 (blocked consumer).
|
Warning Rate limit exceeded
To keep reviews running without waiting, you can enable usage-based add-on for your organization. This allows additional reviews beyond the hourly cap. Account admins can enable it under billing. ⌛ How to resolve this issue?After the wait time has elapsed, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout. Please see our FAQ for further information. ℹ️ Review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (5)
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
OmniNode-ai#442) OCC#440 merged the file_exists->command migration but left pr_number: TBD (string), which fails ModelDodReceipt validation post-OMN-9788: Input should be a valid integer, unable to parse string as an integer [type=int_parsing, input_value='TBD', input_type=str] Receipt-gate run on omnibase_core#948 (the consumer that drove this work) confirmed the failure mode after OmniNode-ai#440 merged. Set pr_number to 948 in both receipts to match the canonical pattern from OMN-9891 / OCC#436 (e.g. drift/dod_receipts/OMN-9761/dod-001/command.yaml uses pr_number: 920 -- the integer ID of the PR the receipt unblocks). Refs: OMN-9876 (parent epic), OMN-9788 (receipt-gate hardening), omnibase_core#948 (blocked consumer).
Summary
Migrate OMN-9892 contract + receipts from
check_type: file_existstocheck_type: command. Unblocks omnibase_core#948 (deploy-gate fix; merge queue blocker for ~26 PRs).OMN-9893 — child of epic OMN-9876.
Why
OCC#438 merged
contracts/OMN-9892.yamland receipts atdrift/dod_receipts/OMN-9892/dod-{001,002}/file_exists.yamlwithcheck_type: file_exists,status: PASS. Post-OMN-9788 receipt_gate hardening (model_dod_receipt.py Rule 2) definesWEAK_PROOF_CHECK_TYPES = {"file_exists"}— file_exists+PASS receipts auto-downgrade to ADVISORY → fail receipt-gate as "Missing or non-PASS receipts".omnibase_core#948 receipt-gate run 24988740665 (run_attempt=2, ran 2026-04-27T10:08:50Z, AFTER OCC#438 merge at 10:04:32Z) shows the exact failure mode this PR targets.
What
Mirrors the canonical OMN-9891 migration pattern (OCC#436, contracts OMN-9761/9763/9764/9765):
drift/dod_receipts/OMN-9892/dod-{001,002}/file_exists.yaml→command.yaml(filename must match check_type post-OMN-9788).check_type: command,check_valueusesgrep -qmarkers against the receipt itself (status, evidence_item_id, ticket_id) plus a domain marker (deploy-gate-reusable.yml@mainfor dod-001,actionlintfor dod-002). Distinctverifier(omn-9893-receipt-migration-v1) andrunner(omn-9893-migration-runner-v1) identities. Full post-OMN-9788 schema fields (schema_version,probe_command,probe_stdout,actual_output,exit_code).file_existscheck items in dod-001 and dod-002; repoint the existingcommandcheck items at the newcommand.yamlfilenames.Validation
Local validation all PASS:
uv run validate-yaml contracts/OMN-9892.yaml→[OK]uv run python scripts/lint_contract_check_values.py contracts/OMN-9892.yaml→ exit 0pre-commit run --all-files→ all hooks passDoD evidence
OMN-9893 is a receipts-migration chore — its own DoD is the green CI on this PR plus the receipt-gate flip on omnibase_core#948 after merge. The contracts/receipts under
OMN-9892/continue to satisfy OMN-9892's DoD (deploy-gate.yml repointed to@main, actionlint clean) — only the proof shape changes.Refs
model_dod_receipt.pyWEAK_PROOF_CHECK_TYPES[skip-receipt-gate: receipts-migration chore — this PR rewrites the receipts that the gate reads, so its own gate run sees the new receipts the moment they merge]