- [changed] Changelog and roadmap pages carry the same layout everywhere, and their "nothing here yet" text is translated instead of English-only.
- [changed] Guide pages read like a book — a Back button on the title line, and links to the previous and next guide at the foot, alongside the rest of the section.
- [fixed] Guide summaries are whole sentences — cards and search results used to cut off wherever the source file happened to wrap a line.
- [added] Client logs — the game uploads its own log lines and they are re-emitted into the server's own log stream, so one search for a session id returns both sides of a failure. Browse sessions at
/admin/logs; off by default. - [added] Logs page filters by client session and user, and separates client entries from the server's own tail.
- [fixed] Logins survive a busy database — the analytics day-marker and daily counters drop a failed write instead of failing the request they ride on.
- [fixed] Repeat quests re-arm right away again, instead of once an hour.
- [changed] Matchmaking is near-instant — a join sweeps immediately instead of waiting for the tick.
- [added] Performance guide — measured throughput, capacity and database choice.
- [added] Socket buffer size is configurable — the largest per-connection memory cost.
- [changed] Logins return sooner — the last-seen and activity writes moved off the request path.
- [fixed] Concurrent signups no longer queue behind each other on SQLite.
- [added] Load-test harness — per-feature benchmarks and a capacity journey, in
stress/. - [fixed] Benchmark RPCs measured an error path, not a locked write.
- [fixed] Realtime events arrived twice
- [fixed] Language flags are cached, so they no longer pop in after the text.
- [fixed] Deleting an account deletes its avatar from storage.
- [changed] One heading scale across the shipped pages.
- [added] Player analytics — D1 / D7 / D30
- [fixed] Accessible theme colors
- [added] RULES.md — design & accessibility rules.
- [added] Grouped quests.
- [added] Repeat quest reset type.
July 2026
- [breaking] Renamed to Gamend.
- [added] Captcha on the register and magic-link forms
- [added] Chat moderation — word filter, report queue, mutes
- [breaking] One theme file
- [added] Translation pipeline
- [added] All 30 locales fully translated (machine-translated, pending review).
- [added] Icons everywhere —
icon_urlon notifications, tournaments, groups and leaderboards; - [added] Quest chains are browsable; a chain lists as one quest.
- [breaking] API paths use underscores
- [breaking] One pagination meta shape on every list response.
- [added] API conventions spec +
mix gamend.api.lintin precommit and CI. - [added] Settings: one declared config surface.
- [changed] Guides are markdown files.
/docs/setup - [changed] Times are shown in the reader's timezone.
- [added] Retention for every unbounded table.
- [added] Ready checks
- [added] Push notifications
- [added] Lobby state
- [added] Quests / progression.
- [breaking] Achievements removed — replaced by permanent quests
- [added] Economy.
- [added] Inventory.
- [added] Object storage — with local-disk and S3/R2 backends; presigned avatar uploads.
- [added] Admin Oban Web dashboard at
/admin/oban+ jobs/storage. - [added] Lobby snapshots — opt-in via
LOBBY_SNAPSHOTS_ENABLED. - [added] Matchmaking (ticket queue), admin page and hooks.
- [added] Party matchmaking, matched as one unit.
- [added] Tournaments (bracket system).
- [added] User blacklist, enforced in matchmaking and lobbies.
- [added] Admin runtime page: hooks, env vars, protobuf, channels, events, ER diagram, plugins, jobs.
- [added] Protobuf realtime format (opt-in).
- [changed] Realtime state events send full payloads.
- [removed] JSON delta encoding.
- [removed] Dead modules and client delta code.
- [added] Unique usernames.
- [breaking] UUIDv7 string ids.
- [added] JWT revocation.
- [added] Persistent IP bans.
- [added] Redis rate limiting.
- [added] Data retention pruning.
- [added] New plugin hooks.
- [added] Observability metrics.
- [security] Auth, payments, RPC hardening.
- [perf] Faster broadcasts and queries.
- [fixed] WebRTC RPC replies.
April 2026
- [changed] Root host app restructure.
- [added] Browser theme color, sitemap.xml, robots.txt.
- [added] Native HTTPS
- [added] Account Activation beta mode.
- [added] Translations: Spanish, French, Romanian.
- [added] Roadmap page.
- [added] Security: RealIp, IP bans, OAuth CSRF, rate limiting, WebRTC - limits, security headers.
- [added] OPENAPI_ENABLED feature gate.
March 2026
- [changed] Make Leaderboards accept label instead of user_id.
- [added] Initial version of Achievements.
- [added] Initial version of Rate Limiting.
- [changed] Self-hosted Inter font and eliminated all inline scripts.
- [added] Initial version of WebSocket updates.
- [added] Initial version of WebRTC updates.
- [changed] Admin interface with realtime connections view.
Feb 2026
- [added] Initial version of CHANGELOG and Blog.
- [added] Initial version of Groups.
- [added] Initial version of Parties.
- [added] Initial version of Notifications.
- [added] Initial version of Chat.