Skip to content

ci(OMN-14226): omnimarket occ-preflight delegates to canonical reusable (kill stale-event-body reruns) - #1663

Merged
jonahgabriel merged 1 commit into
devfrom
jonah/omn-14226-occ-preflight-thin-caller
Jul 10, 2026
Merged

jonahgabriel merged 1 commit into
devfrom
jonah/omn-14226-occ-preflight-thin-caller

Conversation

@jonahgabriel

@jonahgabriel jonahgabriel commented Jul 10, 2026 •

Copy link
Copy Markdown
Contributor

OMN-14226 — omnimarket occ-preflight delegates to canonical reusable

Closes OMN-14226

Problem

omnimarket's .github/workflows/call-occ-preflight.yml was a ~113-line standalone reimplementation of OCC-preflight — the lone outlier. omnibase_infra, omnibase_core, omniclaude, and onex_change_control all delegate to the canonical reusable via uses:. The standalone read the PR body from the frozen triggering-event payload (PR_BODY: ${{ github.event.pull_request.body }}) with no live refresh, so a PR body corrected after the event fired kept failing against the stale body — forcing manual reruns (Codex merge-controller's #1 toil source).

Fix

Replace the standalone body with a thin caller delegating to OmniNode-ai/omnibase_core/.github/workflows/occ-preflight.yml@main. The reusable resolves the PR body LIVE (gh pr view --json body, event-payload fallback only if that fails), eliminating the stale-event-body rerun waves. call-occ-preflight.yml: 113 → 56 lines (30 insertions / 87 deletions; eligibility shell logic collapsed to a 6-line uses: block, the remainder is documentation header).

Required-context contract (the one sharp edge — preserved)

  • omnimarket dev required status check = CI Summary (verified via gh api .../branches/dev/protection/required_status_checks). occ-preflight is not directly required but is load-bearing: ~40 omnimarket workflows poll select(.name == "occ-preflight / eligibility") and gate via needs: occ-preflight, and ci.yml's CI Summary rollup depends on occ-preflight.result.
  • The thin caller preserves the exact check-run name: caller job id occ-preflight (no name: override) + the reusable's eligibility job compose to occ-preflight / eligibility — identical to the standalone's name: occ-preflight / eligibility. This is exactly why every sibling documents "Required status check name: occ-preflight / eligibility".

Trigger notes

  • pull_request types [opened, synchronize, reopened, ready_for_review, edited] retained. edited drives the OCC autobind self-heal (OMN-13990 D2): the Evidence-Source: OCC#<n> PATCH re-fires eligibility immediately instead of waiting for an unrelated push.
  • merge_group intentionally omitted — omnimarket dev has no merge queue configured (mergeQueue: null), so it would never fire. The @main sibling template includes it; documented in the file header.

Verification

  • workflow-module-refs pre-commit hook: PASS (in-repo refs still resolve).
  • YAML parses; job id occ-preflight with no name: override confirmed; uses: ...@main; inputs contracts-dir: contracts, receipts-dir: drift/dod_receipts.
  • Post-open: confirm the surfaced OCC-preflight check reports as occ-preflight / eligibility (MATCHES the required-context contract).

OCC evidence

Evidence-Ticket: OMN-14226
Evidence-Source: OCC#3778
Evidence-Commit: 4a7034470dc52c22063c8327e02c023b8083ca40

Notes for reviewer / verifier

  • Draft PR — not arming/merging (Codex owns the merge queue).
  • Workflow-only change. Reporting whether occ-preflight/receipt-gate demand an Evidence-Source: OCC#<n> companion on this PR; per policy the implementing agent does not self-author the OCC companion — an independent verifier authors it if required.

…le (kill stale-event-body reruns)

Replace omnimarket's ~113-line standalone OCC-preflight reimplementation with a
thin caller that delegates to the canonical reusable
OmniNode-ai/omnibase_core/.github/workflows/occ-preflight.yml@main — the same
pattern omnibase_infra, omnibase_core, omniclaude, and onex_change_control
already use. omnimarket was the lone outlier.

Root cause fixed: the standalone body read PR_BODY from the frozen triggering
event payload (github.event.pull_request.body), so a PR body corrected AFTER the
event fired kept failing against the stale body until a manual rerun. The
reusable resolves the PR body LIVE (gh pr view; event-payload fallback only if
that fails), eliminating the stale-event-body rerun waves.

Required-context preserved: caller job id 'occ-preflight' + the reusable's
'eligibility' job compose to the check-run name 'occ-preflight / eligibility' —
the exact name ~40 omnimarket workflows poll for and gate on via needs:, and
that ci.yml's CI Summary rolls up. Job intentionally carries no name: override.

Triggers: pull_request [opened, synchronize, reopened, ready_for_review, edited]
retained (edited drives the OCC autobind self-heal, OMN-13990 D2). merge_group
omitted — omnimarket dev has no merge queue configured, so it would never fire.
@coderabbitai

coderabbitai Bot commented Jul 10, 2026 •

Copy link
Copy Markdown

Warning

Review limit reached

You’ve reached a temporary PR review limit under our Fair Usage Limits Policy.

Your recent review volume is higher than typical usage, so adaptive limits are currently applied.

Next review available in: 54 minutes

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: e5f04458-365e-4b51-af75-1a9ab1531f3c

📥 Commits

Reviewing files that changed from the base of the PR and between e8594b7 and e9eea33.

📒 Files selected for processing (1)
  • .github/workflows/call-occ-preflight.yml
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch jonah/omn-14226-occ-preflight-thin-caller

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

@jonahgabriel
jonahgabriel marked this pull request as ready for review July 10, 2026 00:56
@jonahgabriel
jonahgabriel merged commit 6019140 into dev Jul 10, 2026
102 of 139 checks passed
@jonahgabriel
jonahgabriel deleted the jonah/omn-14226-occ-preflight-thin-caller branch July 10, 2026 01:08
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