Prototype administrative discussion mute controls

Let owners/operators mute or unmute new public/private sends from a human seat while retaining history, incoming messages, gameplay and credentials. Fence metadata and durable audit writes with live authority, membership and versions. Preserve exact admin/message retries and inherit restrictions through seat recovery.

Validation: types/lint, 5431 offline tests, build, 52 HTTP integration tests, 24 administrator HTTP groups, independent SQL/privacy/UI review and desktop/mobile refresh acceptance. All 2230 prior games and 4746 seats preserved. Additive migration 0016. Verified runtime fingerprint 588967fbb9c2e3b6abe2990c4fce96ee69e2256fb7e3ee416314b87593cebba9; documentation-only grammar/button-label review gives b5e57bdd26812debede91c588e38f247f1fa895ad23e7ae30bc8550eedcd90ec. New-revision deployed acceptance remains open; full admin/rules scope is unfinished.
This commit is contained in:
Quintine committed 2026-09-26 14:30:52 +10:00
1 parent 2cddf03932
commit 160fdc1f30
26 files changed
+3008 -33

No files matched your search

+10
View File
@@ -28,6 +28,16 @@ resumes updates. Channel changes discard obsolete read results. There are no
public direct-message counts, typing indicators or global sequence numbers.
Messages are stored durably; pagination does not delete old history.
## Discussion moderation
An administrator can [mute new messages from a seat](ADMIN_DISCUSSION.md). The
player sees a persistent explanation; reading history, receiving messages and
playing remain available. The setting follows recovery or handover and is never
shown as another player's private activity. New sends are checked at database
commit. An exact previously committed send can still be confirmed while muted;
no new message is created. Refresh availability after an unmute, or allow the
normal latest-message poll to update the controls.
## Saved retries and state isolation
The browser saves an exact message UUID, recipient and body in tab storage before