Releases: modmail-dev/Modmail
Releases · modmail-dev/Modmail
v4.1.2 Release (Minor Bug Patch)
v4.1.1
v4.1.0 Release
Drops support for Python 3.9. Python 3.10 and Python 3.11 are now the only supported versions.
Fixed
- GIF stickers no longer cause the bot to crash.
 ?alias make/createas aliases to?alias add. This improves continuity between the bot and its command structure. (PR #3195)- Loading the blocked list with the 
?blockedcommand takes a long time when the list is large. (PR #3242) - Reply not being forwarded from DM. (PR #3239)
 - Cleanup imports after removing/unloading a plugin. (PR #3226)
 - Fixed a syntactic error in the close message when a thread is closed after a certain duration. (PR #3233)
 - Removed an extra space in the help command title when the command has no parameters. (PR #3271)
 - Corrected some incorrect config help descriptions. (PR #3277)
 - Rate limit issue when fetch the messages due to reaction linking. (PR #3306)
 - Update command fails when the plugin is invalid. (PR #3295)
 
Added
?log key <key>to retrieve the log link and view a preview using a log key. (PR #3196)REGISTRY_PLUGINS_ONLY, environment variable, when set, restricts to only allow adding registry plugins. (PR #3247)DISCORD_LOG_LEVELenvironment variable to set the log level of discord.py. (PR #3216)STREAM_LOG_FORMATandFILE_LOG_FORMATenvironment variable to set the log format of the stream and file handlers respectively. Possible options arejsonandplain(default). (PR #3305)LOG_EXPIRATIONenvironment variable to set the expiration time of logs. (PR #3257)- New registry plugins: 
autoreactandrename. - Improved join/leave message for multiple servers.
 
Changed
- Repo moved to https://github.com/modmail-dev/modmail.
 - Channel name no longer shows 
-0if the user has migrated to the new username system. ?noteand?replynow allows you to send a sticker without any message.- Guild icons in embed footers and author urls now have a fixed size of 128. (PR #3261)
 - Discord.py internal logging is now enabled by default. (PR #3216)
 - The confirm-thread-creation dialog now uses buttons instead of reactions. (PR #3273)
 ?disable allno longer overrides?disable new. (PR #3278)- Dropped root privileges for Modmail running under Docker. (PR #3284)
 
Internal
- Renamed 
Bot.log_file_nametoBot.log_file_path. Log files are now created attemp/logs/modmail.log. (PR #3216) ConfigManager.getno longer accepts two positional arguments: theconvertargument is now keyword-only.- Various dependencies have been updated to their latest versions.
 
discord.py v2!
Modmail v4 is out with support for discord.py v2 and a variety of miscellaneous changes.
Breaking
- Modmail now requires 
Message Contentprivileged intent. - Upgraded to discord.py v2.0 (internal changes, GH #2990).
 - Python 3.8 or higher is required.
 - Asyncio changes (gist)
 - Plugin registry is purged and all developers have to re-apply due to breaking changes.
 
Added
use_hoisted_top_roleconfig to use change how default mod tags work, seev3.10.0#Addedfor details. (PR #3093)require_close_reasonconfig to require a reason to close a thread. (GH #3107)plain_snippetsconfig to force all snippets to be plain. (GH #3083)?fpareplyand?fpreplyto reply to messages with variables plainly.use_nickname_channel_nameconfig to use nicknames instead of usernames for channel names. (GH #3112)use_random_channel_nameconfig to use random nicknames vaguely tied to user ID. It is unable to be computed in reverse. (GH #3143)show_log_url_buttonconfig to show Log URL button. (GH #3122)- Select menus for certain paginators.
 Titlefield in?logs. (GH #3142)- Snippets can be used in aliases. (GH #3108, PR #3124)
 ?snippet make/createas aliases to?snippet add. (GH #3172, PR #3174)
Improved
- Modmail now uses per-server avatars if applicable. (GH #3048)
 - Use discord relative timedeltas. (GH #3046)
 - Use discord native buttons for all paginator sessions.
 ?helpand?blockedpaginator sessions now have better multi-page UI.- Autoupdate now automatically updates pipenv dependencies if possible.
 
Fixed
- Several minor typos. (PR #3095, PR #3116)
 - Certain cases where fallback categories were not working as intended. (PR #3109)
 ?contactwould create in a random category in silent mode. (GH #3091, PR #3092)- Certain cases where 
?closewould fail if closer isn't in cache. (GH #3104, PR #3105) - Stickers now work in Modmail.
 - Large server sizes results in Guild.name == None. (GH #3088)
 - Attachments now work on plain replies. (GH #3102)
 - Support LOTTIE stickers. (GH #3119)
 - Editing notes now work. (GH #3094)
 - Commands now work in threads.
 - Audit log searching now properly works.
 - Old data causing 
?blockedto fail. (GH #3131) - Delete channel auto close functionality now works.
 - Improved error handling for autoupdate. (PR #3161)
 - Skip loading of already-loaded cog. (PR #3172)
 - Respect plugin's 
cog_command_error. (GH #3170, PR #3178) - Use silent as a typing literal for contacting. (GH #3179)
 
Internal
- Improve regex parsing of channel topics. (GH #3114, PR #3111)
 - Add warning if deploying on a developmental version.
 - Extensions are now loaded 
on_connect. - MongoDB v5.0 clients are now supported. (GH #3126)
 - Bump python-dotenv to v0.20.0, support for python 3.10
 - Bump emoji to v1.7.0
 - Bump aiohttp to v3.8.1
 - Bump lottie to v0.6.11
 - Remove deprecated 
core/decorators.pyfrom v3.3.0 
Full Changelog: v3.10.2...v4.0.0
Group Conversations!
v3.10 adds group conversations while resolving other bugs and QOL changes. It is potentially breaking to some plugins that adds functionality to threads.
Breaking
Thread.recipient(str) is nowThread.recipients(List[str]).Thread.replynow returnsmod_message, user_message1, user_message2... It is no longer limited at a size 2 tuple.
Added
- Ability to have group conversations with up to 5 users. (GH #143)
 - Snippets are invoked case insensitively. (GH #3077, PR #3080)
 - Default tags now use top hoisted role. (GH #3014)
 - New thread-related config - 
thread_show_roles,thread_show_account_age,thread_show_join_age,thread_cancelled,thread_creation_contact_title,thread_creation_self_contact_response,thread_creation_contact_response. (GH #3072) use_timestamp_channel_nameconfig to create thread channels by timestamp.
Improved
?contactnow accepts a role or multiple users (creates a group conversation). (GH #3082)- Aliases are now supported in autotrigger. (GH #3081)
 
Fixed
- Certain situations where the internal thread cache breaks and spams new channels. (GH #3022, PR #3028)
 - Blocked users are now no longer allowed to use 
?contactand react to contact. (COMMENT #819004157, PR #3027) - UnicodeEncodeError will no longer be raised on Windows. (PR #3043)
 - Notifications are no longer duplicated when using both 
?notifyandsubscribe. (PR #3015) ?contactnow works properly with both category and silent. (GH #3076)close_on_leave_reasonnow works properly whenclose_on_leaveis enabled. (GH #3075)- Invalid arguments are now properly catched and a proper error message is sent.
 - Update database after resetting/purging all plugins. (GH #3011)
 thread_auto_closetimer now only resets on non-note and replies from mods. (GH #3030)- Deleted messages are now deleted on both ends. (GH #3041, @JerrieAries)
 - Persistent notes are now properly deleted from the database. (GH #3013)
 - Modmail Bot is now recognized to have 
OWNERpermission level. This affects what can be run in autotriggers. 
Internal
Internal Bumps
Internal
- Bumped discord.py to v1.7.3, updated all other packages to latest.
 - More debug log files are now kept.
 - Resolve SSL errors by retrying without SSL
 
Improvements to fallback channels and other QoLs
Fixed
- Certain cases where fallback categories were not working as intended. (GH #3002, PR #3003)
 - There is now a proper message when trying to contact a bot.
 
Improved
?mentioncan now be disabled with?mention disable. (PR #2993)?mentionnow allows vague entries such aseveryoneorall. (PR #2993)
Internal
- Change heroku python version to 3.9.4 (PR #3001)
 
Improving react to contact and potentially breaking plugin changes
Breaking
on_thread_initiateandon_thread_readyevents now havethread, creator, category, initial_messageas additional arguments.
Fixed
confirm_thread_creationnow properly works when a user opens a thread using react to contact. (GH #2930, PR #2971)?disable all/newnow disables react to contact threads. (GH #2969, PR #2971)- Ghost errors are no longer raised when threads are created using non-organic methods.
 
Internal
thread.replynow returns (msg_to_user, msg_to_thread). Can be useful in plugins.
Bugfixes and new command!
Added
?msglink <message id>, allows you to obtain channel + message ID for T&S reports. (GH #2963, PR #2964)?mention disable/reset, disables or resets mention on thread creation. (PR #2951)
Fixed
- Non-master/development branch deployments no longer cause errors to be raised.
 - Autotriggers now can search for roles/channels in guild context. (GH #2961)
 
Bugfixes for large servers
This update is a quick hotfix for a weird behaviour experienced on 1 Feb 2021 where users were not properly cached.
Fixed
- Corrupted data is no longer saved to thread cache.