- events/april_fools.py: add /johnify and /unjohnify admin commands;
renames all channels/roles to John-themed names and auto-reverts at
12pm EDT April 2nd, with backup persisted to survive bot restarts
- commands/giveaway.py: new giveaway command
- events/git_webhook.py: truncate commit messages >1024 chars to avoid
embed field overflow
- events/daily_fractal.py: change daily post time from 12:00 to 10:00 UTC
- stats/stats.py: replace serverCount/botUsers with memberCount, restrict
command/interaction tracking to the configured guild only
- bot.py: add "arg" cog folder, exclude constants.py from cog loading
daily fractal:
- add events/daily_fractal.py: posts today's fractal from lilacrose.dev
to channel 876772600704020533 daily at noon UTC
- palette name derived from seed as fallback for cached fractals
- add !fractal owner-only command to manually trigger a fractal post
stats:
- add per_command_usage table to track usage per command name
- increment_usage now accepts command name from both prefix and slash commands
- expose per-command breakdown in stats payload
avatar bad apple:
- add invert parameter to flip dark/light regions
- add real-time render and encode progress bars via interaction edits
- process frames in chunks to cap peak RAM usage
- track and cancel active render tasks and ffmpeg processes on cog unload
- switch output to mp4 only (drop webm/alpha path), use ultrafast preset
- check file size against guild limit before uploading
- remove 30-second frame cap
moderation:
- infraction auto-removal: skip users who left and rejoined after infraction date
- add Reason field to infraction removal approval and denial embeds
send_embed: support zlib-compressed embed strings with legacy fallback
chore:
- remove events/status_alerts.py
- remove arg from COG_FOLDERS
- update .gitignore: add *.zip, bad_apple.mp3, */bad-apple/
since the copy sits lower in the hierarchy and demotes your member
list position; now shows a clear error message instead
- emote credits: add /emote_credits_update command so users can submit
corrections to existing credits (goes through the same approval flow,
shows old → new credit in the approval embed and DMs)
- emote credits: add is_update/old_artist columns to pending_credits
with auto-migration for existing installs
- bot: disable archipelago_monitor cog (unloads it if currently loaded)