dotfiles/pi/extensions/pi-task/README.md

33 lines
1.8 KiB
Markdown

# pi-task
A small, session-scoped task list for Pi. It adds one agent tool, `task`, a
compact widget above the editor, and a progress indicator in the footer.
The tool accepts the complete ordered task list, like Claude's todo tool or
Codex's plan tool. The agent adds, updates, removes, or reorders tasks by
submitting a new list. Omitting the list reads the current state; submitting an
empty list clears it.
Statuses are `pending`, `in_progress`, and `completed`. At most one task can be
in progress at a time.
State is stored in Pi tool-result details. It survives reloads and compaction,
follows session branches correctly, and does not create project files. A new Pi
session starts with an empty list. Calls are serialized, and failed or cancelled
calls do not replace the saved list. Invalid saved snapshots are ignored.
While work is active, the widget uses themed symbols and colors to distinguish
the current task (`●`) from pending tasks (`○`). The footer shows compact
overall progress. When every task is complete, Pi displays a success
notification and removes both the widget and footer indicator to reclaim space.
The completed list remains available in session history.
The agent must call `task` to update statuses; finishing code does not update
items automatically. After compaction or two turns without a task call, Pi gives
the agent a short, temporary reminder of open items. If a run ends with open
items, Pi shows a warning. Neither reminder nor warning marks work complete.
Run `/tasks` to refresh the task UI manually. Run the state regression tests
with `node --experimental-strip-types --test pi/extensions/pi-task/state.test.ts`. Pi
loads the deployed extension from Home Manager, so apply the configuration and
reload Pi to use repository changes in normal sessions.