Games becomes a parent app, with Kamo Universe and Chess under it

Featurekamo-shared-library
Shipped
September 8, 2026 at 12:21 AM UTC
Author
Kamo
Commit
817bb27

GAMES was a category with exactly one thing behind it — the nav icon launched Kamo Universe directly, so the app and the thing inside it named the same click. Chess is the second thing, and one icon cannot open two. Both become children of GAMES in the ServiceType tree, which is what lets an organization grant one game without the other. ACCESS_KAMOWORLD moves to KAMO_UNIVERSE and keeps its id AND its name: ROLE_RIGHTS persists the id, so changing it would revoke the right from everyone holding it, and **************** persists the NAME as a string, so a rename would silently reassign every security model that grants it. PLAY_CHESS (318) is new. Both ship COMPLETED + enabled deliberately. AppCatalogService derives availability from the stage and the auto-provision loop skips an unavailable app, so a lower stage on KAMO_UNIVERSE would leave every organization playing it today with no ORG_FEATURES row for the app that now owns their right — a live capability withdrawn by a stage flag. CHESS_GAMES holds a game as one row: FEN, because that is the format the rules are actually defined over, plus the SAN move list. There is no clock, on purpose — chess with one is a different game and cannot be paused by closing a laptop. CHESS_GAME_MOVES is the per-ply log, carrying the resulting position so a rewind is one read rather than a replay. MEDIA_OBJS_GAME makes a game invitation a real message row beside _transit and _call, so it survives a reload instead of living only on a WebSocket frame.

All changes

Like what you see shipping?

Every one of these updates lands in your workspace automatically. Start free and watch it grow week after week.

Start Free ForeverView Pricing