Session match types beyond cwd: parent / subagent lineage from JSONL #63
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally filed by @coilysiren on 2026-05-05T07:26:57Z - https://github.com/coilysiren/repo-recall/issues/48
Context
session_repos.match_typeis documented inAGENTS.mdas the extension point for additional session-to-repo signals beyond'cwd'. Right now a Claude Code session that fans out into 3 Explore subagents, a Plan subagent, and a code-reviewer subagent appears as 5 indistinguishable rows on the repo page. The parent / child relationship is already in the JSONL records repo-recall parses; surfacing it on the dashboard is purely additive.Proposal
Add a
'parent'(or similarly named)match_typeplus a parent-session column onsession_repos, populated from whatever subagent-spawn metadata Claude Code already writes into the JSONL. Sub-sessions of a session render as a tree under the parent on the repo page.New views that fall out:
GET /sessions/{id}gains a "subagents spawned" section, each with its own duration / token / costOptional consumer hook
A separate harness (LUCA's orchestrator, see coilysiren/luca section 5.4) needs the same lineage but with a richer "run" identifier that groups sub-sessions across multiple parent invocations. That's a follow-up: an env-stamp convention (
LUCA_RUN_ID=<id>etc.) read by the JSONL parser when present, surfacing as a separate'run'match-type on top of the same column. Strictly additive to this issue's'parent'work.Out of scope
Why now
Multi-subagent runs are normal Claude Code usage now (Explore, Plan, code-review, Anthropic Skills, etc.). The dashboard's session list undercounts what actually happened in a session because it flattens the tree. The harness use cases that come later (LUCA, similar) sit on top of the same lineage column for free.