Redesign graph viewer navigation
This commit is contained in:
parent
7834461eb9
commit
9bd41c5982
8 changed files with 354 additions and 72 deletions
|
|
@ -23,7 +23,7 @@ approved contract and measured cross-project evidence; it is not an unimplemente
|
|||
- Result envelope: `schemas/result.schema.json`, version 1.
|
||||
- Changeset schema: `schemas/changeset.schema.json`, version 1.
|
||||
- Index schema: version 1, disposable and reproducible.
|
||||
- Core, CLI, and MCP server: version 0.8.2.
|
||||
- Core, CLI, and MCP server: version 0.9.0.
|
||||
|
||||
Schema files describe the generic interchange contract. Runtime validation remains responsible for
|
||||
path confinement, source hashing, relationship resolution, dependency cycles, project limits, stale
|
||||
|
|
@ -101,25 +101,35 @@ The HTTP listener binds to `127.0.0.1` on an operating-system-selected port. A c
|
|||
random token is part of every accepted URL path. Only `GET` and `HEAD` are supported. Responses use
|
||||
no-store caching, a restrictive content-security policy, frame denial, MIME sniffing protection,
|
||||
and no-referrer policy. The built-in template uses only same-origin JSON endpoints for graph
|
||||
overview, bounded search, exact node content, bounded incoming-and-outgoing neighborhoods, and one
|
||||
lease heartbeat. The heartbeat changes no project or index state. There is no write endpoint,
|
||||
arbitrary query endpoint, static filesystem handler, external asset, or project-selection control.
|
||||
overview, bounded search, exact descriptor-category filtering, exact node content, bounded
|
||||
incoming-and-outgoing neighborhoods, and one lease heartbeat. Descriptor filtering accepts only
|
||||
family, authority, status, or tag plus one exact value. The heartbeat changes no project or index
|
||||
state. There is no write endpoint, arbitrary query endpoint, static filesystem handler, external
|
||||
asset, or project-selection control.
|
||||
|
||||
The `graph-browser@6` template provides mouse-wheel zoom centered on the pointer, left-button drag
|
||||
The `graph-browser@7` template provides mouse-wheel zoom centered on the pointer, left-button drag
|
||||
pan, explicit zoom-in and zoom-out buttons, a reset-view button, and a live zoom percentage. A
|
||||
four-pixel drag threshold defers pointer capture and preserves node activation for ordinary clicks.
|
||||
Loading another root node fits the viewport to the returned neighborhood, including a useful
|
||||
minimum scale for a single-node result. The current root begins selected, and activating another
|
||||
graph node moves the visible selection ring to it. Space centers the viewport on the selected node
|
||||
without changing zoom. Reset restores the fitted neighborhood view. Empty-canvas guidance is hidden
|
||||
whenever a neighborhood is rendered.
|
||||
whenever a neighborhood is rendered. The page is fixed to the browser viewport. Search and exact
|
||||
filter results fill the left panel, neighborhood traversal fills the right panel, and only the
|
||||
center SVG canvas pans or zooms.
|
||||
|
||||
Activating a graph node opens a modal inspector containing that node's complete validated metadata
|
||||
and content. Inspection does not replace the current neighborhood or reset the viewport. The modal
|
||||
supports keyboard activation, Escape, explicit close controls, and backdrop dismissal. Loading the
|
||||
inspected node as the new root requires the separate Explore neighborhood action. Both side panels
|
||||
support pointer and keyboard resizing. The unblurred modal supports native resizing and constrained
|
||||
title-bar dragging.
|
||||
Left-clicking or pressing Enter on a graph node opens a compact descriptor card containing the
|
||||
validated metadata and content previously shown in the details panel. Its family, authority,
|
||||
status, and tag pills are buttons that replace the left result list with exact matching nodes.
|
||||
Right-clicking or pressing Shift+Enter opens the complete inspector. Inspection does not replace
|
||||
the current neighborhood or reset the viewport. Both dialogs support Escape, explicit close
|
||||
controls, and backdrop dismissal. Loading the inspected node as the new root requires the separate
|
||||
Explore neighborhood action. Both side panels support pointer and keyboard resizing. The unblurred
|
||||
full inspector supports native resizing and constrained title-bar dragging.
|
||||
|
||||
The header exposes a Nodes/Flow segmented selector. Both positions intentionally retain the node
|
||||
graph in this contract version. Flow traversal and layout semantics remain unclaimed until relation
|
||||
direction and eligibility are defined.
|
||||
|
||||
The browser derives presentation roles only from the returned bounded graph. The current root is
|
||||
the primary focus. Nodes reachable through outgoing edges are children. Remaining incoming and
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue