v0.1.8

jamiepine/voiceboxv0.1.8Jan 29, 2026by github-actions[bot]

AI Summary

Bug fixes addressing critical model download timeouts and cross-platform cache path issues.

Key Highlights

  • Fixed model download timeouts on Windows by refactoring background download handling.
  • Resolved cross-platform cache path issues using HuggingFace constants.
  • Added `/shutdown` endpoint for graceful server shutdown on Windows.

New Features

  • GPU detection improvements showing specific GPU types (CUDA, MPS).
  • Auto-start model downloads via `/generate` and `/transcribe` endpoints.

Full Release Notes

## 🐛 Bug Fixes

### Model Download Timeout Issues
Fixed critical issue where model downloads would fail with "Failed to fetch" errors on Windows:

- **Root Cause**: Multi-GB model downloads exceeded HTTP request timeout (30-60s), causing frontend to show errors even though downloads were continuing in background
- **Solution**: Refactored download endpoints to return immediately and continue downloads in background
- `/models/download` endpoint now returns instantly with download starting in background
- `/generate` and `/transcribe` endpoints now auto-start model downloads when needed
- Returns 202 Accepted status with download progress information for better UX
- Frontend can track download progress via SSE endpoint and retry when complete

### Cross-Platform Cache Path Issues
- Fixed hardcoded `~/.cache/huggingface/hub` paths that don't work on Windows
- All cache paths now use `hf_constants.HF_HUB_CACHE` for proper cross-platform support
- Windows: Uses `%USERPROFILE%\.cache\huggingface\hub` or `%LOCALAPPDATA%`
- macOS/Linux: Uses `~/.cache/huggingface/hub`
- Ensures HuggingFace cache directory exists on startup (defensive fix)

## ✨ Features

### Windows Process Management
- Added `/shutdown` endpoint for graceful server shutdown on Windows
- Improved process lifecycle management for bundled server binary

### GPU Detection Improvements  
- Added `gpu_type` field to health check response
- Now shows specific GPU type: "CUDA (GPU Name)", "MPS (Apple Silicon)", or None
- Fixes UI showing "GPU: Not Available" when MPS/CUDA is actually detected