Skip to main content

Module graph

Module graph 

Source
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§

GraphEdge
GraphNode
IssueGraph
IssueGraphOut
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 hub module) so the wasm client can call and deserialize it.
IssueGraphReport
The cross-project blocking graph report. The compute handler is hub-only (below); constructing and deserializing the report is client-side, which is why the struct lives here.

Functions§

build
Build the graph. statuses maps task id -> resolved status (any precision; the graph only reads the open/closed bit). Tasks referenced by an edge but absent from tasks become 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.