feat(shard): admin write plane, help-page queue, and public champion board #58
Reference in New Issue
Block a user
No description provided.
Delete Branch "feature/shard-admin-champs"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Wires up the three uo-link sidecar surfaces that weren't integrated yet. Extends the merged uo-link integration.
Champion spawns (public)
shard_champstable; ingestchamp.update/champ.removeinto our own store (served like online/houses, survives a shard outage)./site/champsboard with a Champions nav link; live via the existing SSE feed (champ.*added to the public allowlist).Staff write plane (admin + moderator)
kick/ban/unban/broadcastvia/admin/shard/*.actoris stamped server-side from the session — never sent by the browser. Sidecar status codes mapped (403 disabled/protected, 404 unknown, 503/504 transient).admin.auditevents are logged and surfaced at/admin/shard/audit./admin/shard-ops) with broadcast, account actions, support queue, and a live audit log./admin/users/:id) and character views via a reusableShardAccountActionscomponent (self-gates to staff, so it's safe inside player-shared components).Help-page (support) queue (admin + moderator)
shard_pagestable; ingestpage.new/page.updated/page.closed; respond/close via/admin/shard/pages/*./champsand/pageson every WS (re)connect, guarded so a failed call never wipes local state.Out of scope
ADMIN_CONTROLS.mdrecords it as "Not planned" (2026-07-13). Adding it needs an/admin/squelchsidecar endpoint first.Testing
champ.*/page.*/admin.audit(server/test/shardIngest.champsPages.test.js) — full suite 169/169 green.npm run buildclean; Swagger regenerated.admin.ok,admin.auditwithactor:"web:admin"flowing back to the audit log), plus mapped 403/404/400 error cases.🤖 Generated with Claude Code
https://claude.ai/code/session_0114TpmrNW4wNXsHq5CR72jQ