diff --git a/CHANGELOG.md b/CHANGELOG.md index a1e8035..b9acc82 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,13 @@ Follows [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) · versioned wi --- +## [1.14.8] — 2026-07-09 + +### Changed +- **Audiobook casting timeouts raised for large/slow models** — first attempt per passage: 6 min → 10 min; half-passage retry: 3 min → 5 min. 10 min also matches the server's own timeout cap, so this is the practical maximum without also raising that cap. + +--- + ## [1.14.7] — 2026-07-08 ### Fixed diff --git a/VERSION b/VERSION index 52e779f..9be7846 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.14.7 +1.14.8 diff --git a/static/index.html b/static/index.html index 701392e..906185e 100644 --- a/static/index.html +++ b/static/index.html @@ -10,7 +10,7 @@ - + @@ -27,7 +27,7 @@ - + @@ -365,7 +365,7 @@ window.toggleNavTree = function(treeId, chevronId) { - + diff --git a/static/js/audiobook.js b/static/js/audiobook.js index 1794ede..f819251 100644 --- a/static/js/audiobook.js +++ b/static/js/audiobook.js @@ -15,9 +15,10 @@ const AUDIOBOOK_CHUNK_CHARS = 3000; // passage size per LLM attribution call const AUDIOBOOK_WARMUP_TIMEOUT_MS = 240000; // A chunk's max_tokens (routes/conversation.py) can reach ~4000 on slow local models // (~15 tok/s on modest hardware), i.e. up to ~4.5 minutes of pure generation time — -// the old 90s timeout aborted almost every passage before the model finished. -const AUDIOBOOK_ATTRIBUTION_TIMEOUT_MS = 360000; -const AUDIOBOOK_ATTRIBUTION_RETRY_TIMEOUT_MS = 180000; +// and large (100B+) models can take even longer just to produce a first token. +// 600s is also the server-side cap (_request_timeout_seconds in routes/conversation.py). +const AUDIOBOOK_ATTRIBUTION_TIMEOUT_MS = 600000; +const AUDIOBOOK_ATTRIBUTION_RETRY_TIMEOUT_MS = 300000; const AUDIOBOOK_RECAST_TIMEOUT_MS = 240000; const AUDIOBOOK_RECAST_CONTEXT_CHARS = 4200; const AUDIOBOOK_RECAST_TARGETS_PER_CALL = 6;