Releases: mx37/gos-ai
Releases · mx37/gos-ai
Release list
v1.2.1 – Bug fixes
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
v1.2.0 – Smarter search routing and Material 3 polish
-
Added OpenAI-compatible function calling for web search:
- Introduced typed tool call models and standard
tools[]schema forweb_search - Added streaming tool call parsing for OpenRouter SSE responses
- Added follow-up tool result handling so search results are injected back into the chat
- Replaced older ad-hoc web search detection with model-driven tool calling for ambiguous queries
- Introduced typed tool call models and standard
-
Added smarter retrieval routing:
- Added multilingual intent detection for web search and weather queries
- Added Unicode normalization for accented languages
- Added negative intent handling so local tasks like explaining, translating, writing, or calculating do not trigger search
- Added direct routing for clearly current/live queries such as news, prices, versions, availability, schedules, and weather
-
Added weather and search provider support:
- Added Open-Meteo weather integration with current conditions and short forecast context
- Added LangSearch as an additional configurable search provider
- Extended secure key storage and settings for new providers
-
Removed GitHub Copilot integration:
- Removed Copilot client/auth code and related settings
- API provider selection is now OpenRouter or Local only
-
Improved local AI support:
- Added Gemma prompt format support for llama.cpp
- Added configurable stop tokens per model format
- Updated local model loading to pass model format metadata
- Changed default local model to
qwen3-4b
-
Updated AI model configuration:
- Added custom OpenRouter model ID support
- Updated cloud model list
- Improved local model display names in chat
-
Refreshed the UI with Material 3 improvements:
- Reworked bottom navigation and removed the broken center assistant decoration
- Redesigned Settings with a cleaner setup summary, denser sections, better rows, and larger touch targets
- Fixed Settings top spacing while preserving Home safe-area padding
- Updated theme colors, typography, shapes, fullscreen response UI, and Vosk language management UI
-
Improved compact assistant behavior:
- Fixed keyboard handling so the compact chat window no longer jumps to the top
- Added bottom-sheet style sizing and internal scrolling similar to Gemini
- Improved expanded chat surfaces, message bubbles, loading states, history rows, and stop handling
-
Improved security, networking, and diagnostics:
- Extended network security configuration for new provider flows
- Improved response finalization, source handling, URL detection, and TTS output text
- Added unit coverage for multilingual retrieval intent detection, weather detection, weather location extraction, and non-search negative cases
-
Bumped app version to 1.2.0 (versionCode 3)
v1.1.1 – Bug fixes and stability improvements
Fixes #1: crash after downloading Vosk voice pack - Fixed local AI (llama.cpp) initialization by building and packaging native libraries for Android arm64-v8a - Added build-llama-android.sh script to automate llama.cpp compilation with OpenMP disabled (GGML_OPENMP=OFF, GGML_LLAMAFILE=OFF, OpenMP_FOUND=0) to avoid libomp.so dependency - Verified libggml-cpu.so has no libomp.so dependency using readelf - Added checkLlamaPrebuilt Gradle task to validate presence of prebuilt native libraries before build - Configured jniLibs.srcDirs to include prebuilt/arm64-v8a in the APK - Extended ProGuard rules for JNA/Vosk to prevent obfuscation issues (Callback, PointerType, Library classes and related attributes) - Improved VoskTranscriber model detection logic with flexible lookup: am/final.mdl, am/model.mdl, final.mdl, model.mdl, or any .mdl file recursively - Added detailed logging of model directory contents and full exception diagnostics during Vosk initialization - Updated LOCAL_AI_SETUP.md with llama.cpp build instructions and OpenMP behavior notes - Bumped app version to 1.1.1 (versionCode 2) Technical details: - Native libraries built for arm64-v8a: libggml-base.so, libggml-cpu.so, libggml.so, libllama.so - CMake configuration ensures compatibility by disabling OpenMP-based threading - JNA bindings preserved via extended keep rules to ensure reliable native library loading - Model validation now supports multiple Vosk model directory structures - Improved diagnostics simplify troubleshooting of speech recognition failures
v1.1.0 – Offline AI & Exa AI Support
This release adds local AI support for offline usage and introduces Exa AI as an alternative search engine to Brave Search, enhancing privacy and flexibility for your GrapheneOS AI assistant.
Changes in v1.1.0:
- Added offline AI support (local inference with Llama).
- Integrated Exa AI as an optional search provider.
Initial Release
First Public Release
The first public release of GrapheneOS AI Assistant is here.
Features
- Voice and text input
- Multiple ASR engines: Android, Vosk, Groq
- LLM integrations
- OpenRouter
- GitHub Copilot
- Image analysis support
- Web search via Brave Search
- Quick activation using Volume Up + Down buttons
Tested Environment
- Device: Pixel 9 Pro
- OS: Android 16
- ROM: GrapheneOS