16 Commits

Author SHA1 Message Date
b91bfcce2f add ReaderViewModel: observable view model wrapping AudioEngine, chapter offsets, synthesizer init
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-14 05:50:04 +01:00
ef6f9eeefc task 8: add readingMode field to StoredBook, default to scroll
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-14 05:36:09 +01:00
ec5bb6d0af task 7: restructure PlainTextParser to single-chapter model, update tests
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-14 05:36:06 +01:00
bfbfb93b5a task 6: produce attributedText in EPUBParser, add attributed string tests
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-14 05:36:04 +01:00
31d1f1d20f task 5: add AttributedStringBuilder for platform-aware font attributes
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-14 05:36:01 +01:00
3329a2ac82 task 4: add attributedText to Chapter
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-14 05:35:58 +01:00
c5999f6855 cache Book.sentences as stored let property, add sentencesAreCached test
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-14 05:24:42 +01:00
60fef9c75b wrap synthesis in autoreleasepool, clear MLX cache after each sentence
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-14 05:24:40 +01:00
bf7fce3fae add clearCache() to Synthesizer to free MLX memory after synthesis
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-14 05:24:37 +01:00
8d429dc1db add AudioEngine with AVAudioEngine playback, one-ahead buffering, skip controls
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-13 22:22:07 +01:00
c81b78bea0 add Synthesizer wrapper around KokoroSwift with voice pack support
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-13 22:17:45 +01:00
c76ef0aec6 add SwiftData storage with BookStore for library management, position tracking
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-13 21:55:26 +01:00
e7c9c018f1 add BookParser facade with format detection, Book character addressing tests
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-13 21:53:53 +01:00
c753a3a147 add plain text parser with paragraph-based chapter splitting 2026-03-13 21:52:42 +01:00
2e647d7fe3 add EPUB parser with ZIP extraction, OPF/spine parsing, HTML-to-text
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-13 21:51:34 +01:00
53b91ee4ed scaffold VorleserKit package with shared types, sentence segmenter, tests
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-13 21:48:39 +01:00