feat: implement issue #2166 — Edited-after-disposition deadlock: fix-reviews never re-dispositions an edited CodeRabbit summary, so pr-review's gate holds the PR forever (#2008 follow-up)

Merged
DO
9d ago
+452-43

Problem

Edited-after-disposition deadlock: fix-reviews never re-dispositions an edited CodeRabbit summary, so pr-review's gate holds the PR forever (#2008 follow-up)

From the issue: 1. CodeRabbit edits its single summary comment in place (progress, rate-limit notices, PR-description changes). 2. pr-review skips with undispositioned-pr-comment because lastEditedAt is later than the latest covering disposition. 3. A fix-reviews pass runs after the edit, but it does not write a fresh disposition for the edited comment. It reports "0 comments required disposition (all resolved or our own automation)". 4. pr-review's own retry hook (bot-comment-retry) only handles comments with no disposition and logs [skip] … dispositioned for these. 5. The sweep's dedup ...

Risk

Low — changes automation shell logic under scripts/, covered by shellcheck (--severity=warning) and the bats suite.

Test plan

Tests added/updated: tests/dev-lead/unit/test_bot_comment_retry.bats,tests/dev-lead/unit/test_dev_lead_retry.bats tests/dev-lead/unit/test_fix_reviews.bats,tests/dev-lead/unit/test_intent_bot_comment_retry.bats tests/dev-lead/unit/test_maintainer_comment_gate.bats. Verification: bash scripts/dev-lead-lint.sh (shellcheck --severity=warning) ran pre-commit; the bats suite runs in CI.

Rollback

Revert this PR. No non-revertible side effects (no tags, migrations, or external state).

Monitoring

This PR's Lint (shellcheck) and bats checks show pass/fail; watch subsequent dev-lead / pr-review runs for behavioral regressions.

Closes #2166