NilsBriggen
6d2f583136
feat(phase2): in-app live recording into courses (web)
...
CI / test (push) Successful in 17s
CI / build-apk (push) Has been skipped
CI / deploy-web (push) Successful in 28s
- useRecorder: MediaRecorder mic capture with elapsed timer, live input-level
meter (AnalyserNode), pause/resume, and a screen Wake Lock; returns the
recording as an ArrayBuffer that flows into the existing transcribe pipeline.
- Record screen: big timer + level meter + start/pause/resume/stop; on stop the
pre-capture sheet collects title/course/date, then it transcribes + saves +
indexes (reusing Phase 0/1). Home gets Record + Import buttons.
- Web-only for now; native realtime (whisper.rn), OPFS crash-recovery,
tab-audio capture, and the per-course dashboard are follow-ups.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-14 14:53:15 +02:00
NilsBriggen
fc24c0875d
feat(phase1): on-device semantic recall — embeddings, vector search, hybrid ranking
...
CI / test (push) Successful in 17s
CI / build-apk (push) Has been skipped
CI / deploy-web (push) Successful in 27s
Exam-time search over your own lectures, 100% on-device (vectors never leave it):
- EmbeddingEngine (transformers.js feature-extraction via the CDN loader,
multilingual-e5-small 384-dim, e5 query/passage prefixes); native stub.
- Vector store in StorageRepo (Dexie v3 + native v3 segvecs): upsertVectors,
brute-force cosine searchVectors (course-scoped), clearVectors, unembeddedIds.
Cascades: re-embed on segment edit, reassign updates vector courseId, deletes cascade.
- Hybrid search: semantic candidates + lexical rank fused via reciprocal-rank-fusion
(pure, tested); searchLectures() returns segment hits tagged semantic/lexical/both.
- embeddingStore: build-index/backfill with progress + embed-on-save (fire-and-forget).
- Search screen: query -> segment hits (snippet · course · time) -> tap jumps the
transcript to that timestamp (seek + scroll-into-view). Per-course stats on Courses.
25 repo tests (incl. cosine ranking + course scoping), 13 search tests, 170 total green.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-14 14:48:03 +02:00
NilsBriggen
8db59d4bbe
feat(phase0): courses, migrations, persisted audio, stable segment IDs, course-aware UI
...
CI / test (push) Successful in 16s
CI / build-apk (push) Has been skipped
CI / deploy-web (push) Successful in 29s
Data layer (Zod-gated, behind StorageRepo; web Dexie v2 + native expo-sqlite
user_version migrations, both with no-data-loss segment-id backfill):
- Course entity + courseId/lectureDate/instructor/location/tags/lectureNumber on
transcripts; listCourses/createCourse/updateCourse/deleteCourse, listByCourse,
reassign. Stable per-segment ids assigned on create/update + backfilled.
- Persisted source audio (Dexie blob / expo-file-system) via putMedia/getMediaUrl;
the editor replays it after reload.
UI/stores:
- Pre-capture sheet (title + course + lecture date + language) before transcribing.
- Course-aware library home (All/Unsorted/per-course filter) + Courses screen.
- coursesStore; transcriptsStore course filter + reassign; transcribeStore threads
course/date and persists media.
16 web-repo tests incl. v1->v2 migration no-data-loss; 148 total green; web export OK.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-14 13:54:38 +02:00
NilsBriggen
9f42ee2460
Build Wisp: on-device transcription studio (web + native, one codebase)
...
CI / test (push) Has been cancelled
CI / deploy-web (push) Has been cancelled
CI / build-apk (push) Has been cancelled
Private, offline speech-to-text that runs Whisper on the user's own device —
free, no account, no per-minute fees. Replaces Otter.ai / Rev.
- Pure, tested engine: chunking, overlap timestamp-stitching, exports
(SRT/VTT/TXT/MD/JSON), WAV codec, resampler, job queue, model catalog (142 tests).
- Platform-abstracted TranscriptionEngine: transformers.js on web (loaded from
CDN at runtime to dodge Metro's onnxruntime-web bundling limits), whisper.rn
on native. Shared pipeline orchestrates decode -> chunk -> transcribe -> stitch.
- Cross-platform StorageRepo (Dexie web / expo-sqlite native), Zod-validated.
- UI: library + search, import, live-progress transcription, synced click-to-seek
editor, multi-format export; model picker + privacy in settings.
- Web ships as a single-page PWA with COOP/COEP isolation for threaded WASM;
Docker (nginx) image + Traefik compose for wisp.briggen.dev.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-13 17:54:21 +02:00
NilsBriggen
97996c9846
Initial commit
...
Generated by create-expo-app 4.0.0.
2026-06-13 17:05:52 +02:00