• feat(audio): WAV streaming, bulk audio generation admin endpoints, cancel/resume
    Some checks failed
    CI / Backend (push) Successful in 48s
    CI / UI (push) Successful in 28s
    Release / Check ui (push) Successful in 39s
    Release / Test backend (push) Successful in 49s
    Release / Docker / caddy (push) Successful in 59s
    CI / Backend (pull_request) Successful in 41s
    CI / UI (pull_request) Successful in 46s
    Release / Docker / ui (push) Successful in 1m31s
    Release / Docker / backend (push) Successful in 3m27s
    Release / Docker / runner (push) Successful in 3m47s
    Release / Gitea Release (push) Failing after 32s

    kamil released this 2026-04-02 16:19:14 +05:00

    • Add StreamAudioWAV() to pocket-tts and Kokoro clients; pocket-tts streams
      raw WAV directly (no ffmpeg), Kokoro requests response_format:wav with stream:true
    • GET /api/audio-stream supports ?format=wav for lower-latency first-byte delivery;
      WAV cached separately in MinIO as {slug}/{n}/{voice}.wav
    • Add GET /api/admin/audio/jobs with optional ?slug filter
    • Add POST /api/admin/audio/bulk {slug, voice, from, to, skip_existing, force}
      where skip_existing=true (default) resumes interrupted bulk jobs
    • Add POST /api/admin/audio/cancel-bulk {slug} to cancel all pending/running tasks
    • Add CancelAudioTasksBySlug to taskqueue.Producer + asynqqueue implementation
    • Add AudioObjectKeyExt to bookstore.AudioStore for format-aware MinIO keys

    Co-Authored-By: Claude Sonnet 4.6 noreply@anthropic.com

    Downloads