Release v1.1.0 - Advanced AI Agent Upgrade & Secure Vault
We are excited to launch v1.1.0, featuring a major upgrade to the built-in AI Agent capability. This release introduces secure local credential storage, automated multi-provider fallback routing, memory-optimized summarization, and autonomous web search capabilities.
🚀 What's New
🔒 Android KeyStore Encryption Vault
- Encrypted Settings: All API keys entered for Google Gemini, Groq, and OpenRouter are now encrypted locally on the device using AES-CBC-PKCS7 with keys stored securely in the hardware-backed Android KeyStore.
- Multi-Provider Configuration: You can now store keys and configure custom models for Google Gemini, Groq, and OpenRouter simultaneously.
🔀 Multi-Provider Fallback Routing (Auto-Recovery)
- Zero Downtime: If your primary provider experiences network issues, HTTP 500 errors, or rate limits (HTTP 429), the app transparently shifts the request to any alternative provider you have configured.
- Dynamic Failover Status: Shows a real-time failover warning so you are always aware of which engine is generating your text.
🧠 Smart Chat Memory Compression
- Rolling Window: Only the last 10 messages of the chat history are sent to the provider to keep token usage small and processing fast.
- Background Summarization: When a chat exceeds 20 messages, the first 15 messages are summarized by a fast LLM in the background. The detailed history is deleted from the local database, and a single concise summary is prepended.
🌐 Autonomous Web Search (search_web)
- Real-Time Context: The AI Agent can now autonomously fetch recent information to answer temporal queries (e.g., "What is the latest stable version of Compose?").
- DuckDuckGo Scraper: Leverages a zero-dependency HTML search scraper locally on the device, feeding parsed snippets directly back into the LLM context.
🛠️ Under the Hood Changes
- Implemented
@Deletebatch deletion of message entities inside Room database (ChatMessageDao.kt). - Exposed dynamic settings sync within
MainActivity.kton app resume. - Clean separation of provider API keys and model configurations inside
ProviderFactory.kt.