1.4.0 (2026-02-08)
New
Speech.speaksupports per‑utterance options viaSpeech.speak(text, options)and returns an utterance ID for tracking.
Breaking Changes
Speech.initialize→Speech.configure(also in native module interface and Jest mock).- Event payload
idtype changed fromnumbertostring. speakandspeakWithOptionsnow resolve withstring(utterance ID) instead ofvoid.speakWithOptionsis deprecated in favor ofspeak(text, options)(still present, but return type changed).
Fixes
- Android queue handling now cleans up completed/error items and avoids stale indices.
- Android stop/resume flow uses current utterance ID reliably.
- iOS voice listing handles
nilvoices safely. - iOS error handling guards against missing utterances and cleans up metadata.
HighlightedTextclamps ranges, tolerates unsorted highlights, handles empty inputs, and usesTextpress handling reliably.
Performance
- Android speech queue uses a
LinkedHashMapto reduce queue scanning and improve lookup predictability. HighlightedTextavoids sorting when highlights are already ordered and reduces intermediate allocations.
Full Changelog: v1.3.2...v1.4.0