(MOT-3875) feat(harness): harness::todo session checklist#419
Conversation
Full-list-replace todo semantics for multi-step coding runs: at most 50 items / 500 chars, exactly one in_progress, persisted to the harness_todo state scope and mirrored into custom session entries (type "todo", fresh entry id per update — session::append is a no-op on repeated ids). In-turn calls get the CALLING session injected at the invocation chokepoint, so a model can never write another session's list. code_mode_policy gains harness::todo and both code prompts teach the discipline; the console renders the latest todo entry as a live checklist card (done-count header, status glyphs).
router::models::get requires a provider hint, so a provider-less send resolved to None (default prompt family) — scan router::models::list by model id instead.
Models trained on TodoWrite-shaped todo tools send { todos: [{ content,
status }] }; serde aliases (todos->items, content->text) accept both
spellings, extra fields like activeForm are ignored as before.
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
skill-check — worker0 verified, 32 skipped (no docs/).
Four for four. Nicely done. |
|
Consolidated into #423. |
feat(harness): harness::todo — the session's live task checklist
Full-list-replace todo semantics for multi-step coding runs: at most 50
items / 500 chars, exactly one in_progress, persisted to the
harness_todo state scope and mirrored into custom session entries
(type "todo", fresh entry id per update — session::append is a no-op
on repeated ids). In-turn calls get the CALLING session injected at the
invocation chokepoint, so a model can never write another session's
list. code_mode_policy gains harness::todo and both code prompts teach
the discipline; the console renders the latest todo entry as a live
checklist card (done-count header, status glyphs).
fix(harness): provider resolution scans the router catalog
router::models::get requires a provider hint, so a provider-less send
resolved to None (default prompt family) — scan router::models::list
by model id instead.
fix(harness): harness::todo accepts TodoWrite-shaped payloads
Models trained on TodoWrite-shaped todo tools send { todos: [{ content,
status }] }; serde aliases (todos->items, content->text) accept both
spellings, extra fields like activeForm are ignored as before.
Fixes MOT-3875