Brain · Knowledge Graph

Knowledge Graph

The Knowledge Graphtab (in the Brain group, next to Relationships) is a hosted view over your team's persisted graph store: the accountability projection, approved semantic edges, minted entities, and commit ancestry. It shows node counts by type, edge counts by source, and the confidence band on each edge. Nothing is computed in the cloud. The page renders totals the desktop already pushed, and shows an honest empty state until a bound device on a hosted plan turns graph publishing on.

What it shows

Once a snapshot exists, the tab leads with three totals for the repo: nodes, edges, and orphans (nodes with no edge). Below that, three breakdowns:

  • Nodes by type, keyed by the store's real node-type values.
  • Edges by source, where an edge came from.
  • Edges by confidence band, so you can see how much of the graph is high-confidence versus lower.

A team that publishes more than one repo sees the largest by node count, with a note that other repos are published too. When the pushed node and edge lists are capped, the counts stay full-graph totals and the tab says so.

How the snapshot gets there

The RepoOps desktop app owns the graph store (the graph_nodes and graph_edges tables). On its hourly brain cycle it distills that store into a small snapshot and posts it to the hosted team (POST /api/graph-snapshot/ingest), where it lands in team_graph_snapshot. The tab reads the freshest snapshot per repo and renders it. There is no server-side model and no embedding step; the render is a plain display of the rows the desktop pushed, so bring-your-own-key stays intact.

Distilled and redacted
The snapshot carries hashed ids, no prose, and no file paths. It is counts and bands, not the graph's contents. The raw nodes and edges never leave the machine.

Scoping and access

The tab is session-authed. Your team comes from your membership, never from a URL parameter, and the read is bounded by that team id. Per-repo access control is honored: a member only sees snapshots for repos they are allowed to see. A scope that resolves to no repos returns the empty state, never another team's data.

The read itself is not tier-gated. A team that published on a paid plan keeps seeing its last snapshot; the plan gate lives on ingest, not on display.

The empty states

The tab never fabricates a graph. Until a snapshot exists it shows one of two honest states:

SituationWhat you see
Below the hosted tier, or no bound deviceA connect-and-upgrade state: start a plan (Solo Hosted or above), install the desktop app, and enable graph publishing. Links to plans and the download.
On a hosted plan, sync on, nothing pushed yetAn enable-publishing state: turn on the graph snapshot in the desktop app's Settings; the next hourly brain cycle fills the tab in. Links to the download.
Snapshot read failsAn error state asking you to try again shortly. It does not guess a graph.

Read more