vestige/apps/dashboard/build/index.html
Sam Valladares 844b91a804 feat(dashboard): every organ is a living WebGPU field (LivingFieldPass)
Turn all 17 sparse organs from text-on-black voids into full-bleed, moving,
bioluminescent WebGPU fields. Each cell maps to a real backend fact; verified
live on the real brain with a decoded fill% + motion + zero-error probe.

Foundation: one reusable LivingFieldPass (src/lib/observatory/field/) does
splat -> separable-blur (render passes) -> membrane base coat -> HDR cells with
orbital drift and a CPU pick-mirror. Each organ writes a ~20-line data->cells
mapper (cell-layout.ts: layoutGalaxy / layoutRings / FIELD_HUE).

Organs brought alive (fill% before -> after, all zero WebGPU errors):
stats 0.8->80.9, observatory 10.8->81.4, graph 12.3->82.4, memories ->78.4,
blackbox 18.2->83.3, contradictions 1.6->69.6, dreams 0.3->64.5,
settings 2.7->76.4, reasoning 2.7->39.2, patterns 7.1->45.6,
activation 10->64.9, feed ->89, explore ->83.3, intentions ->66.6,
importance ->73.7, memory-prs ->74.4, schedule ->37.1.

Backend surfaces: add api.memoryChangelog() + ChangelogResponse; surface
suppress/unsuppress on the memories field (shift/alt-click -> scar).

Tests: palace-launch-gate now asserts fillPct>30 + isAnimating (not just
non-black), with a longer settle for reasoning's deep_reference and a raised
timeout for the curated tour. all-routes-smoke treats settings as the WebGPU
field it now is. Gates green: check 0/0, build ok, palace-launch-gate 22/22 +
tour, all-routes-smoke 20/20.

Protected work untouched: MemoryCinema, graph/cinema, observatory scene
shaders, node-renderer, palace-map.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-12 06:20:35 +07:00

49 lines
2.1 KiB
HTML

<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover" />
<meta name="theme-color" content="#050510" />
<meta name="description" content="Vestige — Cognitive Memory Dashboard. 3D visualization of your AI's long-term memory." />
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" />
<meta name="apple-mobile-web-app-title" content="Vestige" />
<link rel="icon" type="image/svg+xml" href="/dashboard/favicon.svg" />
<link rel="apple-touch-icon" href="/dashboard/favicon.svg" />
<link rel="manifest" href="/dashboard/manifest.json" />
<link href="/dashboard/_app/immutable/entry/start.DeXDFAvJ.js" rel="modulepreload">
<link href="/dashboard/_app/immutable/chunks/DJDK-KWF.js" rel="modulepreload">
<link href="/dashboard/_app/immutable/chunks/DAau0uzT.js" rel="modulepreload">
<link href="/dashboard/_app/immutable/chunks/CGq8RnJq.js" rel="modulepreload">
<link href="/dashboard/_app/immutable/chunks/DY7cP31Q.js" rel="modulepreload">
<link href="/dashboard/_app/immutable/entry/app.DIsclQy8.js" rel="modulepreload">
<link href="/dashboard/_app/immutable/chunks/Dp1pzeXC.js" rel="modulepreload">
<link href="/dashboard/_app/immutable/chunks/Bzak7iHL.js" rel="modulepreload">
<link href="/dashboard/_app/immutable/chunks/Ccqjq5DS.js" rel="modulepreload">
<link href="/dashboard/_app/immutable/chunks/W8qDZJD6.js" rel="modulepreload">
<link href="/dashboard/_app/immutable/chunks/DV6OI5iy.js" rel="modulepreload">
<title>Vestige</title>
</head>
<body data-sveltekit-preload-data="hover">
<div style="display: contents">
<script>
{
__sveltekit_1vzfo5 = {
base: "/dashboard",
assets: "/dashboard"
};
const element = document.currentScript.parentElement;
Promise.all([
import("/dashboard/_app/immutable/entry/start.DeXDFAvJ.js"),
import("/dashboard/_app/immutable/entry/app.DIsclQy8.js")
]).then(([kit, app]) => {
kit.start(app, element);
});
}
</script>
</div>
</body>
</html>