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_FORMATand- FILE_LOG_FORMATenvironment variable to set the log format of the stream and file handlers respectively. Possible options are- jsonand- plain(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: the- convertargument 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, see- v3.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 now- Thread.recipients(- List[str]).
- Thread.replynow returns- mod_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 when- close_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 as- everyoneor- all. (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_initiateand- on_thread_readyevents now have- thread, 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.