Repository navigation
fix(OMN-15698): hotfix-base fallback for validator ref resolution - #6122
Conversation
|
Warning Review limit reachedYou’ve reached a temporary PR review limit under our Fair Usage Limits Policy. Next review available in: 57 minutes Limit details: You’ve used all 1 included review currently available under your plan. You completed 114 included PR reviews in the past 7 days; at that activity level, included reviews refill at 1 review per hour. 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 (7)
Comment |
|
OCC autobind did not mint a companion for this PR: no changed-file candidate could be proven RED against the merge base, and emitting a PR-existence probe instead would be non-falsifiable evidence (OMN-15247). Hand-authored evidence is required. |
|
OCC autobind stood down for |
bea1c94 to
2d3c7df
Compare
R3a (OMN-15689) resolves the omnibase_core/omnibase_compat validator ref dynamically from the PR base branch, with no fallback. A hotfix-targeted onex_change_control PR whose base branch name doesn't also exist in omnibase_core/omnibase_compat fails the checkout step hard. Option A (this change): when the resolved ref matches hotfix/** AND a branch-existence probe against that dependency repo returns not-found, fall back to the repo's own default branch (resolved dynamically via the GitHub API, never a hardcoded @main/@dev literal). dev/main paths are untouched — resolved_ref never matches hotfix/** there, so core_ref/ compat_ref stay identical to resolved_ref and the checkout fails closed exactly as before. Decision: propose-and-proceed. Option B (accept the fail-closed posture permanently, won't-fix, citing the bounded-blast-radius argument already in each workflow's on: comment block — hotfix bases carry no branch protection, non-dev-base-guard requires a Stacked-Parent: declaration on hotfix-targeted PRs) remains available to the operator on review.
9a2e578 to
97c71d6
Compare
Summary
OMN-15689 (R3a) resolves the
omnibase_core/omnibase_compatvalidator ref dynamically from the PR's base branch, with no fallback (deliberate fail-closed per the operator ruling — no hardcoded ref anywhere). Bothcall-receipt-gate.ymlandcall-occ-preflight.ymlstill trigger onhotfix/**base branches. A hotfix-targeted PR here whose base branch name doesn't also exist as a branch name inomnibase_core/omnibase_compatfails the checkout step hard instead of producing a real gate verdict onverify / verify/occ-preflight / eligibility.Decision: propose-and-proceed, Option A (the ticket's scoping comment framed two options; this session decided A). Option B — accept the fail-closed posture permanently and close as won't-fix, citing the bounded-blast-radius argument already documented in each workflow's
on:comment block (hotfix bases carry no branch protection;non-dev-base-guardalready requires aStacked-Parent:declaration on hotfix-targeted PRs) — remains available to the operator on review of this PR.Change
In the
validator_refstep of both workflows: after resolvingresolved_reffrom the PR base ref / merge_group base ref (unchanged, still fails closed with no fallback if unresolvable), add a scoped fallback:resolved_refmatcheshotfix/**, probeomnibase_core/omnibase_compatfor a branch of that exact name (gh api repos/OmniNode-ai/<repo>/branches/<ref>).gh api repos/OmniNode-ai/<repo> --jq '.default_branch'— never a hardcoded@main/@devliteral (mirrors the existingresolve_occ_default_branchpattern already incall-receipt-gate.yml).core_ref/compat_reffeed the two downstream checkout steps (previously both consumed the singlerefoutput directly).dev/main paths are untouched and byte-identical:
resolved_refnever matcheshotfix/**for those targets, socore_ref/compat_refstay identical toresolved_refand a dev/main base ref absent fromomnibase_core/omnibase_compatstill fails the checkout step hard, exactly as before this change.Seam definition
steps.validator_ref.outputs.core_ref(str, branch name) andsteps.validator_ref.outputs.compat_ref(str, branch name) — replace the prior singlesteps.validator_ref.outputs.refas the checkoutref:input for the omnibase_core and omnibase_compat checkout steps respectively, in bothcall-receipt-gate.ymlandcall-occ-preflight.yml.steps.validator_ref.outputs.refis retained unchanged (still the raw resolved PR-base/merge_group ref) — no other step consumes it, so nothing downstream needed updating.GH_TOKEN: ${{ github.token }}on thevalidator_refstep (required for thegh apibranch-existence probes and default-branch lookups; same token already used by the siblingresolve_occ_default_branchstep).Files
.github/workflows/call-receipt-gate.yml(validator_refstep; omnibase_compat/omnibase_core checkout steps).github/workflows/call-occ-preflight.yml(validator_refstep; omnibase_compat/omnibase_core checkout steps)References
OMN-15698 (this ticket) · OMN-15689 (parent ruling, R3a) · scoping comment on OMN-15698 (Option A/B framing, live-verified line numbers)
Verification
python3 -c "import yaml; yaml.safe_load(open(f))"on both files — OKpre-commit run --all-fileson the two changed files — all applicable hooks passed (yamlfmt ratchet, no-hardcoded-topics, fork-aware-runner-routing, skip-vector guards, etc.)Evidence-Ticket: OMN-15698
Evidence-Source: OCC#6130