v0.1.9: ARIA, Even Offline
ARIA has always been the heart of Cultures of the Belt — the advisor who watches your colony, reads the faction currents, and tells you what she sees. But ARIA depended on a live LLM connection. Lose connectivity, exhaust your API key, or just want to play in a restricted environment, and she went quiet.
Six-Tier Fallback Chain
ARIA now escalates through six tiers when forming a response: pure game-state heuristics → enriched analysis → multiple cloud providers (Groq, OpenAI, Anthropic) → a graceful offline mode if all external calls fail. The first tier that succeeds is the one you see. From your perspective, ARIA just answers — where that answer comes from is handled invisibly.
The offline heuristics aren't placeholders. They cover production warnings, faction tension, megastructure progress, and cultural drift — the same things the LLM analysis covers, derived directly from game state without any network call. Offline ARIA is less verbose than connected ARIA, but she's never useless.
Token Budget Display
The ARIA panel now shows your session token count with a compact progress bar. When you approach your session budget, a soft-cap warning fires before you hit the ceiling — so you can decide how to spend your remaining AI budget rather than suddenly losing ARIA mid-session.
This is part of a broader LLMProvider refactor that separates ARIA's advisory logic from the specifics of which model answers her. The architecture now cleanly supports swappable backends, which matters as we keep extending the advisor systems.
Full Changelog — v0.1.9
What's New
- Six-tier ARIA fallback chain — ARIA delivers insights even with no LLM connection; escalates through heuristics, Groq, OpenAI, Anthropic, and offline fallback
- LLMProvider interface — clean separation between ARIA's advisory logic and LLM backends; swappable providers without touching advisor code
- Token usage display + soft budget cap — session token count visible in ARIA panel; soft-cap warning fires before you exhaust your budget
Fixes
- Commander mode now correctly enforces session soft cap (previously skipped usage tracking)
- Registration flow now tries
m.login.dummybefore requiring an invite token — less friction for new players - Play gate no longer obscures Matrix auth modal during login
- TypeScript build error in
stateHandlersresolved