openreader/src
Richard R bf139d9a67 refactor(tts): ensure timeout cleanup and validate remote voice payloads
Make voice-fetching more robust by always clearing the request timeout and stricter type-checking of remote data.

- move clearTimeout into finally blocks for Deepinfra and custom OpenAI voice fetches to guarantee the timeout is cleared on success, failure, or abort
- validate that custom endpoint returns an array of strings before accepting voices; otherwise fall back to defaults

This reduces potential timer leaks and avoids accepting malformed voice lists from custom endpoints.
2026-04-06 11:41:42 -06:00
..
app refactor(tts,audiobook,tests): centralize TTS catalog, harden epub & UI flows 2026-04-06 10:28:00 -06:00
components test(ui): stabilize onboarding/modal dismissal in e2e helpers 2026-04-06 11:16:54 -06:00
contexts refactor(tts,audiobook,tests): centralize TTS catalog, harden epub & UI flows 2026-04-06 10:28:00 -06:00
db refactor: Standardize database timestamp fields to bigint epoch milliseconds and update schema migrations. 2026-02-17 21:00:36 -07:00
hooks refactor(tts,config,audiobook): centralize TTS provider catalog and extract audiobook pipeline 2026-04-04 17:53:57 -06:00
lib refactor(tts): ensure timeout cleanup and validate remote voice payloads 2026-04-06 11:41:42 -06:00
types refactor(audiobooks): Refactor TTS generation and audiobook chapter creation 2026-03-19 11:54:33 -06:00
middleware.ts feat: implement US-only availability check for production instance in middleware and privacy page 2026-02-19 12:28:30 -07:00