Skip to content

v2.4.0 — Hardening, Foreground Guard, Test Suite & CI

Latest

Choose a tag to compare

@eviscerations eviscerations released this 14 Jun 20:10

A security/robustness pass. (The planned Bun migration moved to v2.5.0.)

Security & correctness

  • switch_model path-containment fix — normalized relative()-based containment closes a sibling-prefix escape (e.g. …\models-evil).
  • Privacy/consent gate keyed per operation (tool + arguments).
  • download_model rejects truncated downloads (Content-Length check) before promoting a .part file.
  • Numeric tool params that aren't real numbers are dropped instead of handed to whisper-cli as NaN.

Robustness

  • Foreground timeout guard — long files are routed to background instead of silently hitting Claude Desktop's ~4-minute tool timeout. Configurable via WHISPER_FOREGROUND_MAX_SEC. Time estimates corrected (the dominant model-reload cost is now modeled).
  • Atomic job/batch state writes; collision-proof UUID-suffixed IDs; graceful SIGINT/SIGTERM cleanup.

GPU device selection

  • WHISPER_GPU_DEVICE env var + gpu_device now plumbed through generate_subtitles and language detection. check_config reports the active device. check_system no longer misreports a driver issue when wmic returns nothing.

Quality

  • A node:test unit suite over the pure logic (zero new dependencies) plus a GitHub Actions CI workflow on every push/PR.

Docs

  • All 9 translated doc sets (es, id, ja, ko, pl, pt-BR, ro, uk, vi) brought to v2.4.0 parity.