- Update MRStatus to use beads-style statuses (open, in_progress, closed) - Add CloseReason enum for tracking why MRs were closed - Implement ValidateTransition() to enforce valid state transitions: - open → in_progress (Engineer claims MR) - in_progress → closed (merge success or rejection) - in_progress → open (failure, reassign to worker) - open → closed (manual rejection) - closed → anything is blocked (immutable once closed) - Add convenience methods: Claim(), Close(), Reopen(), SetStatus() - Add status check methods: IsClosed(), IsOpen(), IsInProgress() - Update ProcessMR and completeMR to use new state transition methods - Update display code to handle new status values - Add comprehensive tests for state transitions Reference: docs/merge-queue-design.md#state-machine 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
8.0 KiB
8.0 KiB