On boot, Orchestrator.start (nisse-dev/src/nisse_dev/control.py) resumes quietly only from IDLE or an open plan gate. Every other state, PR_OPEN included, is treated as interrupted mid-turn (A3 step 7) and gets the generic restart question.
PR_OPEN is a waiting state like a gate: the PR is published, and the agent waits for review comments or for next milestone / project complete. Per A3 step 8, a restart there should resume the last committed state and say so. Instead:
the operator is asked to 'continue' or 're-plan', and after #57re-plan would plan the milestone again although its PR is open;
continue from PR_OPEN isn't handled specifically. It falls through to re-planning as well, rather than returning to PR_OPEN.
Expected: a restart in PR_OPEN announces 'restarted with PR #N open' and stays in PR_OPEN, with the review poller re-attached (see the companion issue on pollers).
Test: reach PR_OPEN, restart the orchestrator on the same store, and check that the state is still PR_OPEN and next milestone works.
Found while fixing #57.
On boot, `Orchestrator.start` (`nisse-dev/src/nisse_dev/control.py`) resumes quietly only from `IDLE` or an open plan gate. Every other state, `PR_OPEN` included, is treated as interrupted mid-turn (A3 step 7) and gets the generic restart question.
`PR_OPEN` is a waiting state like a gate: the PR is published, and the agent waits for review comments or for `next milestone` / `project complete`. Per A3 step 8, a restart there should resume the last committed state and say so. Instead:
- the operator is asked to 'continue' or 're-plan', and after #57 `re-plan` would plan the milestone again although its PR is open;
- `continue` from `PR_OPEN` isn't handled specifically. It falls through to re-planning as well, rather than returning to `PR_OPEN`.
**Expected:** a restart in `PR_OPEN` announces 'restarted with PR #N open' and stays in `PR_OPEN`, with the review poller re-attached (see the companion issue on pollers).
**Test:** reach `PR_OPEN`, restart the orchestrator on the same store, and check that the state is still `PR_OPEN` and `next milestone` works.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Found while fixing #57.
On boot,
Orchestrator.start(nisse-dev/src/nisse_dev/control.py) resumes quietly only fromIDLEor an open plan gate. Every other state,PR_OPENincluded, is treated as interrupted mid-turn (A3 step 7) and gets the generic restart question.PR_OPENis a waiting state like a gate: the PR is published, and the agent waits for review comments or fornext milestone/project complete. Per A3 step 8, a restart there should resume the last committed state and say so. Instead:re-planwould plan the milestone again although its PR is open;continuefromPR_OPENisn't handled specifically. It falls through to re-planning as well, rather than returning toPR_OPEN.Expected: a restart in
PR_OPENannounces 'restarted with PR #N open' and stays inPR_OPEN, with the review poller re-attached (see the companion issue on pollers).Test: reach
PR_OPEN, restart the orchestrator on the same store, and check that the state is stillPR_OPENandnext milestoneworks.🤖 Generated with Claude Code