Skip to main content

Module crossproject

Module crossproject 

Source
Expand description

Cross-project status resolution over hub entities (spec 2026-07-21-cross-project-graph-design).

Two precisions, deliberately:

  • statuses_unanchored resolves from StatusChanges alone — no ancestry, so no CommitFacts cross the wire. A task with no close is open; one with a close is “closed somewhere” (Resolution::Partial), honest that the branch containing it was not established. This is what the cross-project listing uses: enough to pick a blocker, cheap regardless of history.
  • statuses_for_project resolves exactly against a branch head by walking the CommitFact graph (moved here from levi-dash so the dashboard and any future hub report share one implementation).

Functions§

default_head
The branch a project resolves against when none is named: its main RefFact if present, else the most recently observed.
statuses_for_project
Exact per-branch resolution over the CommitFact graph (moved from levi-dash/src/resolve_client.rs). None head resolves anchored changes as Partial rather than guessing.
statuses_unanchored
Status from StatusChanges alone — no ancestry walk, no facts. Open when a task has no close event; Closed + Partial when it has one (a close exists, but which branches contain it is not established here).