v0.10.0
Highlights
Codex and Cursor sub-agents on the board (#53) — in-process sub-agents from Codex and Cursor now appear nested under their parent session with a type badge, the same way Claude sub-agents do. Neither tool has a SubagentStop-style hook, so discovery happens at board read time: listSessionsForTask links new children as part of the store's read-time refresh, so a fan-out shows up the moment anyone looks at the task.
- Codex — children are recovered from rollout linkage on both ends: the child's
session_metanames its parent thread, and the parent records acollab_agent_spawn_endevent per spawn. Spawns whose rollout isn't on disk yet register under a synthetic locator that upgrades when a later scan finds the file. - Cursor — children are found via the composer's mirrored
subagents/<id>.jsonltranscripts, with sub-agent type resolved from the child composer'ssubagentInfo(or prompt-matching as a fallback on machines without the GUI store).
Redundant belts
trace session scan --codexnow links sub-agent rollouts automatically as a second pass, with zero extra file reads.- Task re-entry sweeps the task's Codex/Cursor root sessions before building the manifest (best-effort — an unreadable transcript never blocks re-entry).
- New
trace session discover-subagents <id>verb runs the right scanner on demand for any tool.
Internals
openTraceStoreaccepts optionalcodexHome/cursorProjectsRootoverrides for pointing discovery at fixtures.setSessionParentaccepts an optionalsubagentType(enrich-not-clobber) so discovery can promote a child a plain scan already registered as a root session.session register/set-parentacceptcursoras a tool.
18 new tests; 831 tests, typecheck, and lint green across the workspace.