Expand description
The cross-project blocking graph (spec 2026-07-21-cross-project-graph-design, Surface 2).
Only tasks that participate in a dependency become nodes — with ~200 tasks and a handful of edges, drawing every task would be a cloud of unconnected dots. Everything unconnected is returned separately for the backlog list. Layout is a deterministic longest-path layering so a sparse DAG renders identically every time instead of jittering.
Structs§
- Graph
Edge - Graph
Node - Issue
Graph - Issue
Graph Out - Report output: the whole graph, computed on the hub and sent to the
dashboard so it never pulls raw entities. Defined here (not in the
wasm-gated
hubmodule) so the wasm client can call and deserialize it. - Issue
Graph Report - The cross-project blocking graph report. The
computehandler is hub-only (below); constructing and deserializing the report is client-side, which is why the struct lives here.
Functions§
- build
- Build the graph.
statusesmaps task id -> resolved status (any precision; the graph only reads the open/closed bit). Tasks referenced by an edge but absent fromtasksbecome stub nodes rather than dropped edges. - build_
from_ live - Fold live (Arc-wrapped) entities into the graph: unanchored status per
project, then
build. Shared by the report and its test.