Tags: ruzin/stenoai
Tags
Patch release with one user-facing fix for non-English summaries. - Summaries in non-English (and auto-detected) languages no longer get replaced by "No summary available for this meeting." once processing completes. The streaming prompt was instructing the LLM to translate the markdown section headers, which broke the section parser; headers now stay in English while body content is translated. - CI: per-arch `latest-mac.yml` files are merged so Apple Silicon users on v0.3.2 and later receive the correct arm64 auto-update payload. - Non-English meetings recorded before v0.3.2 will still show "No summary available". Open the affected note and click the regenerate-notes button (refresh icon next to copy) to re-summarise with the fix.
v0.3.1 — recording-flow bug fixes - **Stop → Processing handoff no longer races to Home.** A guard in the Recording route was firing before the optimistic queue update had a chance to flip status to `processing`, briefly bouncing the user back to Home on Stop (most reliably reproduced when typing notes during a short recording). The guard now gives the transition a 500 ms grace and re-checks state before deciding. - **Typed title + notes are cleared after processing completes.** The live-draft store kept entries keyed by `sessionName` but never cleared them; reusing the default `Meeting` / `Note` placeholder on the next *New note* inherited the previous recording's text. The store now drops the entry on `processing-complete`. No new features. No migration steps required.
Steno v0.3.0 — Native system audio, cross-note Chat, Steno display name. - **Native Core Audio Tap** capture on macOS 14.4+ replaces the previous shell-out pipeline, with an automatic fallback for older macOS versions. - **System audio is on by default** for new recordings — no extra virtual device, no bots joining the call. - **Real speaker diarisation**: transcripts label `[You]` vs `[Others]` and the labels are exported into your saved Markdown notes. - New **Chat tab** for asking natural-language questions over your entire note library (summary, key topics, full transcript) — not just one note at a time. - The inline ask bar from any individual note still works as before. - The Mac app display name is now **Steno** (was "StenoAI"). The deep-link scheme `stenoai://`, the GitHub repo, and your existing data are all unchanged. - **Existing users**: auto-update keeps the app at `/Applications/StenoAI.app` on disk (Finder/Dock will display "Steno"). Fresh installs from the new DMG go to `/Applications/Steno.app`. - **Auto-update toast** in the top right when an update is ready to install. - **Whisper model picker** in Settings — choose `small` / `base` / `medium` to trade accuracy for speed. - **Paper + ink** brand refresh — cream paper, ink-black text, single neutral palette. - Renderer fully migrated to React + Vite; legacy HTML renderer removed. - New documentation site, refreshed marketing site. - Hero demo GIF added to the README. - System-audio short-clip and lifecycle race conditions resolved. - Diarisation reliability and review feedback applied across the system-audio path.
- **"Restart to update" button now actually restarts**: the auto-upda… …ter's window-close step was being intercepted by the "hide to tray on close" handler, so the app minimised instead of quitting. Squirrel never got to apply the update. Fixed by signalling the intent-to-quit before calling `quitAndInstall`. If your installed version is 0.2.11 or 0.2.12, the in-app "Restart to update" button has the bug being fixed here. To land this version: **fully quit the app (Cmd+Q)** and relaunch — `autoInstallOnAppQuit` applies the already-downloaded update on next quit. From 0.2.13 onwards, the button works as expected.
- **Streaming chat** — Ask your meetings in a dedicated chat panel: r… …esponses stream token-by-token, with a Stop button to cancel mid-flight - **Per-meeting chat history** — Every meeting gets its own chat sessions with rename/delete; switch between them without losing context - **Notes generation scanner** — Smooth "Analyzing transcript" → "Generating notes" overlay that glides down the page as your summary streams in - **Inline title editing** — Click the meeting title to rename in place; saves on blur, Esc reverts - **Live recording sidebar entry** — A red "Recording..." row appears in the sidebar the moment you hit start, so you can browse another note and return without losing the session - **New dragonfly app icon + logo refresh** across the app, website, and DMG - **Note- auto-prefix** — Auto-named sessions now start with `Note-` instead of `Meeting-` - Analysis scanner now appears the instant you press Stop — no more blank gap before the summary starts streaming - Dropped the top-center "● Recording…" indicator (the bottom controls pill already conveys state + time) - Narrower 250px sidebar (was 320px) for more note-reading space - Session name input auto-regenerates cleanly if the previous one was an auto-name - Settings button height now matches the New Note button - YAML title saves now reject newlines and escape backslashes instead of silently corrupting the file - Scanner position read is batched in `requestAnimationFrame` (no more forced layout per streamed chunk) - Inline title save no longer overwrites the wrong meeting if you switch notes mid-save - Chat rename no longer breaks on the second rename attempt - AI message bubble no longer duplicates when the chat re-renders mid-stream - Live "Recording..." entry is cleaned up if the recording fails to start - Streaming summarisation no longer crashes on Ollama usage-only stream chunks - `#### headings` render correctly in streamed markdown - Bold-only lines (e.g. "No topics discussed") render as plain text - Pause button restored after being temporarily removed in testing
- **In-app auto-updates** — Updates download in the background and in… …stall on next quit; no more manual DMG downloads - **In-app note-taking** — Jot notes during a recording and they're folded into the AI summary - **Granola-style bottom ask bar** — Floating pill with inline transcript panel, live mic waveform, and a focused query input - **Streaming summaries** — Watch the summary appear as it's generated instead of waiting for a finished block - **Ask your saved notes** — The ask bar now reads saved `.md` notes directly (summary, key topics, full transcript) - **Diarised markdown export** — Saved transcripts include `[You]` / `[Others]` speaker labels - Warm light-mode palette, serif meeting titles, pill-shaped search bar - Reprocess picks up user notes and uses streaming - Meetings list loads faster; stereo language detection more accurate - Query preserves the meeting's original output language for \`.md\` files - Participants removed from summaries (fewer LLM hallucinations) - Recording duration correct when ffprobe can't read WebM containers - Folder dropdown no longer closes when clicking inside it - Mini-waveform starts reliably at the start of a recording
- **Stereo channel diarisation** for system audio recordings — when r… …ecording with system audio enabled, the transcript now shows **[You]** and **[Others]** speaker labels. Your mic captures you, system audio captures remote participants (#82) — @ruzin - **Auto-detect language** — new "Auto (detect)" option in Settings lets Whisper automatically identify the spoken language. Supports 99 languages out of the box (#79) — @JeroenR123 - **Dutch language support** added to the curated language dropdown (#78) — @JeroenR123 - Fixed autodetect language not being passed through to the summarizer (#81) — @ruzin - Stereo recordings now correctly propagate detected language (#84) — @ruzin - **Real sound capture waveform** — the recording indicator now shows a live waveform driven by actual microphone input instead of a canned animation (#54) — @rojanthomas - **Faster meeting list loading** — meetings render instantly from cache on startup; backend list command reads each file once instead of twice (#84) — @ruzin - Fixed recording indicator getting stuck after stop due to a waveform animation race condition (#80) — @ruzin - Detect incompatible macOS version (pre-Sonoma) before attempting to start Ollama, with a clear error message (#67) — @ruzin - Handle storage path permission failures gracefully instead of crashing (#68) — @sammargolis
- New AI models: Qwen 3.5 9B, DeepSeek-R1 14B, GPT-OSS 20B - Deprecated older models (qwen3:8b, deepseek-r1:8b) shown dimmed in settings - Bumped bundled Ollama to v0.17.5 - Fixed Ollama process not being killed on app quit - Fixed title generation timeout for slower models - Added hide dock icon setting for menu-bar-only mode - Fixed XSS vulnerability in model select - Fixed audio duration from transcriber's converted WAV
- **Intel Mac fix**: Fixed EBADEXEC error that prevented the app from… … launching on Intel Macs (#50) - **Improved setup diagnostics**: Ollama startup errors now show in debug logs instead of failing silently - **Setup wizard fix**: Bundled ffmpeg is now checked first, avoiding unnecessary Homebrew installation (thanks @sophiamariem, #52) - **Multiprocessing fix**: Added freeze_support for PyInstaller builds (thanks @sophiamariem, #52)
v0.2.7 Release - Multi-language support for transcription and summaries (10 languages) - Remote Ollama server support (run AI on another machine on your network) - Cloud AI provider support (OpenAI, Anthropic) gated behind Advanced toggle - Secure API key storage with Electron safeStorage encryption - Privacy ghost indicator when data leaves your device - Bundled Ollama bumped to v0.16.3 for Apple M5 Metal support - Settings reorganization (analytics moved to Advanced tab) - Multilingual model prompt when switching from English on Llama - Model benchmark comparison table in README - Fix ffmpeg/ffprobe audio duration detection - Fix cloud API key not passed to reprocess/query operations - Ask Steno now uses configured model instead of hardcoded default
PreviousNext