[worktree-20260606-211401] fix(coverage): narrow A3b self-merge guard to genuine merge nodes (bug 374f)#701
Conversation
…-gate enforce Story 3ee4 (Option A enforce-flip) + cca8 DD2 riding the go-live. - required-checks.txt: merge-pipeline-checks OUT, review-gate IN (llm-review retained) - review-gate.yml: DSO_REVIEW_GATE_MODE warn -> enforce - update-required-checks-manifest.sh / promote-ruleset-required.sh: MAIN staged check swapped to review-gate (+ their tests). The merge-pipeline-checks JOB is retained in ci.yml (still fires on the sub-PR path); it is removed only from the MAIN ruleset required set. Live ruleset 15629023 provisioned (admin, atomic surgical PATCH): review-gate IN / merge-pipeline-checks OUT, required_linear_history added, allowed_merge_methods=[rebase], bypass identity 207596960 preserved. R5/R8 roundtrip green post-provision; ruleset-design-invariants green under the non-admin identity (I4/I7 = never). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…g 374f) rc_sha_is_reviewed wrongly marked the rebased version-bump tip UNREVIEWED under enforce: after cca8 DD1 (rebase-not-merge) GitHub sets a rebase-merged PR's merge_commit_sha to the 1-parent rebased tip, which the blanket A3b guard excluded -> every promotion wedged (surfaced on the 3ee4 enforce-flip go-live PR2). - Extract shared rc_a3b_should_exclude(sha, mcs_match): exclude a covering PR whose merge_commit_sha == sha ONLY for a genuine >=2-parent merge node; a proven 1-parent rebase/squash tip keeps its covering-PR evidence (G3 still re-verifies the review). Fail-closed on unknown topology (0 parents / shallow boundary / absent SHA). - Route BOTH Goal-1 covering-PR filters through it: rc_sha_is_reviewed AND the G3 routine in verify-session-provenance.sh (bug 98d9) -> the A3b decision cannot diverge between the twins by construction. - Tests: T14 (1-parent tip == merge_commit_sha -> reviewed), T15 (>=2-parent evil merge -> still excluded), new test-rc-a3b-should-exclude.sh (6 cases incl. fail-closed). 4-lens panel + convergence APPROVED (epic 588e protocol). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
DSO-Story: worktree-20260606-211401
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: ASSERTIVE Plan: Pro Run ID: 📒 Files selected for processing (11)
WalkthroughThis PR migrates the merge-gate mechanism from ChangesMerge-gate transition with topology-aware self-merge handling
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~25 minutes Possibly related PRs
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
…ic 588e SC6) DD1: PR1 title is derived from the branch's meaningful commit subject via _derive_pr_title (staged: prefix retained), not the generic branch-arrow form. DD2: sprint draft umbrella body documents the long-lived lifecycle (closed at /dso:end-session or epic completion; not itself merged; retained under Option A). DD3: re-baselined the merge-to-main-pr.sh PR1-title edit against current main. DD4: docs reflect the enforced architecture — CI-INTEGRATION.md + HOOKS-REFERENCE.md (merge-pipeline-checks no longer a main required check; review-gate is the always-runs fail-closed gate), WORKFLOW-STABILITY-CHECKS.md (admin go-live COMPLETED), and check-ruleset-preflight.sh now asserts review-gate IN + required_linear_history on main (the prior MAIN_HAS_LINEAR assertion was inverted by the cca8 cutover) + new MAIN_MISSING_REVIEW_GATE / MAIN_MISSING_LINEAR verdicts. DD5: ADR-0020 gains an Execution results section (enforce-flip landed PR #701, E6'/E2/E3/E8 outcomes, exit-78 fix, linear-history cutover, bug 374f + FP-recovery, ADR-0022 identity exemption, panel/cost record). Tests: t_pr1_title_is_descriptive (merge-to-main), preflight MAIN_MISSING_REVIEW_GATE + MAIN_MISSING_LINEAR, sprint-draft umbrella body, staged-intermediate source guard. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…ic 588e SC6) DD1: PR1 title is derived from the branch's meaningful commit subject via _derive_pr_title (staged: prefix retained), not the generic branch-arrow form. DD2: sprint draft umbrella body documents the long-lived lifecycle (closed at /dso:end-session or epic completion; not itself merged; retained under Option A). DD3: re-baselined the merge-to-main-pr.sh PR1-title edit against current main. DD4: docs reflect the enforced architecture — CI-INTEGRATION.md + HOOKS-REFERENCE.md (merge-pipeline-checks no longer a main required check; review-gate is the always-runs fail-closed gate), WORKFLOW-STABILITY-CHECKS.md (admin go-live COMPLETED), and check-ruleset-preflight.sh now asserts review-gate IN + required_linear_history on main (the prior MAIN_HAS_LINEAR assertion was inverted by the cca8 cutover) + new MAIN_MISSING_REVIEW_GATE / MAIN_MISSING_LINEAR verdicts. DD5: ADR-0020 gains an Execution results section (enforce-flip landed PR #701, E6'/E2/E3/E8 outcomes, exit-78 fix, linear-history cutover, bug 374f + FP-recovery, ADR-0022 identity exemption, panel/cost record). Tests: t_pr1_title_is_descriptive (merge-to-main), preflight MAIN_MISSING_REVIEW_GATE + MAIN_MISSING_LINEAR, sprint-draft umbrella body, staged-intermediate source guard. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…ic 588e SC6) DD1: PR1 title is derived from the branch's meaningful commit subject via _derive_pr_title (staged: prefix retained), not the generic branch-arrow form. DD2: sprint draft umbrella body documents the long-lived lifecycle (closed at /dso:end-session or epic completion; not itself merged; retained under Option A). DD3: re-baselined the merge-to-main-pr.sh PR1-title edit against current main. DD4: docs reflect the enforced architecture — CI-INTEGRATION.md + HOOKS-REFERENCE.md (merge-pipeline-checks no longer a main required check; review-gate is the always-runs fail-closed gate), WORKFLOW-STABILITY-CHECKS.md (admin go-live COMPLETED), and check-ruleset-preflight.sh now asserts review-gate IN + required_linear_history on main (the prior MAIN_HAS_LINEAR assertion was inverted by the cca8 cutover) + new MAIN_MISSING_REVIEW_GATE / MAIN_MISSING_LINEAR verdicts. DD5: ADR-0020 gains an Execution results section (enforce-flip landed PR #701, E6'/E2/E3/E8 outcomes, exit-78 fix, linear-history cutover, bug 374f + FP-recovery, ADR-0022 identity exemption, panel/cost record). Tests: t_pr1_title_is_descriptive (merge-to-main), preflight MAIN_MISSING_REVIEW_GATE + MAIN_MISSING_LINEAR, sprint-draft umbrella body, staged-intermediate source guard. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Commits
Auto-generated by merge-to-main-pr.sh from
git log --no-merges origin/main..HEAD.Summary by CodeRabbit
New Features
Bug Fixes
Chores
review-gateinstead of previous check.