Skip to content

Tags: qluto/echo

Tags

v0.7.0

Toggle v0.7.0's commit message
Release v0.7.0 - Per-app prompt profiles with Slack drafting preset; …

…structured no_speech/error status feedback

v0.6.4

Toggle v0.6.4's commit message
Release v0.6.4 - Fix unbounded memory growth in always-on transcripti…

…on (MLX cache limit)

v0.6.3

Toggle v0.6.3's commit message
Release v0.6.3 - fix model load on HF relative resolve-cache redirect…

…s (Parakeet/Cohere/Qwen3 config.json fetch)

v0.6.2

Toggle v0.6.2's commit message
Release v0.6.2 - fix metallib externalBin build

v0.6.1

Toggle v0.6.1's commit message
Release v0.6.1 - Fix distributed app startup crash (bundle MLX mlx.me…

…tallib into Contents/MacOS)

v0.6.0

Toggle v0.6.0's commit message
Release v0.6.0 - Full-Rust in-process ASR (no Python sidecar)

- ASR now runs fully in-process in Rust via the rust-asr crate:
  Whisper (whisper.cpp/Metal, default), Parakeet-TDT JA (MLX), Cohere Transcribe (MLX, gated)
- Qwen3 LLM post-processing/summarization ported to Rust (mlx-rs, BF16 parity)
- Python sidecar removed entirely; lighter build (~0.7s vs ~3.1s spawn->result)
- Silero VAD gating to prevent silence hallucination on hotkey input
- Free GPU memory on model switch
- UI: show raw + post-processed text, icon-only per-text copy, compact mode cards
- Release workflow drops Python build, adds Metal toolchain step

v0.5.1

Toggle v0.5.1's commit message
Release v0.5.1 - Hotfix for transcription parsing

Fixes a regression introduced in v0.5.0 where every transcription
failed with "Failed to parse response: invalid type: sequence,
expected a string". Caused by mlx-audio 0.4.x changing Qwen3-ASR's
STTOutput.language from a single string to a per-segment list.

Adds defensive _coerce_language helper across all three transcription
paths (Qwen3, Cohere, Whisper) that flattens str | list[str] | None to
a single string and treats sentinel values ("None", "null", "auto",
"unknown") as no-detection -> "auto".

Verified locally against Qwen3-ASR-0.6B/1.7B, Whisper Large v3 Turbo,
Whisper Tiny, and Cohere Transcribe — all five models now return
parseable JSON-RPC responses.

Users on v0.5.0 should upgrade.

v0.5.0

Toggle v0.5.0's commit message
Release v0.5.0 - Cohere Transcribe with gated model access

Adds optional support for CohereLabs/cohere-transcribe-03-2026 (2B,
14 languages) as a third ASR model family alongside Qwen3-ASR and
Whisper. Gated by an explicit opt-in in Settings > Gated Models
(Advanced) — users must accept the Cohere model license on HuggingFace
and provide a personal access token, which is then injected into the
Python sidecar via HF_TOKEN. Tokens never appear in logs.

Bumps mlx-audio dependency to >=0.4.0 (required for Cohere support).

v0.4.3

Toggle v0.4.3's commit message
Release v0.4.3 - Fix floating pill position on external display

v0.4.2

Toggle v0.4.2's commit message
Release v0.4.2 - Polish UI animations and fix ripple bug