Skip to content

v0.2.0 — reliable recording + capture self-test

Choose a tag to compare

@AnisurRahmann AnisurRahmann released this 04 Aug 11:51
c74d615

What's new

This release fixes the two main ways a recording became unusable, and adds diagnostics that catch capture problems before a meeting is lost.

🐛 Fixed

  • Mic recordings played 3× too fast ("chipmunk voice"). The mic tap delivers bursty, irregular frames while Core Audio ramps up, so a 1-second startup measurement read ~14000 Hz and was (correctly) rejected — but then fell back to the system tap's 48000 Hz, which got baked into the WAV header. A 48000 header over ~16000 data played back 3× too fast.

    • _measure_true_rate now re-measures over progressively longer windows until it converges on a snap-able rate, instead of trusting a noisy 1-second sample.
    • Each source now falls back to its own requested rate, never another source's.
  • Whisper hallucinated on silent recordings. An all-silent WAV produced garbage like System [00:00] You repeated 36 times.

    • _finish_session now skips transcription when every captured WAV is silent, marks the session SILENT, and keeps the WAV for rec diagnose. In mic+system recordings where only one source is silent, the other is still transcribed.

✨ Added

  • Live capture self-test in rec setup. Setup now opens each tap for ~2s and reports the measured peak amplitude — catching a broken Screen Recording permission (the "tap runs but delivers zeros" state) before you lose a meeting.

    • --selftest / --no-selftest (default on; use --no-selftest in CI)
    • --selftest-duration (default 2.0s)
  • Mic-skip warning at rec start. When the mic will be skipped (permission not granted), you now see a yellow warning in your terminal — previously it was only logged in the daemon log.

  • Smarter silence detection. The RECORDING IS SILENT warning now distinguishes the macOS capture-permission signature (tap ran, peak == 0.0) from a quiet source, and names the fix: toggle Screen Recording ON, then fully Quit + reopen the terminal app.

🔧 Internal

  • Version bump 0.1.00.2.0.
  • New STATUS_SILENT session lifecycle status.

📊 Tests

  • 136 tests pass (+17 new), ruff clean.
  • Validated against real failing session 2026-08-04_17-19-38 (mic header corrected 48000 → 16000, transcript now intelligible).

Update

pipx upgrade call-copilot

Full changelog: v0.1.0...v0.2.0