Databases Page
The Web interface Databases page lists all graph databases in the project—the derived default and all user databases—and provides a read-only Cypher query box scoped to the selected database. The page has no write entry points; the result table is a generic renderer that does not assume the corpus graph schema.
Database List and Real Row Counts
- The
defaultrow shows the graph service's live count (FileNode + Tag, consistent with the graph page when fully displayed), no longer a "rebuilding" placeholder. The query box answersdefaultdirectly from the resident in-memory graph and does not trigger corpus rebuild. - The page subscribes to graph change broadcasts (
graph-updated); the table refreshes automatically after corpus or database changes. - The query box provides one-click schema examples such as
show_tables/table_info(including a "View ALL" one-click full query) and a CLIgraph schemahint.
Graph View of Cypher Results
A "Table / Graph / Side-by-side" switch above the result area lets the same query result be read as a table or a graph; the selected mode persists across queries, each new result auto-frames, and returning to an old result restores the previous viewport.
- The graph view shares the same canvas interactions as the task/knowledge graph: zoom/pan, hover to highlight neighborhood, click to focus and fly in, node drag, legend toggles. It does not include a Cypher search box (the page already has one), and double-click does not open details (query rows have no detail page).
- Internal bookkeeping nodes (
Metatable) are hidden by default when other data exists; the legend keeps the entry so it can be restored at any time, and the title indicates the hidden count. Table view is unaffected and still shows all rows. - 500 rows is a rendering budget, not a data limit: a checkbox in the query box can remove this limit (equivalent to CLI
graph query --all). When result nodes exceed about 3000, the graph pane proactively yields and explains, rather than freezing. - The graph title bar has a full-screen toggle (CSS maximized); a short
Escreleases focus, and a long press of 600ms exits maximized.
Configurable Legend
The gear button in the graph pane opens the legend settings panel. Configuration is saved per database in backlog/databases/graph-legends.yaml inside the project (versioned with git) and restored automatically on next visit; the browser also keeps an instant cache and offline copy. The panel is draft-style: changes preview instantly, "Save" writes to disk, and "Cancel" / close / clicking the gear again reverts to the snapshot when opened. Full storage, migration, and hot-update mechanisms are in Legend Configuration Persistence.
- Two-layer color model: the first layer determines hue by node type (table label); the second layer distinguishes lightness within a type by a field's subclasses (equal-width bins, quantiles, single threshold, by value, contains, prefix, boolean shortcuts, or hand-written ordered boolean rules). "Generate" one-click produces an editable rule list, with an implicit Other fallback bucket.
- Configuration is grouped by node type (accordion panels, one card per type): the title template uses `` placeholders (empty means auto-guess), types can specify explicit colors to override automatic hues, and each rule plus Other can be pinned to a color individually.
- Relationships are configured by type with line style (solid / dashed / dotted / long-dash) and arrow (none / end / start / bidirectional), with an optional display name; unconfigured relationship types automatically cycle through line styles.
- Each bucket is a legend toggle; after turning it off, the entry remains (grayed out and struck through) and can be turned back on at any time.