Skip to content

chore(OMN-9893): migrate OMN-9892 receipts file_exists→command (unblock #948) - #440

Merged
jonahgabriel merged 1 commit into
mainfrom
jonah/omn-9893-migrate-9892-receipts
Apr 27, 2026
Merged

jonahgabriel merged 1 commit into
mainfrom
jonah/omn-9893-migrate-9892-receipts

Conversation

@jonahgabriel

Copy link
Copy Markdown
Contributor

Summary

Migrate OMN-9892 contract + receipts from check_type: file_exists to check_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.yaml and 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 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):

  • Rename drift/dod_receipts/OMN-9892/dod-{001,002}/file_exists.yaml → command.yaml (filename must match check_type post-OMN-9788).
  • Receipt body: check_type: command, check_value uses grep -q markers against the receipt itself (status, evidence_item_id, ticket_id) plus a domain 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) identities. Full post-OMN-9788 schema fields (schema_version, probe_command, probe_stdout, actual_output, exit_code).
  • Contract: drop the file_exists check items in dod-001 and dod-002; repoint the existing command check items at the new command.yaml filenames.

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 0
  • pre-commit run --all-files → all hooks pass

DoD 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

  • Parent epic: OMN-9876 (deploy-gate stabilization)
  • Hardening source: OMN-9788 / model_dod_receipt.py WEAK_PROOF_CHECK_TYPES
  • Canonical pattern: OMN-9891 / OCC#436 (contracts OMN-9761/9763/9764/9765)
  • Blocked PR: omnibase_core#948
  • Linear: https://linear.app/omninode/issue/OMN-9893

[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]

#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).
@coderabbitai

coderabbitai Bot commented Apr 27, 2026

Copy link
Copy Markdown

Warning

Rate limit exceeded

@jonahgabriel has exceeded the limit for the number of commits that can be reviewed per hour. Please wait 5 minutes and 38 seconds before requesting another review.

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 @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

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 configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: ba273465-1791-48a6-874d-a5fe4c228081

📥 Commits

Reviewing files that changed from the base of the PR and between 75ba798 and 267fc1b.

📒 Files selected for processing (5)
  • contracts/OMN-9892.yaml
  • drift/dod_receipts/OMN-9892/dod-001/command.yaml
  • drift/dod_receipts/OMN-9892/dod-001/file_exists.yaml
  • drift/dod_receipts/OMN-9892/dod-002/command.yaml
  • drift/dod_receipts/OMN-9892/dod-002/file_exists.yaml
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch jonah/omn-9893-migrate-9892-receipts

Comment @coderabbitai help to get the list of available commands and usage tips.

@jonahgabriel
jonahgabriel enabled auto-merge April 27, 2026 10:37
@jonahgabriel
jonahgabriel added this pull request to the merge queue Apr 27, 2026
Merged via the queue into main with commit c42791c Apr 27, 2026
26 checks passed
@jonahgabriel
jonahgabriel deleted the jonah/omn-9893-migrate-9892-receipts branch April 27, 2026 10:55
andywu42 pushed a commit to andywu42/onex_change_control that referenced this pull request Jun 10, 2026
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).
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.

1 participant