Repository navigation
ci(OMN-14226): omnimarket occ-preflight delegates to canonical reusable (kill stale-event-body reruns) - #1663
Conversation
…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.
|
Warning Review limit reachedYou’ve reached a temporary PR review limit under our Fair Usage Limits Policy. Next review available in: 54 minutes Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available. How can I continue?After more reviews become available, a review can be triggered using the 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 configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (1)
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
OMN-14226 — omnimarket occ-preflight delegates to canonical reusable
Closes OMN-14226
Problem
omnimarket's
.github/workflows/call-occ-preflight.ymlwas a ~113-line standalone reimplementation of OCC-preflight — the lone outlier.omnibase_infra,omnibase_core,omniclaude, andonex_change_controlall delegate to the canonical reusable viauses:. 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-lineuses:block, the remainder is documentation header).Required-context contract (the one sharp edge — preserved)
omnimarketdev required status check =CI Summary(verified viagh api .../branches/dev/protection/required_status_checks). occ-preflight is not directly required but is load-bearing: ~40 omnimarket workflows pollselect(.name == "occ-preflight / eligibility")and gate vianeeds: occ-preflight, andci.yml'sCI Summaryrollup depends onocc-preflight.result.occ-preflight(noname:override) + the reusable'seligibilityjob compose toocc-preflight / eligibility— identical to the standalone'sname: occ-preflight / eligibility. This is exactly why every sibling documents "Required status check name: occ-preflight / eligibility".Trigger notes
pull_requesttypes[opened, synchronize, reopened, ready_for_review, edited]retained.editeddrives the OCC autobind self-heal (OMN-13990 D2): theEvidence-Source: OCC#<n>PATCH re-fires eligibility immediately instead of waiting for an unrelated push.merge_groupintentionally omitted — omnimarket dev has no merge queue configured (mergeQueue: null), so it would never fire. The@mainsibling template includes it; documented in the file header.Verification
workflow-module-refspre-commit hook: PASS (in-repo refs still resolve).occ-preflightwith noname:override confirmed;uses: ...@main; inputscontracts-dir: contracts,receipts-dir: drift/dod_receipts.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
occ-preflight/receipt-gatedemand anEvidence-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.