- Persona injector: concise natural language rules, not raw YAML - Context builder: skip empty memory, skip raw intent data - Prompt reduced from 2000+ tokens to ~500 tokens - LLM response quality improved (natural tone, no confusion)
- model: shared data types (Message, Intent, StreamToken, LLMMessage) - persona: YAML/Raw loading + system prompt injection - llm: OpenAI-compatible adapter with streaming + semantic cache - context: sliding window context store with token budgeting - subsession: parallel provider dispatch + review message parser - orchestrator: intent analysis pipeline (IoT/greeting/chat/memory) - background: autonomous thinking engine - 20+ tests, build + vet clean, ~130 total tests