feat: PWA Phase 1 — offline audio download and playback

- API: GET /versions/:id/audio?quality=stream|original (server proxy for SW caching)
- API: GET /versions/:id/waveform-data (server proxy for offline waveform)
- SW: cache-first from musichub-offline-v1 for proxied audio/waveform endpoints
- Client: IDB-backed offline store (idb lib) with progress-tracked download
- UI: per-version offline download button with stream/original quality picker
- UI: /offline page with storage estimate and remove-all action
- Manifest: shortcuts for Dashboard + Offline-Tracks

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Robin Choice
2026-04-16 22:17:01 +02:00
parent e642e63fdc
commit e58a7c250e
10 changed files with 603 additions and 5 deletions

View File

@@ -10,6 +10,20 @@
"theme_color": "#f43f5e",
"lang": "de",
"categories": ["music", "productivity"],
"shortcuts": [
{
"name": "Offline-Tracks",
"short_name": "Offline",
"url": "/offline",
"icons": [{ "src": "/icon-192.png", "sizes": "192x192" }]
},
{
"name": "Dashboard",
"short_name": "Dashboard",
"url": "/dashboard",
"icons": [{ "src": "/icon-192.png", "sizes": "192x192" }]
}
],
"icons": [
{
"src": "/icon-192.png",