/guild posts staff-gated guild data into a public channel when a staff member runs it #46
Reference in New Issue
Block a user
No description provided.
Delete Branch "%!s()"
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?
Found while planning module-rust phase 16 (Discord slash commands), 2026-09-25. Not fixed there. It is out of that phase's scope.
The leak
server/commands/guild.command.jschecks the caller's rung against the shard'sguildsaudience. That is the right check for whether to answer, but the permitted answer is then returned withoutephemeral(the list form around line 163, anddetail()), so the bot posts it into the channel. A slash-command reply is seen by everyone in the channel, not just the caller.Failure scenario: an admin gates
guildstostaff. A moderator runs/guildin a public channel. The guild list (or one guild's members, online count, linked-account count and leaders) is posted where every member of that Discord server can read it. The shard's setting said only staff may see that.Refusals are already private: they set
ephemeral: true, and the bot turns a publicly-deferred reply into an ephemeral follow-up (TEAMS.md §7.1, the Teams phase 7 fix). This is the reverse case: a permitted answer that is narrower than public.The rule module-rust adopted (D127)
An answer that carries anything whose audience is narrower than
publicis returnedephemeral: true, privately to the caller. Answers the public may see stay public. For/guild, that meansephemeral: feature.audience !== 'public'on both the list and the detail envelopes.Plan of record for the Rust side:
docs/modules/rust/PLAN.md§32 (in progress).