[0.19.0] - 2026-04-26
Added
- Execution graph foundation:
SessionRelationshipRecordandToolResultEventRecord(#42, first PR). Two new normalized record shapes that sit besideTurnRecordand preserve cross-source metadata that's currently flattened or lost: how sessions relate (root/continuation/fork/subagent) and chronological tool-result events keyed bytoolUseId. Both carryv: 1,source, and asessionId; relationship rows includeparentToolUseId/agentId/subagentType/descriptionfor subagent edges; tool-result events carrystatus(running/completed/errored/cancelled/unknown), aneventSourcediscriminator (tool_result/subagent_notification/queue_event/progress_event/function_call_output),contentLength+contentHash(metadata only — no raw content), andagentIdfor spawn events. - Claude passive reader populates the execution graph.
parseClaudeSessionandparseClaudeSessionIncrementalnow returnrelationshipsandtoolResultEventsalongside the existingturns/content/eventsarrays. Roots are emitted once per session id; onesubagentrow is emitted per distinct invocation discovered (joining toSubagent.agentId); eachtool_resultblock in a user line becomes aToolResultEventRecordwith monotoniceventIndexand per-toolUseIdcallIndex. Spawn events (Agent/Task tool_results that map to a sidechain) are post-annotated with the resolved subagent'sagentIdso consumers can join the two record types. Incremental parser respects the sameendOffsetdeferral the existing content/event paths use, so resumed ingest doesn't double-emit. Codex / OpenCode population deferred to follow-up PRs.