mirror of
https://github.com/Heretek-AI/AetherTable.git
synced 2026-11-12 15:52:21 -10:00
Closes the five product gaps surfaced by the campaign-harness exploration: - Lobby REST API: create/join-by-invite-code/launch with dual-mode storage (Postgres lobbies+lobby_members / MemoryStore), host-only launch binding an engine session; LobbyView wired to real roster + invite code - Character persistence: player_characters table + CRUD; deploy endpoint materializes a stat block as an RBAC-owned engine entity (owner_player_id = deploying user); CharacterBuilder persists on deploy - Orchestrator proxy routes for spawn/cast-spell/move/turn-next/damage/ reactions-arm (service-token authenticated, EngineRejectedError mapping) - Observability: JSONL LLM call logger (tools + stream paths) and FastAPI request logging middleware; mitmproxy opt-in documented for MCP capture - Rate limiting: in-memory sliding window (auth 30/min, agent 60/min, default 600/min) returning 429 + Retry-After - Engine: orchestrator-service principal trusted to bind ownership on behalf of authenticated players during mediated spawns Co-Authored-By: Claude <[email protected]>