This was the opus47 architected, sonet46 implemented
- Issue #36 complete: demos extracted from store to /demo/ JSON files, fetched at runtime
- LOAD_DEMO handler and SF_DEMOS removed from store — store is now demo-free
- Render gate fixed: Playwright now loads via HTTP so fetch('demo/index.json') works
- /bump fix: nextVersionFromGit() takes max(gitTag+1, htmlVersion+1) — closes Issue #7
- /snapshot fix: version now read from POST body when query param absent
- SB-OPS: bump display fixed (vundefined → correct version)