Repository navigation
fix(OMN-14350): CI-enforce non-canonical ratchet (dedicated workflow) - #2259
Conversation
Add the dedicated blocking noncanonical-lifecycle-gate.yml (uniform with market/claude/spi/compat) so the ratchet is a real merge-gating CI check, not just an advisory pre-commit hook. Drop the now-stale HOLD-placeholder comment (SHA pinned, PR live). Pinned to core dev @63635097705d832e0ee9c4811093efb31349105c.
📝 WalkthroughWalkthroughAdds an unconditional CI job for noncanonical lifecycle-class validation, pins its Python and ChangesNoncanonical lifecycle validation
Estimated code review effort: 2 (Simple) | ~10 minutes Possibly related PRs
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Comment |
… gate) The standalone noncanonical-lifecycle-gate.yml ran green but GATED NOTHING — it wasn't in required_status_checks and CI Summary (the required gate) didn't depend on it (separate workflow = separate run, invisible to the CI Summary poller). Move the ratchet INTO ci.yml as a job + register it in scripts/ci/ci_summary_gate.py STRICT_GATE_JOBS so CI Summary WAITS for it and requires success — a red ratchet now fails the required 'CI Summary' check. Chose STRICT_GATE_JOBS over the default-deny sweep because the sweep only inspects COMPLETED jobs: a fast ratchet finishing after the slow gates could let CI Summary pass before the ratchet reports (race). Strict = no race. Delete the now-redundant standalone workflow. gate-script unit tests pass (21).
There was a problem hiding this comment.
Actionable comments posted: 1
🧹 Nitpick comments (1)
.github/workflows/ci.yml (1)
1545-1574: 🔒 Security & Privacy | 🔵 Trivial | ⚡ Quick winPin the remaining actions in this job
actions/setup-python@v6andastral-sh/setup-uv@v7are still tag-pinned; pin them to release SHAs likeactions/checkoutin the same job.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In @.github/workflows/ci.yml around lines 1545 - 1574, Pin the remaining third-party actions in the no-noncanonical-lifecycle-classes job to immutable release commit SHAs. Update the actions/setup-python and astral-sh/setup-uv uses entries, preserving their current release versions as comments and leaving the checkout step unchanged.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In @.pre-commit-config.yaml:
- Around line 72-74: Update the comment in the pre-commit configuration to
reference the ratchet’s integration in ci.yml, specifically the
no-noncanonical-lifecycle-classes job and its STRICT_GATE_JOBS registration in
ci_summary_gate.py, instead of the removed standalone workflow file.
---
Nitpick comments:
In @.github/workflows/ci.yml:
- Around line 1545-1574: Pin the remaining third-party actions in the
no-noncanonical-lifecycle-classes job to immutable release commit SHAs. Update
the actions/setup-python and astral-sh/setup-uv uses entries, preserving their
current release versions as comments and leaving the checkout step unchanged.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro
Run ID: 175fb8bd-f169-491c-baab-3978cc341347
📒 Files selected for processing (3)
.github/workflows/ci.yml.pre-commit-config.yamlscripts/ci/ci_summary_gate.py
OMN-14350 — CI-enforce the non-canonical ratchet (omnibase_infra, fix-forward)
Follow-up to the merged fan-out: the ratchet was pre-commit-hook-only and omnibase_infra runs pre-commit by-changed-files / by-id in CI, so the hook never ran on the merge path (Rule-#5 gap; a missing gate shows no red check, so nothing blocked the original merge). This adds the dedicated blocking
.github/workflows/noncanonical-lifecycle-gate.ymljob — the same one already CI-green on market/claude/spi/compat — so the ratchet is a real merge gate.dod_evidence
uv run --no-project --with 'omnibase-core @ git+...@63635097705d832e0ee9c4811093efb31349105c' python -m ...no_noncanonical... --check-staleonpull_request, no OCC dependency; proven green on 4 sibling repos.Closes OMN-14350 (CI-enforcement follow-up).
Summary by CodeRabbit
Evidence-Source: OCC#3931
Evidence-Commit: d8b547b6ed70deae40fb70b9a6be2b2b492cb5c6
Evidence-Ticket: OMN-14350