feat(memoro): voice recording → mana-stt transcription pipeline

Adds end-to-end browser voice capture for the Memoro module, mirroring the
existing dreams pattern: MediaRecorder → SvelteKit server proxy → mana-stt
on the Windows GPU box via Cloudflare tunnel.

Recording UI lives in /memoro page header (mic button + live timer + cancel +
sticky-permission retry). Server proxy at /api/v1/memoro/transcribe forwards
the blob with the server-held X-API-Key. memosStore.createFromVoice creates a
placeholder memo with processingStatus='processing' and fires transcribeBlob
in the background, which writes the transcript and flips status on completion
(or 'failed' with error in metadata).

Also corrects the mana-stt hostname across the repo: stt-api.mana.how (which
never existed in DNS) → gpu-stt.mana.how (the actual Cloudflare tunnel route
to the Windows GPU box). Adds an ENVIRONMENT_VARIABLES.md section explaining
how to obtain MANA_STT_API_KEY and where the tunnel terminates. Adds tunnel
health probes to the mac-mini health-check script so we catch tunnel-side
breakage in addition to LAN-side.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Till JS 2026-04-07 18:48:41 +02:00
parent 4d9bf78f41
commit c5aeaf5e7f
9 changed files with 568 additions and 8 deletions

View file

@ -266,6 +266,16 @@ check_service "GPU TTS" "http://192.168.178.11:3022/health" 3
check_service "GPU Image Gen" "http://192.168.178.11:3023/health" 3
check_service "GPU Video Gen" "http://192.168.178.11:3026/health" 3
echo ""
echo "GPU Server (Cloudflare Tunnel):"
# These probes go through the public Cloudflare tunnel rather than the LAN.
# They catch tunnel-side breakage (cloudflared down on Windows, DNS misroute,
# Public Hostname missing) that LAN probes above wouldn't see.
check_service "GPU STT (tunnel)" "https://gpu-stt.mana.how/health" 8
check_service "GPU LLM (tunnel)" "https://gpu-llm.mana.how/health" 8
check_service "GPU TTS (tunnel)" "https://gpu-tts.mana.how/health" 8
check_service "GPU Image Gen (tunnel)" "https://gpu-img.mana.how/health" 8
echo ""
echo "Matrix:"
check_service "Synapse" "http://localhost:4000/health"