New Inference Engines
Local Diffusion (stable-diffusion.cpp)
On-device image generation powered by stable-diffusion.cpp. Runs Stable Diffusion 1.5 in GGUF format, fully offline. Configurable steps, CFG scale, seed, and image size presets. Import
your own GGUF diffusion models.
Voice (whisper.cpp)
On-device speech-to-text powered by whisper.cpp. Record audio or pick a WAV file, transcribe offline. Supports Whisper Tiny through Small in multiple languages. Audio never leaves the
device.
NPU / TPU Acceleration
All Qualcomm Hexagon NPU variants (Snapdragon 8 Gen 2 / 8 Gen 3 / 8 Elite / newer), Google Tensor TPU (Pixel 8–10), and MediaTek NPU bundled in a single APK. Select NPU in the model
accelerator dropdown — Box auto-detects the chip at runtime.
Security
- Biometric App Lock — Optional lock via BiometricPrompt, re-prompts on every foreground
- Encrypted Chat History — All conversations persisted to SQLCipher-encrypted Room database (AES-256 at rest)
- Passphrase isolation — BiometricEncryptionManager + PassphraseHolder keep the DB key in memory only while authenticated
- Hard Offline Mode — Toggle in Settings forces full airgap; all download attempts are blocked
- Security Audit Log — On-device append-only log of security-relevant events
- Prompt sanitisation — SecurityUtils.sanitizePrompt() strips control characters before inference and persistence
- Tapjacking protection — filterTouchesWhenObscured on the chat scaffold
Chat
- Conversations persist across sessions and resume where you left off
- Chat History screen — browse, resume, or delete past conversations
- Multimodal input in AI Chat with Gemma 4 E2B / E4B — attach documents, record audio, take photos
- Improved message input and scroll behaviour
Agent Skills
New built-in skills:
- Budget Tracker
- Password Generator
- Translator
Updated skills: Calculate Hash, QR Code
Removed: Kitchen Adventure, Text Spinner
Model Management
- Import any GGUF file from local storage at runtime
- Set display name and accelerator (CPU / GPU / NPU) at import time
- Fixed: models appearing multiple times after screen rotation (deduplication guard in loadModelAllowlist)
- Fixed: Voice and Local Diffusion showing 0 models after allowlist reload
- Gradle 9.4.1 compatibility
- stable-diffusion.cpp and whisper.cpp added as native submodules
- llama.cpp updated
- Plus a whole lot more !