reporters/tree¶
Source: src/reporters/tree.ts
A run as a tree: a delegated subagent drawn under the one that asked for it.
treeOrder¶
function
export function treeOrder(subagents: readonly SubagentSnapshot[]): SubagentSnapshot[] { /* … */ }
Launch order, rearranged so that a child follows the parent it hangs under.
The snapshot itself stays flat, and this is why: every existing reader keeps working, and the one that wants a tree asks for it here. A delegating run spawns its children after their parent anyway, so with a single root the order barely moves; with two parents working at once it stops interleaving three readers of one explorer with three of the other.
Nothing is ever dropped. A subagent whose parent is not in the list - a
reporter attached mid-run, a snapshot assembled by hand - is placed as a
root, and anything the walk could not reach is appended rather than lost. A
measurement that silently omits a subagent is worse than one that misplaces
it. How deep each one is drawn is its own depth, decided when it spawned.