Skip to content

feat: visual graph view of page links (node-link network) #226

Description

@tstapler

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions