New
- Manual & scheduled community check-ins
-
/checkin wizardnow starts with a clear purpose choice, so admins can keep the existing policy reminder flow or post lightweight Community Participation and Community Restart check-ins without mixing all templates into one long list.- The seven existing policy reminder templates keep their reaction-based acknowledgement flow, rules reference support, optional role mentions, optional deadline text, and current member-facing copy.
- Community Participation and Community Restart check-ins use anonymous one-tap buttons, allow members to change their current choice, close after 24 hours, and show aggregate-only results after individual response rows are deleted.
- Anonymous check-in answers are never shown as member-level data and never change Decay, AHS, review, cleanup, or moderation decisions, giving admins a low-pressure way to hear from quieter members.
- Scheduled Community Check-Ins now live under
/polls_wizardand/polls, with their own Check-Ins channel, Mood-first topic default, 3/5/7/14/30-day wizard cadence choices, and a clear rhythm summary that explains CleanerBot posts one rotating topic per cadence. - Scheduled check-ins rotate only the selected Participation, Mood, Energy, and Looking Ahead topics, use the same 24-hour anonymous lifecycle, skip Ghost Mode, and never fall back to the warning channel or another destination.
- When a scheduled poll or quiz and a scheduled check-in are due on the same UTC day, CleanerBot posts only one community-content item and gives the check-in priority, so admins can run regular prompts without overposting.
- Premium staff action suggestions turn aggregate signals into practical next steps in the Staff Notification Channel: CleanerBot can privately point teams toward a one-time Community Participation check-in, recurring Community Check-Ins, Check-In settings review,
/review coverage, or/review channelswhen those workflows would help staff verify context before acting. - Staff action suggestion cards include the reason, suggested action, privacy note, 14-day pacing,
Not now, andMute suggestions, so Premium admins get timely guidance without member pressure, public noise, or fallback posting to the wrong channel.
- Border Challenge community activity
-
- Any member can now start a cooperative country-border challenge with
/border-challenge start, while admins retain control over stopping or restarting it. - Members continue the journey by reacting with the flag of a country that shares a land border with the current country. CleanerBot keeps valid answers hidden, validates moves quietly, removes invalid country reactions, and gives rate-limited private tips for unavailable travel reactions without interrupting the Challenge.
- A
🔎country-search button lets members submit a country name, ISO code, flag, alias, or close typo through a modal; one clear match advances the Challenge, while ambiguous matches open a private country picker before CleanerBot validates the selected move. - A
Helpbutton privately repeats the Challenge rules, so members who join later can catch up without scrolling back to the first message. - Each successful move posts a clear current-country card, then retires the old active message into a compact Previous country card so the journey stays easy to follow without pinging members.
- When no valid neighboring country remains, CleanerBot unlocks the ✈️ Travel Joker and starts a new Round from another playable country; hidden ✈️ and sea-only 🚢 reactions also help members pursue full collection coverage without revealing valid answers.
- Members can use
/border-challenge searchto find a country flag, Discord flag search code, and ISO code without revealing valid neighboring answers. - Members can use
/border-challenge collectionand/border-challenge missingto post collection progress for themselves or another member with a member mention. - After 24 hours without a valid move, or when staff stop the Challenge, CleanerBot ends it with a clear closing message and a start-again command link when Discord supports it.
- The Challenge includes localized instructions and does not use player scores, leaderboards, or stored move history.
- Any member can now start a cooperative country-border challenge with
- Dedicated kick-summary channel
-
- Admins can now send kick summaries to a dedicated private channel with
/config set kick_announcement_channel. - CleanerBot safely falls back to the staff or warning channel when the dedicated channel is missing or unavailable.
- Admins can now send kick summaries to a dedicated private channel with
- Member-friendly /about command
-
- Members can now use
/aboutto learn what CleanerBot does, how its privacy-first activity tracking works, and which community features they may encounter. - It highlights fair inactivity management, explains that CleanerBot does not read message content, and brings together useful commands and official links in one compact view.
- Commands and links are clickable, making
/abouta clear starting point for members who are new to CleanerBot.
- Members can now use
Improvements
- Safer poll setup
-
/polls toggle truenow checks whether the poll channel can use reactions before activation.- When admins enable polls, CleanerBot now ensures the required reaction activity setting is enabled so poll votes can count correctly.
- Polls now check required permissions when admins enable them.
- Closed regular poll messages now show the question before the final result, making non-quiz results easier to read.
- Easier reward setup
-
/reward activity_rewards truenow enables the required streak tracking automatically.- CleanerBot now points admins to missing reward roles or disabled reaction activity when reward automation cannot work yet.
- Reward-role wizards now reject roles CleanerBot cannot assign before the configuration is saved.
- Stronger setup and permission guidance
-
- Setup and configuration screens now block unusable role or channel choices before saving.
- Permission guidance is clearer when a selected channel, role, or feature setup would fail later.
- Setup preflight now checks configured default and reward roles only when those features actually use them, while treating decay boost roles as references.
- Event auto-posts and auto-provisioning now check their required permissions when admins enable them.
- Whitelist changes now warn admins when they hide CleanerBot delivery channels or all visible activity channels.
- Clearer permission alerts
-
- Manual review and Auto-Kick alerts now explain whether admins should check
Kick Members, role hierarchy, server-owner targets, or a Discord-side refusal. - Inactive, default, and reward-role alerts now explain whether admins should check
Manage Roles, managed roles, role hierarchy, or a Discord-side refusal. /config validateand/config check_permissionsnow surface configured role hierarchy and managed-role blockers before role automation fails at runtime.- Monthly review send failures caused by missing Discord access now record channel-permission guidance instead of leaving admins without a config warning.
- Notification-thread permission alerts now point admins to thread permissions when auto-archive or expiry cleanup cannot modify comment threads.
- Manual review and Auto-Kick alerts now explain whether admins should check
- Auto-Kick testing is less disruptive
-
- Threshold and decay-rate tuning while Auto-Kick is off no longer triggers the critical-change cooldown.
- Auto-Kick protections remain in place when Auto-Kick is enabled.
- Reports and scheduled jobs now respect current settings more reliably
-
/report_inactivity clean=truenow excludes exempt-member context, keeping the clean view focused on actionable cleanup entries.- The full inactivity report still shows exemptions for audit context.
- Scheduled monthly reviews and monthly champion jobs now refresh configuration before posting, so disabled or changed settings are respected at execution time.
- Reward-role automation now refreshes reward settings before changing member roles, so mid-run config changes wait for the next evaluated pass.
- Large manual-kick batches now split kicked-member summaries into multiple messages so Discord no longer rejects long cleanup summaries.
- Clearer Free over-limit behavior
-
/checkpremiumcan now show when CleanerBot is reducing background work for a Free server above the tracked-member limit.- Over-limit copy no longer promises indefinite background processing on Free.
- Stored settings and supported admin checks remain available, while long-dormant over-limit Free servers may have nonessential cached activity data pruned.
- CleanerBot no longer auto-leaves long-unconfigured or dormant over-limit Free servers. It keeps the server connection, prunes nonessential stored data on a limited rolling budget, and waits for admins to reactivate setup or upgrade.
- Free servers above the Pro member limit now see Scale as the recommended upgrade tier in over-limit notices.
- Safer background work across shard changes
-
- Server name and member-count updates now stay on the owning shard, preventing duplicate or skipped metadata writes during multi-shard restarts.
- Notification-thread maintenance now re-checks bot shard ownership before archiving, deleting, or sweeping legacy comment threads.
- DM reminder delivery now re-checks shard ownership before sending.
- Weekly leaderboard and inactivity report helpers now refuse to post from non-owning shard workers.
- Cross-shard dormant cleanup now prunes routed data without requiring the bot to leave the server.
- Improved backend startup stability and reduced noisy recovery logs during multi-shard restarts.
- Smaller clarity and localization updates
-
- Community Pulse public cards now keep the privacy note below the scene image for easier scanning.
- Several admin and config messages now resolve through localization instead of showing raw key names, including the
/reset_all_decay_scoresprogress state. - Czech inactivity warning text now reads more naturally.
Fixes
- Community Pulse setup now acknowledges Discord immediately before reposting the public scene, preventing false "application did not respond" notices during channel changes.
-
/config validateno longer blocks setup completion when the optional CleanerBot admin role is not set. - Kick summaries now fall back to the effective warning channel before the staff channel when no dedicated kick-summary channel is set.
- Ghost Mode staff-channel activity announcements now keep member mentions visible without pinging those members.