split 3/4: dj.js (the DJ prompt, askDJ/askBreak/askMash, modes, voices, personas, speak) and render.js (venice behind an injectable fetcher, renderTrack, noise and tone generators, wavBlob) out of index.html

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>

Claude-Session: https://claude.ai/code/session_01Dhu3iHseRewQ2WpBSVLokG
This commit is contained in:
Claude Fable 5.1 committed 2026-10-21 22:24:29 +00:00
1 parent 5268620470
commit baf43525f6
4 files changed
+313 -307

No files matched your search

+1 -1
View File
@@ -3,7 +3,7 @@
// REV is stamped by the shots workflow on every push, so an installed app sees each update as a new worker.
const REV = "be3bce8aac3e";
const SHELL = "gandora-shell-" + REV;
const FILES = ["/", "/index.html", "/core.js", "/covers.js", "/store.js", "/stats.html", "/favicon.svg", "/manifest.json", "/icons/icon.svg"];
const FILES = ["/", "/index.html", "/core.js", "/covers.js", "/dj.js", "/render.js", "/store.js", "/stats.html", "/favicon.svg", "/manifest.json", "/icons/icon.svg"];
self.addEventListener("install", (e) => { e.waitUntil(caches.open(SHELL).then((c) => c.addAll(FILES)).then(() => self.skipWaiting())); });
self.addEventListener("activate", (e) => { e.waitUntil(caches.keys().then((ks) => Promise.all(ks.filter((k) => k !== SHELL).map((k) => caches.delete(k)))).then(() => self.clients.claim())); });
// same-origin GETs: network first (so a deploy shows up on the next open), cache as the fallback; everything else untouched