WIP: M3 PWA/offline implementation, M4 auth (backend + frontend), D-013 faster-whisper
- M3: hand-rolled service worker (precache + runtime /ort caching), precache manifest injection, SW registration/update toast, manifest + generated icons, production build script, offline indicator in ModelPicker (D-005/D-007) - M4 backend: bun:sqlite users/sessions (D-009), Passport local strategy behind connect-compat adapter (D-008), /api/auth routes wired into dev+prod serving, Bun.password Argon2id, 38 auth tests - M4 frontend: AuthForms + useAuth + framework-free authClient, session-aware header, anonymous-first fail-silent offline handling, 18 client tests - D-013: server engine (M5) will use faster-whisper via Python sidecar; browser side stays Transformers.js (CTranslate2 has no WASM build) - bun test: 83 pass / tsc --noEmit clean - Note: M3 doc closeout (WorkBreakdown/Architecture/tests/offline.md) still in flight from a background agent; follow-up commit will finish docs Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
1 parent
eb72a2e646
commit
9f39a82982
38 files changed
+3857
-246
No files matched your search
+18
-6
@@ -45,16 +45,28 @@ Notes (M1):
|
||||
locally.
|
||||
|
||||
## M2 — Model choice + WebGPU (core)
|
||||
- [ ] `src/lib/models.ts` — curated catalog with sizes and dtype defaults (D-006)
|
||||
- [ ] `ModelPicker` component — size estimates, English-only vs multilingual,
|
||||
- [x] `src/lib/models.ts` — curated catalog with sizes and dtype defaults (D-006)
|
||||
- [x] `ModelPicker` component — size estimates, English-only vs multilingual,
|
||||
downloaded-state badge (query Cache API)
|
||||
- [ ] WebGPU detection in worker, `device` selection with WASM fallback (D-004);
|
||||
- [x] WebGPU detection in worker, `device` selection with WASM fallback (D-004);
|
||||
surface active backend in UI
|
||||
- [ ] Handle model switching (dispose old pipeline, load new)
|
||||
- [ ] Language / task options for multilingual models (transcribe vs translate)
|
||||
- [ ] Verify quantized variants (q4/q8/fp16) on both backends; record working
|
||||
- [x] Handle model switching (dispose old pipeline, load new)
|
||||
- [x] Language / task options for multilingual models (transcribe vs translate)
|
||||
- [~] Verify quantized variants (q4/q8/fp16) on both backends; record working
|
||||
combinations in `models.ts`
|
||||
|
||||
Notes (M2):
|
||||
- Quantized-variant verification is pending manual in-browser testing (no real
|
||||
browser in the dev environment). `models.ts` encodes the community-known-good
|
||||
combinations — WASM: q8 (tiny→small) / q4 (medium, large-v3-turbo); WebGPU:
|
||||
fp32 encoder+decoder for tiny/base (fp16 encoders known-bad there), fp16
|
||||
encoder + q4 merged decoder for small/medium/large-v3-turbo — each with a
|
||||
`verified` flag and note. Only `whisper-tiny.en @ wasm/q8` (exercised in M1)
|
||||
is marked `verified: true`; flip the flags as manual testing confirms each.
|
||||
- Downloaded badge (D-005): `src/lib/modelCache.ts` inspects Cache Storage for
|
||||
transformers-cache entries with `.onnx` hits per model id; M3's offline
|
||||
indicator should reuse `getDownloadedModels`.
|
||||
|
||||
## M3 — PWA & offline (core)
|
||||
- [ ] `manifest.webmanifest` + icons; installability
|
||||
- [ ] `src/pwa/sw.ts` — app-shell precache, cache-first static, network-only API (D-007)
|
||||
|
||||
Reference in new issue
Block a user