3 Commits

Author SHA1 Message Date
840270fe4b feat: PWA manifest + build-time service worker (#15)
Applies Replit PR #28 feature on top of current main:
- Root sw.js template with __PRECACHE_URLS__ placeholder
- generate-sw Vite plugin: reads build manifest, injects actual asset URLs
- manifest: true in Vite build config for asset manifest generation
- SW registration gated to import.meta.env.PROD (no dev interference)
- Preserves existing manifest.json and public/sw.js as dev fallback
2026-03-19 02:02:06 +00:00
70f590ab9a perf: QA sprint v2 — 8 optimizations + responsive fixes
Fixes:
- #29 agents.js: share geometries across agents (3 shared vs 12 duplicates)
- #30 agents.js: single connection line material, dispose old geometries
- #31 agents.js: add Agent.dispose() for proper GPU resource cleanup
- #32 main.js: debounce window resize with rAF (1 call/frame vs dozens)
- #33 main.js: pause rAF loop on visibilitychange (battery savings on iPad)
- #34 effects.js: skip every 2nd rain update on low tier (halves iterations)
- #35 index.html: responsive HUD with clamp(), mobile stack layout <500px
- #36 vite.config.js: code-split Three.js into separate cacheable chunk

Build output:
- App code: 28.7KB (was bundled into 514KB single chunk)
- Three.js: 486KB (cached independently after first visit)
- FPS: 31 (up from 28-29)
2026-03-19 00:27:13 +00:00
Replit Agent
fe2d9a31e3 docs: add direction field to README custom-agent example 2026-03-18 23:52:06 +00:00