Problem
SteleKit has no visual node-link graph view of how pages connect via [[wikilinks]]/#tags. This is a defining feature of the entire Logseq/Roam/Obsidian/Trilium family of tools SteleKit is modeled on — Trilium calls it "Note Map" (https://docs.triliumnotes.org/user-guide/note-types/note-map) and "Relation Map" (https://docs.triliumnotes.org/user-guide/note-types/relation-map); Logseq and Obsidian both ship a global graph view out of the box.
Confirmed absent from the codebase: grepped for NodeLink, ForceDirected, GraphCanvas, networkGraph, LinkGraph — zero hits. The existing Graph* classes (GraphLoaderPort, GraphWriterPort, GraphLoader, GraphDialogLayer) all refer to "graph" as in "the whole note database," not a visual network — GraphDialogLayer.kt is a sync/settings/LLM dialog host, unrelated.
Why this matters
- SteleKit already computes
extractReferences() for backlinks (per ADR-001), so the underlying link data needed to build a graph already exists — this is primarily a new renderer over data that's already tracked, not new data modeling.
- A visual graph is one of the top reasons people adopt this whole category of tool (rediscovering forgotten connections, seeing which pages are hubs vs. orphans).
Suggested scope (v1)
- Global graph view: force-directed or similar layout of all pages as nodes, links as edges.
- Local graph view: same, scoped to a page's direct + N-hop neighbors (shown from the page itself, à la Obsidian's local graph).
- Click a node to navigate to that page.
- Out of scope for v1: custom node coloring/grouping rules, graph filtering by tag, physics tuning UI.
References
extractReferences() in MarkdownParser.kt — existing backlink/reference extraction to build on
- No
project_plans/ entry currently addresses this
Problem
SteleKit has no visual node-link graph view of how pages connect via
[[wikilinks]]/#tags. This is a defining feature of the entire Logseq/Roam/Obsidian/Trilium family of tools SteleKit is modeled on — Trilium calls it "Note Map" (https://docs.triliumnotes.org/user-guide/note-types/note-map) and "Relation Map" (https://docs.triliumnotes.org/user-guide/note-types/relation-map); Logseq and Obsidian both ship a global graph view out of the box.Confirmed absent from the codebase: grepped for
NodeLink,ForceDirected,GraphCanvas,networkGraph,LinkGraph— zero hits. The existingGraph*classes (GraphLoaderPort,GraphWriterPort,GraphLoader,GraphDialogLayer) all refer to "graph" as in "the whole note database," not a visual network —GraphDialogLayer.ktis a sync/settings/LLM dialog host, unrelated.Why this matters
extractReferences()for backlinks (per ADR-001), so the underlying link data needed to build a graph already exists — this is primarily a new renderer over data that's already tracked, not new data modeling.Suggested scope (v1)
References
extractReferences()inMarkdownParser.kt— existing backlink/reference extraction to build onproject_plans/entry currently addresses this