feat: Persistent task management backed by brainfile#459
Closed
1broseidon wants to merge 2 commits intodwash96:v0.97.2from
Closed
feat: Persistent task management backed by brainfile#4591broseidon wants to merge 2 commits intodwash96:v0.97.2from
1broseidon wants to merge 2 commits intodwash96:v0.97.2from
Conversation
ba0fdaa to
04df2fe
Compare
UpdateTodoList now writes to structured task files in .cecli/tasks/board/ instead of a flat .cecli/todo.txt. The agent and user experience is identical — same tool, same prompt, same display — but todos now persist across sessions, maintain history in logs/, and support power-user access via /task commands. Key changes: - UpdateTodoList always routes through CecliTaskStore (single write path) - Session tasks auto-create on first UpdateTodoList call - get_todo_list() auto-resumes incomplete tasks from previous sessions - Task files never leak into agent context (only <context> block visible) - Removed 7 board-only LLM tools (TaskCreate, TaskList, etc.) - Added /task new, removed /task promote - Session save/restore preserves active_task_id - Tasks-only type system (no epic/adr in initial version) - Cached tab completion for task IDs - Passes isort, black, flake8 pre-commit checks
04df2fe to
ef29076
Compare
Author
|
Updates in latest push:
|
Author
|
Pulling back while we rethink the task architecture — separating ephemeral scratchpad (UpdateTodoList) from explicit persistent tasks (/task add, CreateTask tool). The current design conflates both into the same task-N namespace which muddies the UX. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Replaces
.cecli/todo.txtwith structured task files in.cecli/tasks/board/, powered by the brainfile Python library. The agent and user experience is unchanged —UpdateTodoListis still the only tool, the prompt is untouched, and the ✓/○/→ display is identical.What users get for free:
.cecli/tasks/logs/with timestamps/task list,/task show,/task completefor humans who want controlget_todo_list()auto-finds incomplete tasks from previous sessionsHow it works
The board auto-initializes on first
UpdateTodoListcall. No explicit setup. No new LLM tools. The agent never knows brainfile exists.Changes
cecli/brainfile/store.py— New adapter (~640 lines) over brainfile library. Handles task CRUD, session-task binding, context rendering, TUI bar updates.cecli/tools/update_todo_list.py— Collapsed two write paths into one. Always routes through store.cecli/coders/agent_coder.py—get_todo_list()always renders from store. Auto-resumes incomplete tasks.cecli/commands/task.py—/taskcommands for power users: list, add, new, show, open, update, delete, complete, drop.cecli/sessions.py— Saves/restoresactive_task_idin session JSON.cecli/tools/__init__.py— Removed 7 board-only LLM tools (TaskCreate, TaskList, etc.).cecli/tools/utils/registry.py— Removed conditional board-tool gating.cecli/tui/widgets/active_task_bar.py— TUI status bar showing active task progress.Foundation for subagent orchestration
The
.cecli/tasks/directory and brainfile task format also support contracts — structured deliverables, validation commands, and constraints. When subagents land, the parent can create a task with a contract, pass the task ID to the subagent, and the subagent works within that scope. Same files, same library, one-parameter integration:spawn_subagent(task_id="task-2").Test plan
UpdateTodoListauto-creates board + task/task list,/task complete,/task newwork as expectedUpdateTodoListbehavior🤖 Generated with Claude Code