Lokale transcriptie op web: whisper.cpp-WASM achter een isolatiepoort (#2513) #2554
No reviewers
Labels
No labels
accepted
bug
declined
docs
duplicate
enhancement
good first issue
in-progress
needs-info
privacy
release-blocker
security
triage
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
LibreKAT/Ocideck!2554
Loading…
Reference in a new issue
No description provided.
Delete branch "feat/transcriptie-05-web-engine"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Samenvatting
Bewijst en bouwt de lokale inferentieroute voor de webbundel (#2513). De browser draait whisper.cpp v1.9.5 als WASM in de eigen tab — audio en transcript verlaten die tab nooit; de enige egress is de expliciete, door de gebruiker gestarte modeldownload van huggingface.co met sha256-toegangscontrole.
web/whisper/: pthreads-WASM +libmain.js, gebouwd uit dezelfde gepinde bron als de desktop-cli viaemscripten/emsdk:3.1.74(Docker), plus eigenbridge.js(window.ocideckWhisper) enmanifest.jsonmet herkomst, toolchain en hashes. De cancel-binding komt vannative/whisper_wasm/emscripten-cancel.patch._web-impls achter de bestaande naden: IndexedDB-modelopslag (.partnooit geïnstalleerd, WebCrypto-sha256, evictie =absent), fetch-downloader (browser-CORS als hopguard,AbortController, streamingvoortgang, falende opruiming kandoneniet ophouden), js_interop-engine met exacte ArrayBuffer-slice en module-reset na harde abort.SharedArrayBuffer→crossOriginIsolated→ COOP/COEP.web/.htaccess+ HOSTING.md schrijven die headers nu voor; zonder ze meldt de enginenoIsolationi.p.v. te falen of te beloven.webCapableerbij;large-v3-turbouitgesloten op web (gemeten abort aan het ~2 GB-WASM-geheugenplafond).baseis de lichtste weboptie;tinyblijft bewust weg (kwaliteit onvoldoende, §4.6).native/whisper_wasm/probe/— reproduceerbare harness + 21 resultaten uit echte Chrome, Firefox en Safari/WebKit, incl. cancel-run en no-COI-abort.Waarom een test niet kon
De
_web-bestanden importerendart:js_interopen laden niet in de VM-runner — conditional imports kiezen onderflutter testaltijd de io-/stub-helft. Ze staan daarom inuncoveredBaseline; het webgedrag is bewezen via de browserprobe in plaats van een widgettest (contracten worden wel gedeeld met de geteste io-helften).Waardenbotsing
De COI-eis beperkt waar de webbundel inferentie kan doen (soevereiniteit/uitwisselbaarheid vs. functie). De belofte is eerlijk afgegrensd: capability-status in plaats van een breed claim, en HOSTING.md beschrijft de headers. Andere gedachte als er een werkbare niet-pthreads WASM-route blijkt.
Poort
make checkvolledig groen op commitf6fe5c3bb(format, analyze, conventies, 14.301 tests, dekking, golden-suite)make check-webgroen (bundled-JS-integriteit, SBOM-check, hardened build, hardening-check, release-artefacten, docs-freshness)make check-secrets(gitleaks + trufflehog, werkmap én historie): schoonmake sast(semgrepocideck.yaml): 0 findingsGenerated with Devin (https://devin.ai)