mirror of
https://github.com/samvallad33/vestige.git
synced 2026-07-24 23:41:01 +02:00
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> |
||
|---|---|---|
| .. | ||
| build | ||
| e2e | ||
| src | ||
| static | ||
| .env.example | ||
| package-lock.json | ||
| package.json | ||
| playwright.config.ts | ||
| svelte.config.js | ||
| tsconfig.json | ||
| verify-launch-mobile.mjs | ||
| verify-launch.mjs | ||
| vite.config.ts | ||