Animations. Upgrades. Diagnostics. The drone learned to fly.
A dedicated animation bar renders 2-line sprites in-place. Scan, travel, look, hazard, drone, and exchange — each with its own character. Toggleable via config animations off.
The travel drone sprite visually upgrades as you install components. Eyes go o→O, the belly fills with [] brackets — one pair per upgrade.
Type update mid-game to check for new versions. Downloads the right binary for your platform, verifies integrity, and guides installation. Also: --upgrade flag.
Model downloads now show a TUI-compatible progress bar at 10% intervals. Ctrl+C during download offers to switch to a smaller model. Loading shows animated frames.
Dev mode now tracks every inference call: elapsed time, prompt/completion tokens, RSS memory delta. Last 5 calls visible in the panel. Logged to JSONL.
Test matrix expanded to 3 OS × 2 Python versions = 6 jobs. Ubuntu, Windows, macOS. Python 3.11 + 3.12. Coverage reporting via pytest-cov.
Every upgrade you install changes the drone's appearance during travel. The sprite is rendered in the animation bar — a dedicated widget that updates in-place without scrolling the game log.
[ ]--(+)--[ ] \___________/
[O]--(+)--[O] \[]_________/
[O]--(+)--[O] \[][]___[][][/
[O]--(+)--[O] \[][][]_[][]/
.---. .---. ( o )-( o )
((*)) ((*)) Scan complete.
/!\ — HAZARD —
#animation-bar widget for in-place 2-line sprite animationslook commandscan commandconfig animations on|off toggle + --disable-animation flagupdate command — check GitHub for new versions, download platform binary--upgrade CLI flag for headless update checksmodel command — re-download or switch AI model mid-game_timed_inference() wraps all 4 LLM call sites with timinglog_llm_call() in dev mode — last 5 calls + JSONL logging--prefer-binary for llama-cpp-python on Windows CI