Release Note

v3.9.0

06 July 2026

New Improvements Fixes

New

  • Community Pulse: Server Campfire and Revival Tree
    • Community Pulse adds /pulse, a privacy-safe visual activity scene that turns aggregate server signals into a Server Campfire or Revival Tree staff can understand at a glance.
    • Free servers can open a private preview based on the server’s current activity state.
    • Premium servers unlock staff details, theme controls, recurring public scene updates, and rare milestone moments.
    • Pulse uses aggregate AHS-backed activity signals only, never message content. Scene changes are smoothed so the visual state feels steady rather than jumpy.
    • Public Pulse cards explain the scene, suggested next step, and aggregate-only privacy promise clearly for first-time viewers.
    • Premium public Pulse updates post as fresh messages, helping members notice weekly Campfire or Revival Tree changes in the server timeline.
    • Use /pulse setup to configure Pulse and /pulse view to view it once enabled.
  • Weekly staff inactivity report
    • Admins can now enable /config reports weekly_inactivity to post a clean Monday inactivity report to the staff channel.
    • The report focuses on members near or over action thresholds, keeping the weekly staff view useful without becoming noisy.

Improvements

  • /checkin can now point members to either a specific rules message link or a rules channel, making reaction check-ins easier to set up when rules live in a dedicated channel.
  • /export_decay_data now uses stored CleanerBot member metadata first, reducing Discord member lookups and making large exports faster and gentler on rate limits.
  • CleanerBot now spreads large free-server inactivity scans across the day, reducing once-daily load spikes while keeping those servers checked on the same cadence.
  • Toggle settings moved to /toggle ..., reducing /config command size so new config subcommands resolve more reliably.
  • Member-data cleanup now skips servers CleanerBot has already left, avoiding noisy follow-up errors after normal server removal cleanup.
  • Several admin and config messages now resolve through localization instead of showing raw key names, including the /reset_all_decay_scores progress state.
  • Personal /notifications DMs now use warmer, clearer wording for quiet activity nudges and monthly recaps, including privacy notes and lower-is-better decay score explanations.
  • Several admin UI flows now have clearer layouts and more consistent button cues:
    • Sensitive setup and confirmation flows are easier to scan.
    • Member reset confirmations, purge and bulk-upload cancellation, kick-exemption removal, manual kick pre-DM choices, reward-member pagination, and poll/reward setup screens now use clearer interaction states.
    • Primary actions, back/next navigation, skip actions, close actions, and destructive choices now have more consistent visual cues.
    • Newly added admin-facing button labels and select placeholders are localized through CleanerBot’s normal language system.
    • These UI updates keep the existing command behavior, permission checks, owner-only guards, and safety confirmations unchanged.

Fixes

  • Manual kick review recovery after restarts now avoids bulk member lookups, reducing Discord rate-limit pressure so review buttons come back more reliably.
  • /leaderboard now keeps large activity streak rankings interactive with pagination instead of switching to a text-file attachment just because the ranking has many pages.
  • /report_inactivity now paginates full large sections instead of cropping the first page with an omitted-member count.
  • /export_decay_data now explains that the CSV contains the member activity data stored by CleanerBot, avoiding misleading “0 members” wording.
  • /export_decay_data now keeps cached decay rows in the CSV when Discord member lookups are unavailable, so large exports do not collapse to an empty member list.
  • /export_decay_data now includes every eligible member row in each export batch instead of only writing the last eligible row from a batch.
  • Manual kick review snooze prompts now recover after invalid durations and close cleanly after a successful snooze.
  • Kick-exemption and help paginator buttons now stay clickable when Discord validates Components V2 layouts.
  • Manual kick review Apply to all prompts now work reliably on Discord interaction objects that reject temporary runtime attributes.