Last Updated: May 16, 2026 Project: Jarvis Android Assistant
- Event-driven pipeline (Input → Intent → Plan → Execute → Respond)
- 6-state state machine: IDLE, BARN_DOOR, ACTIVE, THINKING, SPEAKING, HOUSE_PARTY
- In-memory EventBus with 8 event types
- PipelineOrchestrator with full pipeline execution
- Android SpeechRecognizer STT (streaming partial + final)
- Wake word engine using SpeechRecognizer (keyword spotting)
- Continuous listening in HOUSE_PARTY mode
- RuleBasedIntentRouter with 30+ patterns
- Supports: OPEN_APP, SYSTEM_CONTROL, CurrentTime, Alarm/Timer, SHOW_HELP
- Entity extraction for app names, times, durations, percentages
- LLM fallback for complex queries
- Planner interface with Plan/PlanStep schema
- Execution engine with timeout, retry (max 3), cancellation support
- Skill execution framework
- AppLauncherSkill - launches installed apps
- CurrentTimeSkill - returns formatted time
- SystemControlSkill - flashlight, BT, WiFi, volume, brightness, DND, mobile data, location, airplane mode, alarms, timers
- HelpCenterSkill - in-app help
- Markdown file storage (~/.jarvis/memory/)
- Hash-based embeddings (HashingEmbeddingModel - 384-dim, fast)
- Vector similarity search with cosine similarity
- Hybrid ranking: similarity + recency + source weights
- RAG-inspired retrieval pipeline
- Online-first: OpenAI, Anthropic, Google Gemini support ready
- Per-provider fallback with smart cooldown tracking
- Offline support: LiteRT on-device models (Gemma 4, Qwen 2.5, Gemma 3)
- Model manager with download/delete/activate UI
- OutputChannel interface with Listening/Thinking/Speaking states
- UI state callbacks integrated with MainActivity
- TTS via Android TextToSpeech
- Foreground service (JarvisRuntimeService)
- Overlay screen (not floating bubble)
- 8 permissions declared (RECORD_AUDIO, CAMERA, INTERNET, etc.)
- Compose UI with Material 3
- .env config support
- 17 test files (15 unit + 2 instrumented)
- Core tests: PipelineOrchestratorTest, SkillExecutionEngineTest, LocalFirstLLMRouterTest
- Intent tests: RuleBasedIntentRouterTest
- Memory tests: MarkdownFileMemoryStoreTest
- Add multiple online LLM providers (OpenAI, Anthropic, Gemini)
- Implement per-provider cooldown tracking (5-24h for credit exhaustion)
- Add provider health checking
- Configure API keys via on device app storage, the users enter api keys and u store them in app storage.
- Enable memory write pipeline (LLM-assisted note taking)
- Connect memory retrieval to LLM context injection
- Implement context window overflow handling (truncation)
- Test RAG lookup reliability
- ✅
Get online LLM providers working with fallback - ✅
Integrate memory with LLM context (RAG) - Test memory + LLM without crashing
- Handle context window limits gracefully
- Add provider-specific cooldowns
- Optimize wake word detection accuracy and latency
- Reduce false triggers in noisy environments
- Add core skills (WiFi, messaging, reminders)
- Implement skill discovery mechanism
- Accessibility Service for direct system control
- Floating bubble overlay (future scope)
- Multi-turn conversation context
- Response streaming
| Component | Status |
|---|---|
| Core Pipeline | ✅ 90% |
| Input (STT/Wake) | ✅ 80% |
| Intent | ✅ 50% |
| Skills | ✅ 20% |
| Memory | ✅ 70% |
| LLM (Online) | |
| Output | ✅ 60% |
| Android Integration | ✅ 70% |
| Testing |
Overall: ~65% (focusing on online LLM + memory RAG reliability)
- Pivot: Online-first LLM (was offline-first). Offline support retained for future.
- Memory: Hash-based embeddings (was neural - too slow for mobile)
- Overlay: Full-screen overlay (not floating bubble)
- Accessibility: Future scope (not current priority)
- State count: 6 states (spec updated from 4)