M3a: meetrec-server storage service + automatic upload from the app

- server/meetrec-server: FastAPI storage API (upload bundle with wav/
  txt/srt/json + metadata incl. agenda, list, fetch, download, delete);
  file-based index.json, no database; Docker Compose on port 8090,
  Tailscale-only bind like whisper-server; Ollama env prepared for M3c
  (gemma4:12b, German)
- phone: StorageClient (stdlib multipart upload); RecorderService uploads
  the bundle in the background after the final pass and publishes
  UploadState (Uploading/Done/Error) to the UI
- app: Library URL setting (persisted, default http://100.103.83.12:8090,
  empty disables upload); status line reports upload progress
- storage API validated locally end-to-end: upload, list, metadata,
  download, path-traversal rejected, delete
This commit is contained in:
2026-09-08 09:57:40 +02:00
parent 50d00286d7
commit 6b697f8d94
10 changed files with 427 additions and 5 deletions
+5 -4
View File
@@ -65,7 +65,8 @@ Notes:
## Client status
- Desktop `meetrec`: a `whisper-server` engine is planned
(`--engine whisper-server --server-url http://100.103.83.12:8085`).
- Android app: a remote engine option is planned (phone records, server
transcribes; local JNI stays as the offline fallback).
- Desktop `meetrec`: `--engine whisper-server --server-url http://100.103.83.12:8085`.
- Android app: **Transcribe on: server** (phone records, server transcribes;
local JNI stays as the offline fallback).
- Recording library: [meetrec-server](../meetrec-server/) stores recordings
+ transcripts; Android auto-uploads after the final pass.