vestige/apps
Sam Valladares 7da5f4aa97 feat(observatory): integrate into the main dashboard graph
The Observatory is no longer a separate URL you have to know about. It
is now a first-class part of the main graph page, following the proven
Memory Cinema pattern (which remains untouched per the protected-block
rule):

- The full experience is factored into a reusable ObservatoryStage
  component (engine, plans, overlays moved verbatim from the route).
- The graph control bar gains an Observatory button beside Dream and
  Memory Cinema; clicking it takes over the screen full-bleed (z-50).
- Inside the stage: an on-screen switcher for the 5 cognitive moments
  (RECALL / BIRTH / RESCUE / HORIZON / FIREWALL) and an EXIT control
  (Esc works too) that returns to the graph exactly as it was. Both are
  hidden in capture mode so recordings stay chrome-free.
- {#key demo} remounts the stage per moment: fresh engine, plans, and
  clock, deterministic from frame 0.
- The /observatory route stays as a thin wrapper so deep links and the
  ?frame=N / ?capture=1 recording contract are unchanged; switching a
  moment there rewrites the URL so links stay shareable.

Verified live in the running dashboard: button renders between Dream
and Cinema, click boots the WebGPU takeover (148 real nodes, 2865
edges), RESCUE chip switches the moment (telemetry: SALIENCE-RESCUE),
EXIT unmounts cleanly back to the graph (canvas count 2 -> 1).
svelte-check 940 files 0 errors 0 warnings; 96 observatory tests green.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-08 11:54:03 -07:00
..
dashboard feat(observatory): integrate into the main dashboard graph 2026-07-08 11:54:03 -07:00