Usability and test infrastructure updates.
This commit is contained in:
1 parent
99b1732003
commit
7040f031a6
12 files changed
+549
-127
No files matched your search
+27
-15
@@ -84,24 +84,26 @@ src/
|
||||
auth.ts # Passport.js wiring + session middleware adapter
|
||||
db.ts # bun:sqlite schema + queries
|
||||
transcribe.ts # server-side ASR endpoint (bridges the sidecar, M5)
|
||||
live.ts # server-engine live mic over WebSocket (D-019, M7)
|
||||
server-py/ # faster-whisper sidecar (Python, D-013; M5)
|
||||
tests/ # bun test
|
||||
```
|
||||
|
||||
(Current state: M0–M3 built — browser transcription with the curated model
|
||||
(Current state: M0–M6 built — browser transcription with the curated model
|
||||
catalog, WebNN→WebGPU→WASM auto-selection (D-017), model switching,
|
||||
language/task options,
|
||||
and the installable offline PWA (`pwa/`, `scripts/build.ts` production build,
|
||||
`dist/` serving in `src/index.ts`; browser-level offline behavior pending the
|
||||
manual run in `tests/offline.md`). M4 accounts are built (`server/db.ts`,
|
||||
`server/auth.ts`, `/api/auth/*`, `AuthForms`). M7 live microphone
|
||||
transcription is built (`lib/live.ts`, `lib/mic.ts`, `LiveControls`, D-016;
|
||||
in-browser run pending per `tests/live.md`). M5's server side is built —
|
||||
`server-py/sidecar.py`, `server/transcribe.ts` (supervisor +
|
||||
`/api/transcribe` + `/status`), `lib/engine.ts` (both engines, D-010), and
|
||||
the catalog mapping in `lib/models.ts` — with graceful degradation when
|
||||
Python/faster-whisper is absent; the `EngineToggle` component and App wiring
|
||||
are the remaining M5 work; see `WorkBreakdown.md`.)
|
||||
language/task options, the installable offline PWA (`pwa/`,
|
||||
`scripts/build.ts` production build, `dist/` serving in `src/index.ts`;
|
||||
browser-level offline behavior pending the manual run in `tests/offline.md`),
|
||||
M4 accounts (`server/db.ts`, `server/auth.ts`, `/api/auth/*`, `AuthForms`),
|
||||
and the M5 server engine end to end — `server-py/sidecar.py`,
|
||||
`server/transcribe.ts` (supervisor + `/api/transcribe` + `/status`),
|
||||
`lib/engine.ts` (both engines, D-010), `EngineToggle`, and the catalog
|
||||
mapping in `lib/models.ts` — with graceful degradation when
|
||||
Python/faster-whisper is absent. M7 live microphone transcription is built
|
||||
for both engines: browser (`lib/live.ts`, `lib/mic.ts`, `LiveControls`,
|
||||
D-016) and server (`server/live.ts`, D-019); in-browser manual verification
|
||||
of both is still pending per `tests/live.md` (no real browser in the dev
|
||||
environment). See `WorkBreakdown.md` for the itemized checklist.)
|
||||
|
||||
## 4. Key flows
|
||||
|
||||
@@ -160,8 +162,18 @@ are the remaining M5 work; see `WorkBreakdown.md`.)
|
||||
4. Stopping flushes the segmenter, drains pending final passes (merged, with
|
||||
a "N remaining segments" countdown in the UI), and yields a normal
|
||||
transcript (text + absolute-timestamped chunks) in `TranscriptView`.
|
||||
Everything runs on-device; works offline like the file flow. Server-engine
|
||||
live input is a recorded future want (WorkBreakdown M7, D-016).
|
||||
Everything runs on-device; works offline like the file flow.
|
||||
5. **Server-engine live (logged in, D-019).** Same `LiveControls` UI, but
|
||||
`App.tsx` opens a `GET /api/transcribe/live` WebSocket instead of running
|
||||
the segmenter locally: the browser only captures/resamples mic audio
|
||||
(`lib/mic.ts`) and streams raw PCM frames over the socket; the *same* pure
|
||||
`LiveTranscriber`/segmenter (`lib/live.ts`) runs server-side
|
||||
(`server/live.ts`), writing each segment to a temp file and bridging it to
|
||||
the faster-whisper sidecar (D-013) the same way `POST /api/transcribe`
|
||||
does. `{type:"update"}` frames carry committed/tentative text back;
|
||||
`{type:"stop"}` drains and closes with a `{type:"result"}` frame. Selected
|
||||
only when signed in with the server engine available (`EngineToggle`);
|
||||
anonymous/offline users always get the browser-engine path above.
|
||||
|
||||
### 4.2 Offline (PWA)
|
||||
- Service worker (`pwa/sw.ts`, hand-rolled — D-007) precaches the built app shell
|
||||
|
||||
Reference in new issue
Block a user