Rulvar API reference / @rulvar/rulvar / PostFanInBreakdown
Interface: PostFanInBreakdown
Defined in: packages/core/dist/index.d.ts
Where the post-fan-in interval actually went (RV710): the eleventh comparison experiment measured 45.5 percent of wall sitting after fan-in with zero synthesis share and nothing to name it. The decomposition is a pure fold over the SAME vocabulary, no new event types: model activations and tool executions of coordination spans (spans whose agent:start role is 'orchestrate') are reconstructed from their end events' (ts, durationMs) and clipped to the [last worker settle, run:end] window, and completed 'synthesize' spans are clipped the same way. The coordinator's draft and repair thinking lands in the model bucket; child-result pagination and the finish exchanges (host validators run inside the finish tool's measured window) land in the tool buckets under their own names; the residue is what no recorded interval covers: scheduling gaps, journal writes, park-to-wake latency. Live fidelity only, exactly like the wall numbers around it: a replayed stream re-stamps emission times and carries durationMs 0, so its decomposition is degenerate. Buckets are clipped SUMS (two concurrent coordination spans, or duration-clock skew against emission stamps, can overlap-count); coveredMs is the exact interval union, so residueMs is never understated by an overlap. End events whose span never started in the stream (a consumer attached mid-stream) cannot be attributed and are skipped, never guessed at.