-
Notifications
You must be signed in to change notification settings - Fork 2
Closed
Labels
priority: lowLow priorityLow priorityscope: dashboardWeb dashboardWeb dashboardscope: engagementCommunity engagementCommunity engagementtype: featureNew featureNew feature
Description
Summary
Add a "quiet mode" feature where users can temporarily silence the bot in a specific channel by mentioning it with a command like @Bot quiet.
Proposed Behavior
Command
- Mention the bot with keywords like:
quiet,shush,silence,stop - Example:
@Volvox Bot quiet for 30 minutes
Permissions (Configurable)
- Default: Moderator role required
- Configurable via web dashboard: Can be set to "Anyone", "Moderator", or "Admin"
- Setting path:
config.quietMode.allowedRoles— array of role IDs, or["any"]for everyone - Respects existing permission system (
permissions.moderatorRoleId,permissions.adminRoleId)
Web Dashboard Configuration
New section in config editor:
{
"quietMode": {
"enabled": true,
"allowedRoles": ["moderator"], // Options: ["any"], ["moderator"], ["admin"], or specific role IDs
"defaultDurationMinutes": 30,
"maxDurationMinutes": 1440
}
}UI Controls:
- Toggle: Enable/Disable quiet mode feature
- Select: Who can use it (Anyone / Moderator / Admin / Specific Roles)
- Number input: Default duration (minutes)
- Number input: Maximum allowed duration (minutes)
Duration
- Default: 30 minutes (configurable in dashboard)
- Max: 24 hours (configurable in dashboard)
- Format:
@Bot quiet [for] [X] [minutes/hours]
Scope
- Per-channel only — does not affect other channels
- Bot continues to work normally in other channels
- Does not affect DM conversations
Restoration
- Automatically resume after duration expires
- Manual restore:
@Bot unquietor@Bot resume - Shows remaining time if asked:
@Bot status
Storage
- Store active quiet modes in Redis/memory with TTL
- Key format:
quiet:{guildId}:{channelId} - Value:
{ until: timestamp, by: userId }
Use Cases
- Meeting/channel-specific discussions where bot responses are distracting
- Temporary focus periods (code reviews, announcements)
- Community moderation without full bot disable
Acceptance Criteria
- Bot recognizes quiet/unquiet commands via mention
- Validates user has permission based on
config.quietMode.allowedRoles - Parses duration (respects default/max from config)
- Stores quiet state per-channel with expiration
- Resumes normal operation automatically after expiry
- Responds with confirmation message when quiet mode is set/removed
- Ignores all non-command messages during quiet period (except unquiet/status)
- Web dashboard UI for configuring permissions and defaults
- Config validation in
configValidation.js - Added to
configAllowlist.jsfor web editing
Related
- Permission system:
permissions.moderatorRoleId - Existing mute/timeout features for comparison
- Web dashboard config editor
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
priority: lowLow priorityLow priorityscope: dashboardWeb dashboardWeb dashboardscope: engagementCommunity engagementCommunity engagementtype: featureNew featureNew feature