- Subagent lifecycle reconciliation now runs behind the 100ms observer UI
coalescing timer; the test advances fake timers instead of asserting
synchronously after emit.
Main removed the floating todoReminderContainer in 112317bc8 (todo
reminders are now anchored inside the scrollback transcript and reset
by renderInitialMessages({clearTerminalHistory: true})), so the added
this.todoReminderContainer.clear() references a property that no longer
exists post-merge, failing typecheck and throwing on every /btw branch.
Revert the interactive-mode hunk and its test, and reword the changelog
entry to cover only the goal-mode todo context fixes.
- Anchors the incomplete-todo reminder block inside the scrollback transcript instead of a floating live container.
- Eliminates duplicate reminder copies piling up in terminal scrollback during terminal reflows.
- Removes the dedicated `todoReminderContainer` and simplifies state synchronization on todo reload.
- Updates tests to verify sequential reminders commit as separate blocks and are left intact when tools succeed.
- Redesigned the Todo HUD as a connector tree with fixed-budget stage previews.
- Anchored status and HUD containers to prevent redundant UI elements in terminal scrollback.
- Implemented tree-based rendering for project phases and tasks while removing dynamic border rules.
- Upgraded `sherpa-onnx` and related packages to support current infrastructure.
The sticky panel above the editor rendered as ambient text:
Todos
└ I. Foundation
└ ☐ ...
so users perceived the bordered tool-result block in chat as the
only todo display. Once that result scrolled into history they
concluded the list 'isn't anchored'.
Bracket the panel with dim horizontal rules (matching BtwPanel /
OmfgPanel) and inline progress + active-phase pointer in the header
(`Todos · 2/7 done · I/III Foundation`) so the persistent HUD reads
as a real panel and stays self-describing without scrolling back.
Fixes#3213
- Renamed `TodoWriteTool` to `TodoTool` and its source/prompt files.
- Updated tool registration, schema, renderers, and gating to `todo`.
- Adjusted cursor provider native tool names and tests to match.
- Renamed strike-animation constants and `todo-error-reminder` type.
Applied tasks.todoClearDelay to the interactive Todos panel without mutating the session todo history used by the model.
Added regression coverage for instant, delayed, and disabled auto-clear behavior.
Fixes#1644