Persist merge intent so a restart mid-merge-turn doesn't lose it

This commit is contained in:
Ian Gulliver
2026-10-15 10:16:32 -07:00
parent 184bfe429e
commit c934b00737
6 changed files with 106 additions and 20 deletions
-2
View File
@@ -2,8 +2,6 @@
- Question answers given while the agent is working get lost
Answering an inbox question while the task's agent is mid-turn sometimes never reaches the agent. Answers are meant to be held and delivered as one message once the session is idle with no blocking question still waiting (`Deliver` in `internal/agents/inbox.go`, called when a turn ends). Find the path where a held answer is dropped. Byre restarts often while agents deploy, and a restart cuts the turn off and resumes it with the restart notice (`Recover` in `internal/agents/manager.go`), so check that path first. Add debugging output before changing code.
- Merge is forgotten if the human switches tasks before the merge turn ends
Clicking Merge starts a merge-in turn and records, in memory only, that the task is to be squashed when that turn ends (`m.merges` in `internal/agents/mergein.go`, read by `takeMerge` at turn end). The human then switched to another task, and when the turn finished nothing was merged. Switching tasks in the UI shouldn't affect server state, so the likelier cause is that byre restarted during the turn, which loses the in-memory intent (as described under "Closing a task" in `docs/operations.md`). Confirm the cause, and make the merge intent survive until the turn ends.
# M1 — One agent end to end