forked from heavy-duty/rig
Round 2 review (claude-bot, codex-bot — both raised this, independently). The `return` added in round 1 aborted all of reconcile_pr, not just the label edit. Everything below it is independent of the state:* taxonomy: `merge-next` clearing and the stale sweep both stopped running. So a cold-start repo left `merge-next` claiming "merge this one next" on a PR the board had moved to the agent — the original false-invitation bug, reintroduced inside the very fix meant to survive a cold start. It was also a regression against main, not just a missed improvement: the old code failed the `gh issue edit`, logged, and fell through to both blocks. Round 1 turned a per-edit failure into a per-PR abort. Now a `skip_edit` flag skips only the edit and control reaches the rest. Also from review: drop the dead `"$desired"` term from the filter loop (it was appended and then unconditionally continued past), and turn `[ -n "$missing" ] && log` into a proper `elif` rather than an &&-as-statement under `set -e`. Adds the first four fixtures that exercise reconcile_pr itself, stubbing run/gh to probe a cold-start repo against a bootstrapped one. Everything before this tested pure functions, which is exactly why a per-PR return got through: nothing could see it. Fixtures 68 -> 72. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| labels-reconcile.sh | ||
| release-lib.sh | ||