From the prime-agent analysis (daemon-session-summarizer.ts). Their agents dashboard runs a cheap model over each session's last ~8 messages (600 chars each, tool calls by name only) on a slow sweep with a settle debounce, emitting a one-line recap plus NEEDS_INPUT|COMPLETED — silently disabled when no auth exists for the cheap model.
graff fit: maps directly onto the agent-overview GUI panel (gui/src/components/agent-overview/). Per the TUI-first rule, define the event in the protocol first: a session_recap event in the --json stream (schema.zig), produced harness-side, consumed by GUI and TUI alike.
Notes: strict input bounds (message count, chars, tool calls by name) keep it cheap; debounce so streaming turns don't thrash it; degrade to a heuristic (last event kind) when no cheap model is available.
From the prime-agent analysis (
daemon-session-summarizer.ts). Their agents dashboard runs a cheap model over each session's last ~8 messages (600 chars each, tool calls by name only) on a slow sweep with a settle debounce, emitting a one-line recap plusNEEDS_INPUT|COMPLETED— silently disabled when no auth exists for the cheap model.graff fit: maps directly onto the agent-overview GUI panel (gui/src/components/agent-overview/). Per the TUI-first rule, define the event in the protocol first: a
session_recapevent in the --json stream (schema.zig), produced harness-side, consumed by GUI and TUI alike.Notes: strict input bounds (message count, chars, tool calls by name) keep it cheap; debounce so streaming turns don't thrash it; degrade to a heuristic (last event kind) when no cheap model is available.