[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

Author: AresitooCreated Sep 16, 2026Updated Sep 17, 2026
Labelsdesktopv2agentwindows

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:

json
{
  "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 plan

So 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

  1. Have the agent create a multi-step plan (a phase plus sub-steps).
  2. Let all steps complete.
  3. 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_write with 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

bash
# 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
json
// 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