Fix phase-merge and batch-implement for projects without CI #360

Merged
mprihoda merged 1 commit from fix-phase-merge-no-ci into main 2026-04-17 13:41:03 +00:00
mprihoda commented 2026-04-17 13:10:36 +00:00 (Migrated from github.com)

Summary

  • GitHubClient.fetchCheckStatuses: treat gh's "no checks reported on the '' branch" error as Right(Nil) so phase-merge reaches the existing NoChecksFound → proceed-with-merge path
  • batch-implement pre-flight: partition dirty paths into workflow state (under project-management/issues/<id>/) vs user code via the new pure WorkflowStatePaths.partition helper; auto-commit state-only dirt so re-entry works after an interrupted run, and only block on user-owned changes

Motivation

Reported by Michal: a batch-implement run on IW-344 committed a PR, phase-merge failed because the project has no CI (gh exits non-zero with "no checks reported"), the run left review-state.json modified, and then re-running batch-implement was blocked by its own state file.

Test plan

  • Added fetchCheckStatuses returns Right(Nil) when gh reports 'no checks reported' — failing before the fix, passing after
  • Added WorkflowStatePathsTest covering mixed paths, other-issue state paths, empty input
  • Pre-commit format check + core compilation with -Werror pass
  • Pre-push unit tests + command compilation pass

🤖 Generated with Claude Code

## Summary - `GitHubClient.fetchCheckStatuses`: treat gh's "no checks reported on the '<branch>' branch" error as `Right(Nil)` so `phase-merge` reaches the existing `NoChecksFound → proceed-with-merge` path - `batch-implement` pre-flight: partition dirty paths into workflow state (under `project-management/issues/<id>/`) vs user code via the new pure `WorkflowStatePaths.partition` helper; auto-commit state-only dirt so re-entry works after an interrupted run, and only block on user-owned changes ## Motivation Reported by Michal: a batch-implement run on `IW-344` committed a PR, `phase-merge` failed because the project has no CI (gh exits non-zero with "no checks reported"), the run left `review-state.json` modified, and then re-running batch-implement was blocked by its own state file. ## Test plan - [x] Added `fetchCheckStatuses returns Right(Nil) when gh reports 'no checks reported'` — failing before the fix, passing after - [x] Added `WorkflowStatePathsTest` covering mixed paths, other-issue state paths, empty input - [x] Pre-commit format check + core compilation with `-Werror` pass - [x] Pre-push unit tests + command compilation pass 🤖 Generated with [Claude Code](https://claude.com/claude-code)
Sign in to join this conversation.
No description provided.