[Bug]: Plan/To-dos panel never auto-closes when the work is done (phase item stays in_progress, panel stuck at 4/5) and the agent cannot clear it
Version line
v2 — Go rewrite (1.x), main-v2 (active development)
Exact version
Observed on Desktop v1.38.7 (build 036c7c50c5c1) and again on v1.38.8; the stale panel is a persistent annoyance rather than a version-specific regression.
What happened?
The plan / To-dos panel above the transcript often stays open after all the work is finished, showing an incomplete count forever (this session's panel reads 4/5 indefinitely), and the user has to ask for it to be closed manually. It is not just cosmetic — it occupies the top of every conversation and the agent appears unable to finish it.
Evidence 1 — the phase item never completes. The persisted plan state for the session that filed this is projects/<slug>/sessions/<session>.goal-state.json. All four sub-steps are completed, but the level-0 phase item is still in_progress:
{
"status": "stopped",
"researchMode": 2,
"deliveryCheckpoint": {},
"todos": [
{
"content": "Filing the CheckUpdate bridge-latency issue on esengine/DeepSeek-Reasonix as Aresitoo",
"status": "in_progress",
"activeForm": "Filing the CheckUpdate bridge-latency issue upstream",
"step_id": "cu_phase_00"
},
{ "content": "Write the issue payload ...", "status": "completed", "level": 1, "step_id": "cu_step_01" },
{ "content": "POST the issue via the server-token SSH pipeline ...", "status": "completed", "level": 1, "step_id": "cu_step_02" },
{ "content": "Verify public visibility ... and delete scratch files", "status": "completed", "level": 1, "step_id": "cu_step_03" },
{ "content": "Record the issue number and status in project memory", "status": "completed", "level": 1, "step_id": "cu_step_04" }
]
}So the panel reports 4/5 because the level-0 item is incomplete, even though every sub-step is done. Either the parent is not derived from its children, or the model's completion of the parent is not persisted. Note also that status is "stopped" while a todo is still in_progress — the two fields disagree.
Evidence 2 — the agent cannot clear it. Attempting to clear the plan from the tool side is rejected:
current todo cannot be cleared while the plan is active; get host approval to replace the planSo there is no supported path for the agent to finish/clear a plan; the only remedy is the user dismissing the widget.
Steps to reproduce
- Have the agent create a multi-step plan (a phase plus sub-steps).
- Let all steps complete.
- Observe: the panel stays open showing
N-1/N(the phase row never completes) and must be dismissed by hand.
Expected behavior
- When every sub-step and the phase are complete, the plan should be marked complete and the panel should auto-collapse/close — or at minimum display 100% and mark the phase as completed.
- The agent should have a supported way to complete or clear a plan, instead of
todo_writewith an empty list being refused with a message about needing host approval.
OS / platform
Windows 10 IoT Enterprise LTSC 10.0.19044, 8 hardware threads, 16 GB RAM
Relevant logs or output
# tool result when the agent tries to clear the finished plan
current todo cannot be cleared while the plan is active; get host approval to replace the plan// projects/<slug>/sessions/<session>.goal-state.json (trimmed)
{"status":"stopped","researchMode":2,"deliveryCheckpoint":{},
"todos":[{"content":"Filing the CheckUpdate bridge-latency issue ...","status":"in_progress","step_id":"cu_phase_00"},
{"content":"...","status":"completed","level":1,"step_id":"cu_step_01"},
{"content":"...","status":"completed","level":1,"step_id":"cu_step_02"},
{"content":"...","status":"completed","level":1,"step_id":"cu_step_03"},
{"content":"...","status":"completed","level":1,"step_id":"cu_step_04"}]}Source: esengine/DeepSeek-Reasonix