Lacie/utils
Lilac-Rose 971ec5c849 feat: mod logging overhaul, bug fixes, minesweeper fix, emote credits pending view
Moderation & logging:
- cleanban now collects all messages before banning and attaches them as a
  .txt audit log file via the member_ban log channel
- purgememberall restricted to server owner only (nuke protection)
- unban, lock, unlock, spam ban-button, and manual infraction deletes all
  now write to the DB infractions table and post to the mod log
- new log types (channel_lock, infraction_modify, cleanban) added and seeded
  to route to the main mod log channel (982644273960873994)

Bug fixes:
- unban: mod log no longer fires on failure (missing return added)
- mute: fixed DB connection leaks and silent unmute failures in
  schedule_unmute and check_mutes (try/finally + proper error logging)
- suggest: fixed AttributeError crash when original_embed is None and
  IndexError risk on set_field_at calls without field count guards
- ban/cleanban: removed isinstance(user, discord.User) guard that silently
  prevented DMs from ever being sent to in-server members
- cleanban: wrapped collect_status.delete() in try/except
- commands/infractions: fixed DB connection leak with try/finally
- events/botban: silent ban failure now logs error instead of swallowing it

Minesweeper:
- track detonated_cell on mine hit; show 💥 on the clicked mine and 💣
  on all others when the board is revealed on loss

Emote credits:
- new /emote_credits_pending command: shows the user their own unreviewed
  submissions; admins can pass all:True to see the full pending queue

Code quality:
- comprehensive docstrings and inline comments added across all cogs,
  events, commands, utils, and supporting modules
2026-06-16 15:01:11 +02:00
..
constants.py feat: mod logging overhaul, bug fixes, minesweeper fix, emote credits pending view 2026-06-16 15:01:11 +02:00
logger.py