Clone this repository
For self-hosted knots, clone URLs may differ based on your setup.
Download tar.gz
- Add /api/tts endpoint using msedge-tts crate for high-quality
Filipino neural voices (fil-PH-BlessicaNeural default)
- Disk-based LRU cache in data/tts-cache/ to avoid re-synthesis
- Update useSpeech hook to fetch from server and play audio via
HTMLAudioElement instead of Web Speech API
- Add loading spinner to SpeakButton while audio is fetched
- TTS is now always available regardless of browser support
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Remove orphaned Divider in ReviewPage card (no content above it after
message moved to SpeechBubble)
- Remove unused Divider import
- Simplify lowHeartMessages in LessonPage: only 2 of 4 entries were
reachable, replaced array with direct ternary
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>