v2: PWA install, golden hour calc, hands-free voice commands, HYPE button, thirds overlay, frame strip, kokoro keep-warm, llms.txt

This commit is contained in:
drjones
2026-10-01 18:36:53 +00:00
parent b5f8960af1
commit 05a655558f
6 changed files with 225 additions and 5 deletions

BIN
static/apple-touch-icon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

BIN
static/icon-192.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

BIN
static/icon-512.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

13
static/manifest.json Normal file
View File

@@ -0,0 +1,13 @@
{
"name": "Lyra — Muse & Director",
"short_name": "Lyra",
"start_url": "/",
"display": "standalone",
"background_color": "#0b0a14",
"theme_color": "#0b0a14",
"description": "On-set copilot: lines, poses, light, frame judging, voice.",
"icons": [
{"src": "/static/icon-192.png", "sizes": "192x192", "type": "image/png"},
{"src": "/static/icon-512.png", "sizes": "512x512", "type": "image/png"}
]
}

8
static/sw.js Normal file
View File

@@ -0,0 +1,8 @@
const C='lyra-v2';
self.addEventListener('install',e=>self.skipWaiting());
self.addEventListener('activate',e=>e.waitUntil(clients.claim()));
self.addEventListener('fetch',e=>{
if(e.request.method!=='GET'||e.request.url.includes('/api/'))return;
e.respondWith(caches.open(C).then(c=>c.match(e.request).then(r=>
r||(fetch(e.request).then(res=>{if(res.ok)c.put(e.request,res.clone());return res}).catch(()=>r)))));
});