You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Tamper-evident hash chain over the room event log: every appended event
commits to its predecessor, and python -m multiplayer.manage <db> audit verify recomputes the chains and names the first divergence per room.
Database-backed credentials: hashed at rest, one row per token, revocable
without a restart, managed by the operator CLI (user add, token mint, token revoke, token list).
A WAL reader pool: a read outside a transaction no longer waits behind an
unrelated write transaction (previously measured blocking over a second).
The MIT LICENSE file the project metadata already claimed.
Changed
MULTIAI_AUTH_TOKENS is bootstrap-only. Authentication reads the user_tokens table on every request, so a revocation takes effect on the
next call; a revoked bootstrap token stays revoked across restarts.
A live WebSocket re-authenticates on its heartbeat and closes within about
two beats of its credential being revoked.
The server reports the installed package version instead of a hardcoded one.
Fixed
Migrations now apply atomically with the row that records them: a crash
mid-migration leaves the database exactly at the previous migration, and a
migration that manages its own transaction is refused outright.
Removed the vendored .agents bundle: 125 unlicensed third-party files
referenced by nothing, conflicting with the MIT claim.