Releases: AYJ-Systems/ayjanminutes
Releases · AYJ-Systems/ayjanminutes
v3.3.0
[3.3.0] - 2026-06-15
Added
- Forgot password flow: A "Forgot password?" link now appears below the password field on the login dialog.
- Friendly auth error messages: A
_friendly_error()helper (src/auth_manager.py) now maps Supabase and network exceptions to concise, user-readable messages across sign-in, sign-up, and the new reset flow — replacing raw exception strings that were previously surfaced directly.
Changed
- Eliminated redundant Supabase calls on Settings navigation:
AuthManager.get_plan()(src/auth_manager.py) now caches its result inself._cached_planfor the lifetime of the session. - Smoother sign-out and re-login
- Internal refactor using ponytail plugin
Fixed
- Recording tab resized when status label appeared
Known Limitations
- xx
Removed
- xx
v3.2.1
v3.2.0
[3.2.0] - 2026-06-12
✅ Fixes
- Microphone recording broken by Windows update: A recent Windows/audio-driver update changed the audio format that physical microphones report, which crashed the app. The fix makes recording immune to this and future format-reporting changes. Devices on older Windows builds are unaffected and fall back to the original behavior if needed.
- Recording failures now visible: If the mic or speaker channel fails during a recording, a warning dialog now explains which channel failed when you stop — previously the failure was only written to the log and the app pretended everything worked.
🎯 Improvements
- Splash screen: Added a startup splash screen while the app loads.
- Startup update check: The app silently checks for a newer release at startup.
- Attendee names no longer include parenthetical annotations: The meeting minutes prompt now explicitly forbids appending roles, organisations, or any bracketed text to attendee names.
- DOCX output: Removed the standalone action items summary table — action items are already captured inline within each agenda item section.
v3.1.0
[3.1.0] - 2026-06-03
✨ New Features
- Upgrade flow: Settings now has an Account section showing your plan with an "Upgrade to Pro" button. Opens a LemonSqueezy checkout, pre-filling your email.
✅ Fixes
- Non-English false positive: Transcription was aborting on the first non-English chunk detection. Now requires two consecutive detections before stopping.
- Crash on summarize: Fixed crash from
docx_generatorbeing imported inside the worker thread rather than at module level. - Relay model selector: Relay provider always uses
claude-sonnet-4-6; the model dropdown no longer shows irrelevant options when built-in AI is selected.
🛠️ Infrastructure
- Logging: Added structured logging across
auth_manager,summarize,workers,docx_generator, andconfig_loader— auth events, API calls, DOCX output, and update downloads are now all traceable in crash logs.
v3.0.0
[3.0.0] - 2026-06-01
🎉 App Renamed to Ayjan Minutes
The application has been fully rebranded from AI Note Taker to Ayjan Minutes:
- Executable renamed to
Ayjan Minutes.exe - Installer renamed to
Ayjan-Minutes-Setup.exe - Release zip renamed to
Ayjan-Minutes-v{version}.zip - Model cache moved from
~/.cache/ai_note_taker/to~/.cache/ayjan_minutes/ - Session cache moved from
~/.ainottaker/to~/.ayjanminutes/
Note for existing users: Your downloaded Whisper model and login session will not carry over automatically. You will need to re-download the model (via Settings → Model) and sign in again after updating.
🎯 Improvements
- Smoother software updates: The app no longer shows a blank screen between closing and the new version appearing — a progress window stays visible through file copy and new-app startup, closing only once the new app's window is on screen. The fixed 3-second wait is replaced with process-exit polling (~0.5s actual wait)
- Relay server concurrency: The relay server now handles multiple simultaneous summarization requests correctly
✅ Fixes
- Live config reload: Transcription model size changes apply immediately without a restart
- Offline startup: App launches correctly with no network connection, distinguishing offline from expired session
- Summarizer auth retry: Retries with a refreshed token on 401 instead of failing immediately
- Logging in frozen builds: Fixed
NoneType.writenoise from PyInstaller'ssys.stderr = None; stderr only redirected to crash log in frozen builds
v2.3.0
[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
/summarizeendpoint - Enforces per-user usage limits via Supabase RPC
- New Relay (Server) provider option in Settings, with all Claude and OpenAI models available
- Supports both Anthropic and OpenAI models via a unified
- 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
- Language is detected before transcription begins using Whisper's built-in
🎯 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}.txtand 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:00after transcription completes - Attendees tab tooltip: Info icon added to the Names tab header with usage guidance
- Info icon: Extracted
_make_info_iconas a reusable static method (was duplicated inline) - OpenAI model list: Updated to
gpt-4o-mini,gpt-4o,gpt-4-turbo(removed placeholdergpt-5.4models)
✅ 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 Pythonfaulthandlerstack 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:
UpdateCheckerWorkernow probeslocalhost:8765/healthfirst and falls back to GitHub automatically — the mock release server is used whenever Docker is running, with no env var required
v2.2.2
[2.2.2] - 2026-05-24
✅ Fixes
- Fresh install crash: App crashed on first launch with
[WinError 3] The system cannot find the path specifiedbecausemkdirwas called withoutparents=True— ifDocuments\ai_note_taker\didn't exist yet, the call failed. The app now creates the full directory tree on first run.
v2.2.1
v2.2.0
[2.2.0] - 2026-05-24
✨ New Features
- Live Transcription During Recording: Audio is now transcribed in the background while recording continues, so almost no waiting is required to get summary after meeting is finished.
- Audio is processed in ~45 second chunks with a 3 second overlap to avoid cutting mid-sentence
- A live transcript preview panel appears in the Record tab and updates as each chunk completes
- Only the final partial segment (at most ~45 seconds) needs to process after the recording stops
- Estimated completion time is shown after stopping (e.g. "Transcribing final segment… (est. ~18s)"), calculated from the actual transcription speed measured on previous chunks
- Known names from the Names tab are fed to Whisper as an initial prompt for better spelling accuracy
v2.1.3
[2.1.3] - 2026-05-23
✅ Fixes
- Sign-up: Fixed signup process end-to-end, with improved error messaging for failed sign-up attempts
🛠️ Infrastructure
- Updated build system and stub installers
🧹 Code Quality
- Logging refactor across
auth_manager,gui,main,summarize, andtranscribe— standardised log levels and removed redundant log calls - Removed stale code