[FEATURE] Make TodoWrite items clickable to jump to the originating message
Summary
TodoWrite items rendered in the VSCode extension sidebar are read-only text. When a conversation produces many todos, there's no way to navigate from a todo to the place in the conversation where it was worked on — you have to scroll up and visually scan for the matching content.
Proposed change
Make each todo item clickable. Clicking a todo would scroll the conversation to the message where the todo was created or last updated (whichever anchor makes most sense).
Implementation could be an optional messageRef field on each todo item, populated by the harness when the status transitions, and rendered as an anchor by the extension UI:
{
"content": "Run database migration",
"activeForm": "Running database migration",
"status": "completed",
"messageRef": "msg_01abc..." // set by the harness, not the model
}
Why
For any workflow that produces more than a handful of todos, scrolling back to the relevant message is currently the slowest part of reviewing work after the fact. The todo list already serves as an outline of what happened — clicking through to the detail is the obvious next step.
Non-goals
- The model shouldn't have to author the ref — it should be stamped by the harness automatically.
- Backward compatible: skips/no-ops if the field is absent.
Alternatives considered
- ctrl-F on the message text (works but depends on the model picking findable strings)
- Persistent todo sidebar panel (#59195) — orthogonal; addresses pinning, not navigation
This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗