Commit Graph

17 Commits

Author SHA1 Message Date
can1357 2da45f9f9a chore: aligned blocked-todo test, added robomp sandbox scaffolding
- Aligned the blocked-todo reconciliation test with the debounced
  subagent-lifecycle observer on main (fake timers + 100ms advance).
- Carries in-progress robomp queue/sandbox/config scaffolding from the
  shared worktree (.env.example, config.py, queue.py, sandbox.py).
2026-07-23 17:35:35 +02:00
can1357 154d4ace9f Merge PR #4448: feat(todo): add blocked status with block/unblock ops (@mattwilkinsonn)
# Conflicts:
#	packages/coding-agent/src/modes/interactive-mode.ts
#	packages/coding-agent/src/prompts/tools/todo.md
2026-07-23 17:32:43 +02:00
Matt Wilkinson 2f5f4eb91a fix(todo): one-line blocker notes and reconcile blocked subagent todos
Two review findings on the blocked-todo support:

- A blocker `reason` with an embedded newline corrupted the Markdown
  round-trip: `phasesToMarkdown` writes the note as a trailing HTML comment
  on one checklist line, so a newline split it across two lines — the first
  an unclosed `<!-- blocker: …`, the second an unrecognized-syntax error —
  losing the reason on `/todo edit` and export/import. Normalize the reason
  to a single line (collapse whitespace runs) at the `block` op source, so
  the round-trip, HUD, and summary consumers all stay one-line-safe.

- The todo prompt now directs the agent to `block` a task waiting on
  another agent, but `#reconcileTodosWithSubagents` only auto-completed
  pending/in_progress todos. A todo blocked on a detached subagent would
  stay blocked after that subagent completed, and since blocked todos are
  excluded from the stop reminder it stranded silently. Include `blocked`
  in the reconciliation (a matching subagent completing is the unblock
  signal) and drop the now-stale blocker note when completing.

Both paths are revert-proven by new regression tests.

Co-Authored-By: seal <noreply@sealedsecurity.com>
2026-07-10 02:26:47 -04:00
can1357 f75b758c61 test(coding-agent): flushed coalesced observer sync before todo assertion
- Subagent lifecycle reconciliation now runs behind the 100ms observer UI
  coalescing timer; the test advances fake timers instead of asserting
  synchronously after emit.
2026-07-06 09:34:57 +02:00
can1357 727bcf1401 fix: drop superseded /btw todo-reminder HUD clear
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.
2026-07-02 10:30:12 +02:00
can1357 4940a053ad merge PR #3777: Fix todo HUD and goal context follow-ups (@jeffscottward) 2026-07-02 10:30:12 +02:00
can1357 112317bc8e fix(coding-agent): resolved duplicate todo reminders in terminal scrollback
- 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.
2026-06-30 23:32:58 +02:00
Jeff Scott Ward ac4d624495 fix: address todo follow-up review 2026-06-29 11:58:40 -04:00
Jeff Scott Ward f2b760a163 fix: clear todo reminder on btw branch 2026-06-29 11:58:40 -04:00
Jeff Scott Ward 917d2834a3 fix: address todo reminder review feedback 2026-06-28 12:03:06 -04:00
Jeff Scott Ward 9a9dc88f43 fix: address todo HUD review feedback 2026-06-28 11:16:30 -04:00
Jeff Scott Ward dd917046d8 fix: anchor todo reminder HUD 2026-06-28 11:09:16 -04:00
can1357 53276368cb feat(coding-agent): redesigned the Todo HUD as a connector tree
- 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.
2026-06-27 04:14:13 +02:00
roboomp 8a2c90a48c fix(coding-agent): anchored todo HUD with borders and progress header
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
2026-06-21 22:38:20 +00:00
can1357 9d457f73d9 test: migrated test imports to package subpath exports
- Replaced relative `../src` imports with `@oh-my-pi/pi-ai` and `@oh-my-pi/pi-agent-core` subpaths.
2026-06-08 19:03:55 +02:00
can1357 dc4aeb7b88 refactor(coding-agent): renamed todo_write tool to todo
- 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.
2026-06-04 02:45:30 +02:00
roboomp 1ed0b8d740 fix(tui): honored todo clear delay
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
2026-06-01 15:12:53 +00:00