Voice & TTS
- Voice capture no longer hangs after stop (AudioRecord lifecycle)
- Stopping TTS shows [TTS stopped] instead of duplicating the reply
- TTS waits for completion before marking response done
Local AI
- Race-free model loading with clear "Loading model..." / error states
- Fixed duplicate user turns in local LLM prompts
Search & prompts
- Improved multilingual search/weather intent routing
- Unified system prompts with anti-hallucination rules
UI
- Compact chat keyboard layout fixed (no jump to top)
- Restored StateIndicator and Voice Model download button
Other
- Docs cleanup, unit tests, removed dead JNI stubs