hive-subagent-mcp: a refused continue leaves the session's records alone
`continue_` cleared the stop reason, reset the turn budget and remembered the caller's `dir` before the session lookup ran, and nothing restored them when the lookup refused. With the strict lookup a refusal is an expected outcome (the caller omitted `dir`), so every such retry erased why the session stopped from `status`, gave a capped goal session its budget back, and made the wrong `dir` the remembered one for the next bare `continue`. The lookup now runs first, against the dir peeked rather than committed; only a session that is found gets `State::begin_continue`, which does all three. Same for the ACP path's recorded-session check.
This commit is contained in:
parent
0e015197b6
commit
22ce8b815a
2 changed files with 99 additions and 32 deletions
|
|
@ -214,8 +214,10 @@ no progress left to describe.
|
|||
`continue` looks for the session before it spawns anything. The lookup is
|
||||
the live session titled the name in the project directory of the `dir` in
|
||||
effect: the one passed, or else the one the daemon remembers for the name.
|
||||
No such session refuses the call — nothing spawns and the name stays free
|
||||
for a retry — and the error names the directory searched:
|
||||
No such session refuses the call — nothing spawns, the name stays free
|
||||
for a retry, and the session keeps its `status` (stop reason and turn
|
||||
budget) and its remembered `dir` — and the error names the directory
|
||||
searched:
|
||||
|
||||
```
|
||||
continue error: no session titled `n` under /home/agent/.claude/projects/-home-agent-work; pass the `dir` the session was started in
|
||||
|
|
|
|||
Loading…
Reference in a new issue