openreader/src/app
Richard Roberson 70723f4c1d perf(api): add LRU cache for TTS audio responses
Introduce an in-memory LRU cache for TTS audio with configurable
size and TTL via TTS_CACHE_MAX_SIZE_BYTES and TTS_CACHE_TTL_MS.
Return X-Cache headers (HIT/MISS) and set route runtime to nodejs.
Cache key includes provider, model, voice, speed, format, text,
and optional instructions.

Normalize non-Kokoro multi-voice input to the first token while
preserving full voice string in the cache key. Default Deepinfra
model to hexgrad/Kokoro-82M when none is provided.

Fix Deepinfra Kokoro behavior by enforcing single-voice selection:
- ui: only enable multi-select when provider supports >1 voices
- voice utils: Deepinfra max voices set to 1
- tests: gate provider selection and multi-voice tests by CI and
  increase timeout for stability
2025-11-12 23:28:05 -07:00
..
api perf(api): add LRU cache for TTS audio responses 2025-11-12 23:28:05 -07:00
epub/[id] feat(audiobook): add chapter-based export with UI and API 2025-11-11 13:32:30 -07:00
html/[id] feat(audiobook): add chapter-based export with UI and API 2025-11-11 13:32:30 -07:00
pdf/[id] feat(audiobook): add chapter-based export with UI and API 2025-11-11 13:32:30 -07:00
apple-icon.png Apple web app capable changes 2025-01-26 16:49:05 -07:00
favicon.ico Apple web app capable changes 2025-01-26 16:49:05 -07:00
globals.css feat(audiobook): add chapter-based export with UI and API 2025-11-11 13:32:30 -07:00
icon.png Apple web app capable changes 2025-01-26 16:49:05 -07:00
icon.svg Apple web app capable changes 2025-01-26 16:49:05 -07:00
layout.tsx feat(audiobook): add chapter-based export with UI and API 2025-11-11 13:32:30 -07:00
manifest.json Apple web app capable changes 2025-01-26 16:49:05 -07:00
page.tsx feat(audiobook): add chapter-based export with UI and API 2025-11-11 13:32:30 -07:00
providers.tsx Add TXT and MD support with and HTML viewer with react markdown + many refactors to support it 2025-04-15 02:28:51 -06:00