Expand description
Session todo list (sticky TUI panel).
Tools write through TodoSink; the host maps that onto crate::todo
events. Storage is session-scoped under .whycodes/todos/<session_id>.json.
Structs§
Enums§
- Todo
Status - Status of one todo item.
Functions§
- all_
terminal - True when every item is completed or cancelled (and the list is non-empty).
- apply_
todo_ update - Merge incoming items into
existingbyid(an id written twice keeps the last). Empty ids always append, under a fresh numeric id so a later update can reach them.merge: falsestarts from an empty list. - apply_
todowrite_ args - Apply a
todowrite/todotool argument object. - has_
open - True when any item is still pending or in progress.
- load_
todos - Load todos. Missing or invalid files yield an empty list.
- progress_
line 2/5 done · next: write tests, orall 5 donewhen nothing is open.- save_
todos - Persist the full list. Creates
.whycodes/.whycodes/todosas needed. - terminal_
count - Completed + cancelled count.
- todo_
warnings - Problems in a list the model just wrote, worded as fixes for it.
- todos_
path - Path of the session todo file.
Type Aliases§
- Todo
Sink - Callback the host (agent loop) installs so
todowritecan reach the TUI.