Skip to content

v0.3.0

Choose a tag to compare

@yamyr yamyr released this 01 Mar 02:26
cd35b4b

0.3.0 (2026-03-01)

Features

  • add agent memory & learning system (Feature F) (4b32a9d)
  • add agent reasoning transparency panel (Feature C) (64f333b)
  • add live inter-agent communication (Feature A) (#150) (cf0ba69)
  • add Station Reactive Intelligence (Feature E) (638fcbc)
  • add world-data fine-tuning pipeline for continuous model improvement (80cd54c)
  • add world-data fine-tuning pipeline for continuous model improvement (707d84c)
  • Agent Memory & Learning (Feature F) (c7a1d06)
  • Agent Reasoning Transparency Panel (Feature C) (24145b9)
  • Station Reactive Intelligence (Feature E) — periodic LLM evaluation & coordination (1363a90)
  • ui: add communication visualization on map (#126) (72bfd50)
  • voice: add /api/voice-command endpoint with Voxtral transcription and LLM command parsing (#191) (ebfe37f)

Bug Fixes

  • add thread-safe guards to Broadcaster disconnect/send (#100) (09e106a)
  • add thread-safe guards to Broadcaster disconnect/send (#100) (e45c809)
  • ci: apply ruff format to 7 unformatted files to fix server-lint (#185) (aa3f1a3)
  • config: add pydantic Field validation for ports and intervals (f5d4502)
  • config: add pydantic Field validation for ports and intervals (4d456f1), closes #119
  • docker: add PYTHONUNBUFFERED and PYTHONDONTWRITEBYTECODE env vars (#180) (0936d2c)
  • docker: add PYTHONUNBUFFERED and PYTHONDONTWRITEBYTECODE env vars (#180) (45567f7)
  • ensure WebSocket disconnect cleanup via finally block (#101) (a195262)
  • ensure WebSocket disconnect cleanup via finally block (#101) (09d31da)
  • guard _random_free_pos against infinite loop (#118) (d663924)
  • guard _random_free_pos against infinite loop (#118) (ccc2af4)
  • harden Dockerfile with non-root user, pinned uv, and HEALTHCHECK (#117) (520ba45)
  • harden Dockerfile with non-root user, pinned uv, and HEALTHCHECK (#117) (c846bde)
  • remove legacy GRID_W/GRID_H boundary checks from rover _build_context() (085c7b2), closes #172
  • remove legacy GRID_W/GRID_H boundary checks from rover context (#172) (0bfffe1)
  • replace f-string logging and print() with lazy logger (#134, #135) (2b2be67)
  • replace f-string logging and print() with lazy logger (#134, #135) (36307ac)
  • tests: add tearDown to 5 test classes to prevent state leakage (4a3fa86)
  • tests: add tearDown to 5 test classes to prevent state leakage (#174) (ce07ce7)
  • tests: replace blocking sleep with asyncio.sleep, add file leak guard (#162) (8c2e1c3)
  • tests: replace blocking sleep with asyncio.sleep, add file leak guard (#162) (86cbda3)
  • ui: add cleanup for audio, toast timers, and animation timers on unmount (#94) (7ff9fd6)
  • ui: add cleanup for audio, toast timers, and animation timers on unmount (#94) (92f61d0)
  • ui: add error handling for WS JSON.parse and fetch calls (#95) (166525a)
  • ui: add error handling for WS JSON.parse and fetch calls (#95) (93ba50b)
  • ui: add error handling to SimulationPage fetch calls (5325720)
  • ui: add error handling to SimulationPage fetch calls (1ff2d34), closes #121
  • ui: add exponential backoff to WebSocket reconnect (68b8d73)
  • ui: add exponential backoff to WebSocket reconnect (bfd93ed), closes #122
  • ui: add flex-wrap and mobile breakpoint to MissionBar (#163) (7fe89e7)
  • ui: add flex-wrap and mobile breakpoint to MissionBar (#163) (268d721)
  • ui: add missing accessibility attributes across 5 components (c7e25e7)
  • ui: add missing accessibility attributes across 5 components (01d6111), closes #140
  • ui: batch accessibility, perf, and reactivity fixes (#164) (bf3cb8f)
  • ui: batch accessibility, perf, and reactivity fixes (#164) (fb42308)
  • ui: floor camera coordinates in WorldMap tile computation (4f7de25)
  • ui: floor camera coordinates in WorldMap tile computation (3097dfd), closes #120
  • ui: guard AgentDetailModal against null mission and visited (#157) (1554b7b)
  • ui: guard AgentDetailModal against null mission and visited (#157) (c524165)

Performance Improvements

  • ui: stop WorldMap rAF loop when camera is idle (#158) (f463f1d)
  • ui: stop WorldMap rAF loop when camera is idle (#158) (d887a91)
  • use spatial hash for WorldMap tileConcentration — O(tiles+stones) (0ba0157), closes #141
  • world: add spatial index for O(1) stone lookups (38a5075)
  • world: add spatial index for O(1) stone lookups (#176) (fbf4b70)
  • WorldMap tileConcentration spatial hash — O(tiles+stones) (bf64b8b)