Read your fleet’s execution rings
Move from consumption and flow to the evidence behind each seat. Everything runs locally in this page—no files are uploaded or stored.
Seat activity bands
Aggregate durations across the observation window. Hatched container holds are a subset of idle-with-work, never counted twice. These totals do not identify when a hold occurred.
Recorded activity timeline
State transitions on a shared time axis. Running is activity evidence, not proof of leaf execution or a tool category. Thin hatched/amber strips use source-backed classified idle intervals when present, never aggregate totals. Unknown remains unknown; no state is carried across an unobserved life. Context-drop markers require recorded timestamps; absent markers do not establish that no drops occurred.
Fleet concurrency distribution
Time at k active seats, aggregated across the window; this is not a time-ordered ribbon.
Seat handoff flow
Each ribbon represents a recorded seat pair. Width = handoff count; amber dashes = returns. It is queue flow, not token attribution or productive value. Activate a ribbon to inspect its counts.
Token consumption mix
Fresh input, cache reads, cache writes and output are separate recorded categories. No attribution to a particular handoff is inferred.
Pair friction heatmap
Rows send; columns receive. Dark cells are unavailable (—), distinct from measured zero. Color intensity scales within this view. Maximum 30 × 30 seats.
Attributed token buckets
Analytical task-intake classification only. Assigned mission tokens do not establish productive value; no token transfer across queue handoffs is inferred.
Pair wait & execution medians
Seat evidence inspector
Seat and item labels are replaced by local aliases. Source paths, commands, transcripts and arbitrary metadata are never rendered. Reports cannot establish causal savings or delivered value.
Supported JSON and privacy boundaries
Accepts Dendro report envelopes with payload containing product: "AI Fleet Intelligence", or trace objects with metric_id and inputs. Uses only numeric fields from m1_by_seat, activity, activity_events, handoff_members, handoff_edges, m2_pairs, pair_medians, token_categories, fleet_concurrency, context_compactions.events, m2_pairs, ring_boundaries.edges, task_intake_overhead and ISO from/to or window.from/to. Absent fields remain unavailable. Maximum file size: 10 MiB; maximum 50,000 rows per supported array.
Only load sanitized analytical exports. Raw files stay in browser memory and are not uploaded or stored. Aliases hide labels in the view; this viewer does not sanitize the original file for redistribution. Embedded exports must be scrubbed by the exporter before sharing. No source replay, tool execution spans, mission-token links are inferred from aggregate reports.