openreader/tests
Richard R d6ae2baa6f refactor(tts,config,audiobook): centralize TTS provider catalog and extract audiobook pipeline
- Introduce a shared tts-provider-catalog to centralize provider/model/voice defaults
  and feature flags (supportsTtsInstructions, providerSupportsCustomModel, resolveProviderModels,
  getDefaultVoices, etc.). Replace ad-hoc provider logic across server and client with catalog calls.
- Replace inline voice/model UI logic in SettingsModal, AudiobookExportModal, TTSContext,
  generate server code, and voice hook to use catalog helpers (resolveTtsSettingsViewModel,
  supportsTtsInstructions, getDefaultVoices).
- Extract audiobook generation responsibilities into a small client-side pipeline:
  - Add createEpubAudiobookSourceAdapter and createPdfAudiobookSourceAdapter adapter modules
    to prepare chapters from EPUB/PDF sources.
  - Add runAudiobookGeneration and regenerateAudiobookChapter pipeline functions to handle
    chapter preparation, progress tracking, request header construction, and retry/abort behavior.
  - Wire adapters/pipeline into EPUBContext and PDFContext to simplify and centralize audiobook flow.
- Move config preference helpers out of ConfigContext into dedicated client modules:
  - buildSyncedPreferencePatch (lib/client/config/preferences.ts)
  - applyConfigUpdate and getVoicePreferenceKey (lib/client/config/updates.ts)
  - Use these helpers in ConfigContext to keep update logic small and testable.
- Add TTS settings view model resolver (lib/client/settings/tts-settings.ts) and tests
  for the tts-provider catalog and config helpers (tests/unit/tts-provider-catalog.spec.ts).
- Minor usages updated: AudiobookExportModal, SettingsModal, useVoiceManagement, TTSContext,
  server tts generation, and various context files to consume the new modules.

Why: Reduce duplication, improve testability, and separate concerns for provider metadata,
UI view-model logic, and audiobook generation flow. Breaking changes: none.
2026-04-04 17:53:57 -06:00
..
files feat(tts): add smart sentence continuation 2025-11-14 12:00:03 -07:00
unit refactor(tts,config,audiobook): centralize TTS provider catalog and extract audiobook pipeline 2026-04-04 17:53:57 -06:00
accessibility.spec.ts refactor(documents): migrate from IndexedDB to server-backed storage with caching 2026-02-08 11:15:57 -07:00
delete.spec.ts feat(ui): add five new light themes and redesign settings modal 2026-03-19 10:24:16 -06:00
export.spec.ts fix(config): preserve voice selection when resetting TTS provider settings 2026-03-19 13:41:37 -06:00
folders.spec.ts refactor(documents): migrate from IndexedDB to server-backed storage with caching 2026-02-08 11:15:57 -07:00
global-teardown.ts feat: Refactor server-side document, audiobook, and authentication logic, introduce new client-side APIs and caching, and update related tests. 2026-02-17 19:30:12 -07:00
helpers.ts feat(tts): add continuation loop guard and block fingerprinting 2026-04-04 14:50:34 -06:00
landing-routing.spec.ts feat(auth): implement session gatekeeping and architectural reorganization 2026-02-15 11:12:42 -07:00
navigation.spec.ts test: improve test reliability and adjust timeouts 2026-02-16 01:50:43 -07:00
play.spec.ts fix(config): preserve voice selection when resetting TTS provider settings 2026-03-19 13:41:37 -06:00
upload.spec.ts refactor(documents): migrate from IndexedDB to server-backed storage with caching 2026-02-08 11:15:57 -07:00