Build and Push Docker Image / build-and-push (push) Successful in 55s
- Add timeout fallback in ttsDrain so the queue never permanently stalls when the browser fails to fire onend (common Chrome/Safari bug after extended use) - Call speechSynthesis.resume() before speak() to un-stick suspended synthesis on mobile - Rename "← Stop" / "← Cancel" to "← Back" on practice and test views - Add "← Previous word" button in spelling test so kids can go back one word (e.g. when audio broke) — pops the saved answer and replays Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>