openreader/drizzle/sqlite
Richard R f9adba791d feat(tts,epub,db): enforce stable EPUB segment locators and add segmentKey identity
Implement strict validation for EPUB TTS segment locators, requiring stable spine coordinates (`spineHref`, `spineIndex`, `charOffset`) and rejecting legacy CFI-only locators. Introduce `segmentKey` as a normalized identity derived from segment text, used for robust merging and deduplication of synthesized and persisted segments. Update database schemas, API routes, and manifest logic to support the new locator format and segmentKey. Add helpers for locator resolution and segmentKey construction, with comprehensive unit tests for identity, normalization, and manifest grouping.

BREAKING CHANGE: Persisted EPUB TTS segment locators must now include stable spine coordinates; legacy CFI-only locators are no longer accepted. Consumers must handle the new `segmentKey` field for segment identity and merging.
2026-05-12 16:18:36 -06:00
..
meta feat(tts,epub,db): enforce stable EPUB segment locators and add segmentKey identity 2026-05-12 16:18:36 -06:00
0000_familiar_caretaker.sql refactor: Standardize database timestamp fields to bigint epoch milliseconds and update schema migrations. 2026-02-17 21:00:36 -07:00
0001_tts_segments.sql feat(reader,db): add segments sidebar and manifest API; update TTS segment schema 2026-05-04 15:02:05 -06:00
0002_add_segment_key_to_tts_segments.sql feat(tts,epub,db): enforce stable EPUB segment locators and add segmentKey identity 2026-05-12 16:18:36 -06:00