Commit Graph

  • 8ec9044c75 fix: whisper repetition loops, meeting transcript punctuation main thomas.kopp 2026-04-02 12:34:11 +02:00
  • 658f9be47f fix: punctuate raw transcript, strip JSON code fences, filter null speaker names thomas.kopp 2026-04-02 12:23:25 +02:00
  • d3582eaeb7 feat: tab navigation in modal (Index/Transkript/Zusammenfassung) thomas.kopp 2026-04-02 12:10:50 +02:00
  • 336628341b feat: AI-generated title+tldr, subfolder structure, backlinks in transkript/zusammenfassung thomas.kopp 2026-04-02 12:07:54 +02:00
  • 1cfb9c127b fix: use vault+file URI format for Obsidian, more reliable than path= thomas.kopp 2026-04-02 11:57:47 +02:00
  • fe8b8bb125 fix: auto-include transkript/zusammenfassung siblings when copying index to Obsidian vault thomas.kopp 2026-04-02 11:47:29 +02:00
  • ca10cbb20b fix: call obsidian binary directly instead of xdg-open for URI handling thomas.kopp 2026-04-02 11:42:23 +02:00
  • 180fe43df7 fix: handle pyannote 4.x DiarizeOutput wrapper in diarize() thomas.kopp 2026-04-02 11:34:02 +02:00
  • 8ee11a31a1 fix: use token= instead of use_auth_token= for pyannote Pipeline.from_pretrained thomas.kopp 2026-04-02 11:15:14 +02:00
  • 06f7361004 feat: write 3 files per solo recording (index + transkript + zusammenfassung) thomas.kopp 2026-04-02 11:10:28 +02:00
  • a37e09fb4e feat: copy transcript to Obsidian vault on open thomas.kopp 2026-04-02 11:00:55 +02:00
  • 6f718f0753 feat: add Obsidian open button; fix folder button using dolphin --select thomas.kopp 2026-04-02 10:55:19 +02:00
  • 348ce332c7 feat: add folder button to transcript modal thomas.kopp 2026-04-02 10:47:08 +02:00
  • 7e0851fc95 fix: pass whisper backend to solo pipeline transcribe_file call thomas.kopp 2026-04-02 09:18:20 +02:00
  • 11dee75ab3 fix: record at 48000 Hz — PipeWire virtual sinks reject 16 kHz resampling thomas.kopp 2026-04-02 09:14:34 +02:00
  • b4e7e08918 fix: update audio devices test to mock sounddevice instead of pactl thomas.kopp 2026-04-02 07:52:34 +02:00
  • 04b655e664 fix: use sounddevice names for audio device list and combined source thomas.kopp 2026-04-02 07:51:42 +02:00
  • 251f9c238d fix: restore PipeWire combined source automatically on startup thomas.kopp 2026-04-02 01:46:19 +02:00
  • 1a61b53027 fix: serve /settings without auth header — JS handles token check thomas.kopp 2026-04-02 01:38:17 +02:00
  • c7cad4bb2a feat: add whisper.cpp ROCm backend support for AMD GPU acceleration thomas.kopp 2026-04-02 01:33:32 +02:00
  • 56d41b8620 docs: add HuggingFace diarization setup instructions to SETUP.md thomas.kopp 2026-04-02 01:18:55 +02:00
  • 5f384af6cf feat: add diarization section to settings page thomas.kopp 2026-04-02 01:18:26 +02:00
  • 0eb85b98f1 feat: add frontend speaker naming card for diarization thomas.kopp 2026-04-02 01:17:23 +02:00
  • e04816fce6 feat: meeting pipeline — parallel diarization, speaker ID, 3-doc output thomas.kopp 2026-04-02 01:13:24 +02:00
  • 37e432f7fa feat: POST /speakers — resolves pipeline pause with speaker name mapping thomas.kopp 2026-04-02 01:07:41 +02:00
  • dbb35ce71d feat: AppState gains speaker pause fields and AWAITING_SPEAKERS status thomas.kopp 2026-04-02 01:06:30 +02:00
  • 033c1fc486 feat: write_meeting_docs() — creates index, transkript, zusammenfassung thomas.kopp 2026-04-02 01:05:07 +02:00
  • 9b5b89e159 feat: OllamaClient.identify_speakers() and summarize() for diarization pipeline thomas.kopp 2026-04-02 01:03:40 +02:00
  • b8cc8a3b33 feat: align_segments() — map Whisper timestamps to pyannote speakers thomas.kopp 2026-04-02 01:00:58 +02:00
  • 1a9d0eacc2 feat: Diarizer class wrapping pyannote/speaker-diarization-3.1 thomas.kopp 2026-04-02 00:59:50 +02:00
  • 47909637a8 feat: transcribe_file returns timestamped segments when with_segments=True thomas.kopp 2026-04-02 00:55:53 +02:00
  • 7dfc0e0c5f feat: add diarization config defaults (enabled=false, hf_token) thomas.kopp 2026-04-02 00:53:53 +02:00
  • 7cd6c2a848 docs: diarization implementation plan (13 tasks) thomas.kopp 2026-04-02 00:50:57 +02:00
  • 8d1af32ef3 docs: diarization + speaker identification design thomas.kopp 2026-04-02 00:46:18 +02:00
  • 80ce1aa77c docs: add setup guide for Beastix server and client installation thomas.kopp 2026-04-02 00:01:05 +02:00
  • 52ba53bec4 fix: validate Ollama URL protocol before fetching api/tags thomas.kopp 2026-04-01 20:51:23 +02:00
  • 0bdc0a5e42 feat: settings page — PipeWire audio device + remote Whisper/Ollama config thomas.kopp 2026-04-01 20:48:56 +02:00
  • 81fbbfb56e feat: status includes is_admin, gear icon in header for admins thomas.kopp 2026-04-01 20:45:33 +02:00
  • 2376bf5d71 fix: PUT /config deep-merges nested config instead of shallow update thomas.kopp 2026-04-01 20:40:40 +02:00
  • ff68827280 fix: module_ids as integers in response, add 403 test for POST /audio/combined thomas.kopp 2026-04-01 20:38:43 +02:00
  • 478a1ac9d0 feat: GET /audio/devices, POST /audio/combined — PipeWire source management thomas.kopp 2026-04-01 20:36:27 +02:00
  • ef4aa2a840 feat: AudioRecorder accepts device param — reads audio.device from config thomas.kopp 2026-04-01 20:32:44 +02:00
  • 5e7faa8844 fix: use get_running_loop() instead of deprecated get_event_loop() thomas.kopp 2026-04-01 20:30:06 +02:00
  • 8300851e77 feat: remote Whisper via whisper.base_url — OpenAI-compatible upload thomas.kopp 2026-04-01 20:28:31 +02:00
  • 912b333124 feat: add audio.device and whisper.base_url to config defaults thomas.kopp 2026-04-01 20:25:48 +02:00
  • 3f9abc6a89 docs: settings page + remote whisper design thomas.kopp 2026-04-01 20:11:38 +02:00
  • d8c6fc790b fix: define _guest_user() for tray/hotkey-triggered recording thomas.kopp 2026-04-01 16:00:33 +02:00
  • ccdc75c74c feat: show date and time in transcript list items thomas.kopp 2026-04-01 14:40:01 +02:00
  • b74147967b feat: tüit logo in header, clean transcript item layout with grouped action buttons thomas.kopp 2026-04-01 14:37:03 +02:00
  • 2ab6e7d73b fix: move reprocess button to transcript list item, remove from modal thomas.kopp 2026-04-01 14:30:28 +02:00
  • 33ae9dc1d8 feat: reprocess existing transcript via Ollama — modal button + POST /transcripts/{filename}/reprocess thomas.kopp 2026-04-01 14:27:15 +02:00
  • 3673e28e73 fix: improve system prompt — explicit paragraph breaks, lists, section headings thomas.kopp 2026-04-01 14:23:26 +02:00
  • 1ab023c2ac feat: transcript modal with markdown rendering, delete button, remove preview section thomas.kopp 2026-04-01 14:18:04 +02:00
  • ae3ae61593 feat: DELETE /transcripts/{filename} — delete transcript with path-confinement check thomas.kopp 2026-04-01 14:13:02 +02:00
  • aa3eef8fb1 feat: GET /transcripts/{filename} — serve transcript content thomas.kopp 2026-04-01 14:12:30 +02:00
  • 0bb0975a09 docs: add transcript modal + delete implementation plan thomas.kopp 2026-04-01 14:09:23 +02:00
  • 629341930e fix: show recording state on first click, fix error state via WS thomas.kopp 2026-04-01 13:57:41 +02:00
  • d60d6bb1be fix: test_config_loads_defaults — remove reload() that undid CONFIG_PATH patch thomas.kopp 2026-04-01 13:49:21 +02:00
  • b63f5d59a9 fix: read WebSocket token from query_params directly, not function arg thomas.kopp 2026-04-01 13:22:20 +02:00
  • 6e317a9c67 fix: error state resettable via mic click, debug logging, pipeline traceback thomas.kopp 2026-04-01 12:41:45 +02:00
  • 6574481647 fix: web-based first-run setup — removes terminal input(), works under systemd thomas.kopp 2026-04-01 12:26:17 +02:00
  • d9db41b0b4 fix: use ip route instead of hostname -I for Arch compatibility thomas.kopp 2026-04-01 12:23:41 +02:00
  • f133b9590c fix: use venv instead of pip --user for Arch PEP 668 compatibility thomas.kopp 2026-04-01 12:21:40 +02:00
  • 325cb2e6e7 feat: merge implement/transkriptor — full tüit Transkriptor implementation thomas.kopp 2026-04-01 11:47:32 +02:00
  • 1466a1529f feat: multi-user auth — per-user spaces, pbkdf2 passwords, session tokens, login page implement/transkriptor thomas.kopp 2026-04-01 08:39:16 +02:00
  • 94dd871031 feat: install.sh — ROCm check, LAN-mode prompt, systemd user service, hotkey instructions thomas.kopp 2026-04-01 02:30:31 +02:00
  • 4ec9c56812 feat: main entry point — FastAPI + pystray tray + SIGUSR1 via uvicorn loop capture thomas.kopp 2026-04-01 02:29:52 +02:00
  • b62c3d6604 feat: browser UI — tüit CI dark theme, XSS-safe DOM, auth-aware thomas.kopp 2026-04-01 02:29:07 +02:00
  • 319db8c788 feat: API router + pipeline — toggle, status, transcripts, WebSocket, auth stub thomas.kopp 2026-04-01 02:26:47 +02:00
  • ad84ad5aa3 feat: app state module with status enum and subscriber pattern thomas.kopp 2026-04-01 02:25:39 +02:00
  • 927e75aa5e feat: audio module — sounddevice recorder with WAV export thomas.kopp 2026-04-01 02:22:53 +02:00
  • 3976ecb52e feat: transcription module — faster-whisper with ROCm auto-detect thomas.kopp 2026-04-01 02:22:03 +02:00
  • 333898c5ab feat: LLM module — Ollama client with transcript refinement thomas.kopp 2026-04-01 02:20:56 +02:00
  • 6775f98259 feat: output module — Markdown file writer with slugified filenames thomas.kopp 2026-04-01 02:14:57 +02:00
  • 8a39d8b97e feat: config module with TOML defaults thomas.kopp 2026-04-01 02:14:14 +02:00
  • 20e20f44cd chore: project scaffold thomas.kopp 2026-04-01 02:12:41 +02:00
  • e4e2322eed chore: add .gitignore with .worktrees/ thomas.kopp 2026-04-01 02:11:05 +02:00
  • 6b0f2ba39a docs: implementation plan for tüit Transkriptor thomas.kopp 2026-04-01 02:04:40 +02:00
  • 4c04e17d06 docs: initial design for tüit Transkriptor desktop transcription tool thomas.kopp 2026-04-01 01:58:15 +02:00