New
- CleanerBot now runs a daily low-priority member-data cleanup that removes stale member-scoped records only after Discord confirms the user has left the server.
-
/set_decay_scorenow offers two optional follow-up actions after a score update: send a public inactivity warning in the configured warning channel and send a personal inactivity warning DM to the member. Admins can confirm or skip each action independently, the DM step is skipped automatically when inactivity DMs are disabled, and all actions are logged in/config historywith the acting admin.
Improvements
- Added additional internal security hardening to improve protection against abuse and unauthorized access.
- New server setups now track member joins by default, improving inactivity coverage from day one.
- Threshold setup is now fully consistent between
/startand/config: warning and inactive ranges are1-180, kick range is21-180, and validation enforceswarning < inactive < kick. - Grace periods now end cleanly without hidden catch-up score jumps; decay resumes from the grace boundary on the next regular interval.
- Leave cleanup is now centralized across inactivity data, vote intents, DM queue, DM mutes, advisory DM opt-ins, tip ledgers, silent kudos rows, and member-scoped AHS history.
- Member leave handling now keeps cleanup running even if one cleanup path fails, reducing stale inactivity data.
- Missing warning-channel permission alerts are now grouped and rate-limited per server, reducing repeated staff alert spam.
- Decay member fetches now retry transient API and network failures with backoff and include compact per-server health summaries.
- Bot-list stats updates now respect provider update windows and use safer retry and fallback behavior during API limits or temporary endpoint issues.
- Welcome DMs now retry transient Discord API failures (including 429 and 5xx responses such as 503), reducing missed welcomes during short outages.