Skip to content

Commit 86472b1

Browse files
committed
docs(adr-702): record visual spike verification + id/label finding
Live browser session against the spike confirmed GPU physics path, sprite selection caret, palette ramps, and edge-type survival through the detail panel. Raw concept ID appearing in the hover label live-confirms finding #3 (id/label separation must be a first-class engine field). Status moves from Draft to Proposed.
1 parent 8c8544a commit 86472b1

1 file changed

Lines changed: 34 additions & 8 deletions

File tree

docs/architecture/user-interfaces/ADR-702-unified-graph-rendering-engine.md

Lines changed: 34 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
---
2-
status: Draft
2+
status: Proposed
33
date: 2026-04-20
4+
updated: 2026-04-20
45
deciders:
56
- aaronsb
67
- claude
@@ -454,14 +455,32 @@ The spike lives in `spike/unified-3d/` on this branch. It consists of:
454455
The reference UI's vite dev server and the spike server both run cleanly and
455456
serve kg data through the atlassian-graph pipeline end-to-end. At the time of
456457
the spike the local kg instance held 52 concepts and 76 relationships.
457-
Headless verification passed (both servers respond 200 for all endpoints the
458-
UI hits; data round-trips intact with 8 source-document buckets mapped into
459-
the palette's 16 category slots, and 30 distinct relationship types preserved
460-
on the edge records).
461458

462-
Final visual verification is pending a browser session against
463-
`http://localhost:5173`. The spike stays in-tree as a reference implementation
464-
for phase 1 implementation work.
459+
**Headless verification — passed.** Both servers respond 200 for all
460+
endpoints the UI hits; data round-trips intact with 8 source-document
461+
buckets mapped into the palette's 16 category slots, and 30 distinct
462+
relationship types preserved on the edge records.
463+
464+
**Visual verification — passed (2026-04-20 live session).** Browser session
465+
against `http://localhost:5173` confirmed:
466+
467+
- `GPU` capability badge lit — `GPUComputationRenderer` + WebGL2 + float
468+
render-target path selected on target hardware. GPU physics works.
469+
- Force simulation settled into a coherent topology with visible high-degree
470+
hubs (e.g. "Session Narrative System", degree 19).
471+
- Sprite screen-space selection caret (four corner brackets + center ring
472+
rendered via `<Html center>` at a world position, constant pixel size
473+
regardless of camera distance) rendered exactly as specified — confirming
474+
the `CaretMarker` pattern for phase 1.
475+
- Per-instance category colors applied correctly across the 8 buckets;
476+
palette ramp selector (8-bit VGA, Rainbow, Viridis, Magma, Plasma, Inferno,
477+
Turbo, Hot, Metal, Cool) all functional.
478+
- Sidebar correctly rendered selected-node detail with the three outgoing
479+
relationship types (`EVOLVES_INTO`, `INFLUENCES`, `FOCUSES_ON`) as
480+
collapsed detail rows — confirms edge-type metadata survives to the
481+
detail surface.
482+
483+
The spike stays in-tree as a reference implementation for phase-1 work.
465484

466485
#### Findings — shape compatibility (positive)
467486

@@ -517,6 +536,13 @@ for phase 1 implementation work.
517536
should be run before phase 1 PR merges to confirm the performance target
518537
on kg-shaped data at volume.
519538

539+
6. **Hover label shows raw concept ID.** Live observation: hovering a node
540+
surfaced `sha256:e5779_chunk1_fab33936` instead of the human-readable
541+
`label` field. This is the exact symptom of finding #3 — the reference
542+
engine uses `name` as both key and display value. kg's engine must
543+
accept `label` separately and thread it through to the `<Html>` overlay
544+
text. A single-field addition, zero architectural impact.
545+
520546
#### Changes to the ADR driven by the spike
521547

522548
The four "engine revisions" above (edge category coloring, directed arrows,

0 commit comments

Comments
 (0)