Skip to content

v2.3.0

Choose a tag to compare

@Tranks27 Tranks27 released this 28 May 14:10
· 20 commits to main since this release
02a8b2f

[2.3.0] - 2026-05-29

✨ New Features

  • Relay Server: Added a self-hosted relay server (relay-server/) that proxies summarization requests to Claude or OpenAI using the user's Supabase session for auth and usage tracking — no client-side API keys required
    • Supports both Anthropic and OpenAI models via a unified /summarize endpoint
    • Enforces per-user usage limits via Supabase RPC
    • New Relay (Server) provider option in Settings, with all Claude and OpenAI models available
  • Non-English Audio Detection: Transcription is now skipped with a clear warning when non-English audio is detected, rather than producing garbage output
    • Language is detected before transcription begins using Whisper's built-in detect_language
    • Works for both single-file transcription and chunked live transcription during recording

🎯 Improvements

  • App renamed to Ayjan Minutes: Window titles, login dialog, and in-app header updated throughout
  • Live transcript selectable: The live transcript preview panel is now selectable and copyable with mouse and keyboard
  • Live transcript written to file: During recording, the live transcript is written to transcripts/transcript_{timestamp}.txt and updated every 10 seconds — allows external tools to read it while recording is still in progress
  • Installer model download ETA: The installer now shows a live "~Xm Ys remaining" estimate during Whisper model download; progress bar fills smoothly through the model download phase (previously stalled at 85% with only animated dots)
  • Recording Complete dialog: "Open Folder" is now the default/highlighted button; Cancel replaces Ok as the dismiss action
  • Timer reset: Recording timer resets to 00:00 after transcription completes
  • Attendees tab tooltip: Info icon added to the Names tab header with usage guidance
  • Info icon: Extracted _make_info_icon as a reusable static method (was duplicated inline)
  • OpenAI model list: Updated to gpt-4o-mini, gpt-4o, gpt-4-turbo (removed placeholder gpt-5.4 models)

✅ Fixes

  • OOM crash on long recordings: Fixed out-of-memory crash when transcribing long recordings
  • File rename after summarization: Renaming recordings and transcripts after summarization now matches files by timestamp rather than exact stem, fixing failures when the stem had already changed

🛠️ Infrastructure

  • Crash logs: Each app session now writes a timestamped crash log to logs/crashes/ capturing Python faulthandler stack dumps on native crashes (SIGSEGV / access violation) and stderr from C-level libraries (ctranslate2, CUDA) that would otherwise be lost in a frozen GUI app
  • Local update testing: UpdateCheckerWorker now probes localhost:8765/health first and falls back to GitHub automatically — the mock release server is used whenever Docker is running, with no env var required