Skip to content

Utterform 0.13.0 Voice messages and recordings - #51

Merged
jli-software merged 4 commits into
mainfrom
work/utterform-0.13.0-audio-files
Nov 7, 2026
Merged

jli-software merged 4 commits into
mainfrom
work/utterform-0.13.0-audio-files

Conversation

@jli-software

Copy link
Copy Markdown
Owner

Stage 0.13.0 of the 1.0 roadmap: transcribe voice messages and recordings.

  • In: folder button next to Settings or O, drop on the window ("Drop to transcribe" with action and engine), utterform --file <path>, and "Open with" (Linux desktop entry, Windows OpenWithProgids in the NSIS hook, macOS CFBundleDocumentTypes with rank Alternate — none becomes the default player). Files from outside queue and are done one after another.
  • Decoding: audio_file.rs — Symphonia (Ogg, WebM/MKV, MP4/M4A, MP3, WAV, FLAC, AIFF, CAF) plus libopus bundled via symphonia-adapter-libopus for WhatsApp/Telegram Opus; streamed to a temporary 16 kHz mono WAV, then the normal process_recording path with Origin::File (history, clipboard, action, never the cursor; no kept copy on failure). Two-hour limit.
  • Cloud: audio over twelve minutes goes to GPT Transcribe in ~10-minute parts cut at the quietest moment before the mark (25 MB limit).
  • Diagnostics: file.requested/started/decoded/failed, transcription.split/part_failed, recording.completed mode=file; no file names or paths.
  • Jonas accepted the mock-up. No tag, no release, version stays 0.8.0.

Validation: npm run check, npm test (153), npm run build, Playwright (36), cargo fmt --check, cargo clippy -D warnings, dbus-run-session -- cargo test (209). Live on asus16: invented WhatsApp-style Opus message via GPT Transcribe (1.6 s) and the built app with local Whisper (4 s), a 13-minute file in two parts, second-instance hand-off with a relative path, install-linux.sh desktop entry validated. Open for 1.0 (in TESTING.md): Windows/macOS "Open with" and drag and drop in a real window; libopus on the Windows/macOS runners.

🤖 Generated with Claude Code

https://claude.ai/code/session_014LfoKeUu4n9ax82oQFfKHo

jli-software and others added 4 commits November 7, 2026 14:16
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014LfoKeUu4n9ax82oQFfKHo
Voice messages and recordings are decoded to 16 kHz mono with Symphonia and
a bundled libopus, then take the recording path: transcription, history,
clipboard and text actions. Opened from a header button or O, dropped on the
window, passed as --file or by Open with. Audio longer than twelve minutes
is uploaded to GPT Transcribe in parts cut at pauses.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014LfoKeUu4n9ax82oQFfKHo
…-audio-files

# Conflicts:
#	src/lib/api.ts
#	tests/ui.e2e.ts
@jli-software
jli-software merged commit 49be527 into main Nov 7, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant