Ilia Denisov ecfb2d3351
Tests · Go / test (push) Successful in 1m58s
feat(admin-console): Stage 4 — games & runtimes domain
Add the games, runtime, and engine-version pages over the existing lobby,
runtime, and engine-version services (no new business logic).

- GET/POST /_gm/games                         list + create public game
- GET      /_gm/games/{id}                    detail incl. runtime snapshot
- POST     /_gm/games/{id}/force-start|stop    game state actions
- POST     /_gm/games/{id}/ban-member          ban a member (uuid + reason)
- POST     /_gm/games/{id}/runtime/restart|patch|force-next-turn
- GET/POST /_gm/engine-versions               registry + register
- POST     /_gm/engine-versions/{ver}/disable disable a version

Console depends on GameAdmin / RuntimeAdmin / EngineVersionAdmin interfaces
(satisfied by the concrete services) so the pages render in tests without a
database. Collection-mutating POSTs are mounted on the collection path to avoid
a static-vs-param route conflict in gin. Writes flow through the CSRF guard and
redirect back; the create form parses datetime-local as UTC.

Tests: list/detail (with and without a runtime), create (visibility/owner/time
assertions), force-start (+ bad-CSRF), ban-member (+ bad uuid), runtime patch
(+ missing version), engine-version list/register/disable, and unavailable.

Docs: backend/docs/admin-console.md page inventory extended.
2026-05-31 20:25:28 +02:00
2026-05-31 17:16:06 +02:00
2026-05-11 22:18:16 +02:00
2026-05-11 01:10:32 +02:00
2026-04-09 15:16:36 +03:00
2026-05-23 16:55:02 +02:00
2026-05-23 16:55:02 +02:00
S
Description
No description provided
34 MiB
Languages
Go 52%
TypeScript 38.1%
Svelte 8.8%
Go Template 0.3%
Makefile 0.3%
Other 0.3%