feat: live memory materialization — nodes spawn in 3D graph in real-time

When memories are created, promoted, deleted, or dreamed via MCP tools,
the 3D graph now shows spectacular live animations:

- Rainbow particle burst + elastic scale-up on MemoryCreated
- Ripple wave cascading to nearby nodes
- Green pulse + node growth on MemoryPromoted
- Implosion + dissolution on MemoryDeleted
- Edge growth animation on ConnectionDiscovered
- Purple cascade on DreamStarted/DreamProgress/DreamCompleted
- FIFO eviction at 50 live nodes to guard performance

Also: graph center defaults to most-connected node, legacy HTML
redirects to SvelteKit dashboard, CSS height chain fix in layout.

Testing: 150 unit tests (vitest), 11 e2e tests (Playwright with
MCP Streamable HTTP client), 22 proof screenshots.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Sam Valladares 2026-03-03 14:04:31 -06:00
parent 816b577f69
commit 9bdcc69ce3
76 changed files with 5915 additions and 332 deletions

View file

@ -11,12 +11,12 @@
<link rel="icon" type="image/svg+xml" href="/favicon.svg" />
<link rel="apple-touch-icon" href="/favicon.svg" />
<link rel="manifest" href="/manifest.json" />
<link href="/dashboard/_app/immutable/entry/start.DK-jGlmm.js" rel="modulepreload">
<link href="/dashboard/_app/immutable/chunks/C9fAJV5Y.js" rel="modulepreload">
<link href="/dashboard/_app/immutable/entry/start.DFI9HUYp.js" rel="modulepreload">
<link href="/dashboard/_app/immutable/chunks/gFolWfSi.js" rel="modulepreload">
<link href="/dashboard/_app/immutable/chunks/C9Z4nxhR.js" rel="modulepreload">
<link href="/dashboard/_app/immutable/chunks/DnKV7_Y9.js" rel="modulepreload">
<link href="/dashboard/_app/immutable/chunks/CkyfbJUz.js" rel="modulepreload">
<link href="/dashboard/_app/immutable/entry/app.D66lMUMV.js" rel="modulepreload">
<link href="/dashboard/_app/immutable/entry/app.DfAGudnT.js" rel="modulepreload">
<link href="/dashboard/_app/immutable/chunks/DP9qWekZ.js" rel="modulepreload">
<link href="/dashboard/_app/immutable/chunks/DPfxVJHQ.js" rel="modulepreload">
<link href="/dashboard/_app/immutable/chunks/Bzak7iHL.js" rel="modulepreload">
@ -32,7 +32,7 @@
<div style="display: contents">
<script>
{
__sveltekit_1xpb8v1 = {
__sveltekit_lu49g9 = {
base: "/dashboard",
assets: "/dashboard"
};
@ -40,8 +40,8 @@
const element = document.currentScript.parentElement;
Promise.all([
import("/dashboard/_app/immutable/entry/start.DK-jGlmm.js"),
import("/dashboard/_app/immutable/entry/app.D66lMUMV.js")
import("/dashboard/_app/immutable/entry/start.DFI9HUYp.js"),
import("/dashboard/_app/immutable/entry/app.DfAGudnT.js")
]).then(([kit, app]) => {
kit.start(app, element);
});