vestige/apps/dashboard
Sam Valladares 85650f02fd fix(dashboard): backdrop lifecycle races + GPU buffer leaks (Kimi-audited)
Kimi K2.7-code audit (max-thinking) found a CRITICAL race + leaks that Claude's
shallower pass missed; all verified and fixed:
- CRITICAL: late WebGPU boot after the 6s watchdog fired bootFallback() would
  set mode='webgpu' and start a SECOND rAF loop, orphaning the fallback loop.
  Fixed with a top-of-function + post-await abort guard in tryBootWebgpu and a
  single idempotent tick()/startLoop() dispatcher (running flag) — rAF for the
  draw loop is now scheduled in EXACTLY one place.
- GPU buffer leaks: partBuf/uBuf are now destroyed via releaseBuffers() on every
  early-exit, the catch path, and the device-lost handler (was leaked everywhere
  except the handle!=null onDestroy path).
- resize() now reconfigures the WebGPU context (was stretching after resize).
- drawWebgpu wrapped in try/catch -> bootFallback (one bad frame no longer kills
  the field permanently).
- fallback now honors the intensity prop + is frame-rate independent (dt*60);
  onVisibility resets fbLastT; onDestroy SSR-guard ordering.

svelte-check 0 errors / 967 files. Memory Cinema / Graph3D untouched.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-27 14:24:10 -05:00
..
build ci(pages): deploy dashboard to GitHub Pages with subpath-aware base 2026-06-24 16:08:33 -05:00
e2e v2.0.8 Pulse — Reasoning Theater + Pulse Toast + Terrarium + Intel Mac (#44) 2026-04-23 02:21:11 -05:00
src fix(dashboard): backdrop lifecycle races + GPU buffer leaks (Kimi-audited) 2026-06-27 14:24:10 -05:00
static feat: Vestige v2.0.0 "Cognitive Leap" — 3D dashboard, HyDE search, WebSocket events 2026-02-22 03:07:25 -06:00
.env.example feat(launch): waitlist page, raw-WebGPU hero, supabase + vercel infra 2026-06-27 11:13:02 -05:00
package-lock.json Release v2.1.23 Receipt Lock hardening 2026-05-27 19:03:16 -05:00
package.json feat(launch): waitlist page, raw-WebGPU hero, supabase + vercel infra 2026-06-27 11:13:02 -05:00
playwright.config.ts feat: live memory materialization — nodes spawn in 3D graph in real-time 2026-03-03 14:04:31 -06:00
svelte.config.js feat(launch): waitlist page, raw-WebGPU hero, supabase + vercel infra 2026-06-27 11:13:02 -05:00
tsconfig.json feat: live memory materialization — nodes spawn in 3D graph in real-time 2026-03-03 14:04:31 -06:00
verify-launch-mobile.mjs feat(launch): waitlist page, raw-WebGPU hero, supabase + vercel infra 2026-06-27 11:13:02 -05:00
verify-launch.mjs feat(launch): waitlist page, raw-WebGPU hero, supabase + vercel infra 2026-06-27 11:13:02 -05:00
vite.config.ts feat(launch): waitlist page, raw-WebGPU hero, supabase + vercel infra 2026-06-27 11:13:02 -05:00