Releases: modmail-dev/Modmail
Releases · modmail-dev/Modmail
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/create
as aliases to?alias add
. This improves continuity between the bot and its command structure. (PR #3195)- Loading the blocked list with the
?blocked
command 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_LEVEL
environment variable to set the log level of discord.py. (PR #3216)STREAM_LOG_FORMAT
andFILE_LOG_FORMAT
environment variable to set the log format of the stream and file handlers respectively. Possible options arejson
andplain
(default). (PR #3305)LOG_EXPIRATION
environment variable to set the expiration time of logs. (PR #3257)- New registry plugins:
autoreact
andrename
. - Improved join/leave message for multiple servers.
Changed
- Repo moved to https://github.com/modmail-dev/modmail.
- Channel name no longer shows
-0
if the user has migrated to the new username system. ?note
and?reply
now 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 all
no longer overrides?disable new
. (PR #3278)- Dropped root privileges for Modmail running under Docker. (PR #3284)
Internal
- Renamed
Bot.log_file_name
toBot.log_file_path
. Log files are now created attemp/logs/modmail.log
. (PR #3216) ConfigManager.get
no longer accepts two positional arguments: theconvert
argument 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 Content
privileged 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_role
config to use change how default mod tags work, seev3.10.0#Added
for details. (PR #3093)require_close_reason
config to require a reason to close a thread. (GH #3107)plain_snippets
config to force all snippets to be plain. (GH #3083)?fpareply
and?fpreply
to reply to messages with variables plainly.use_nickname_channel_name
config to use nicknames instead of usernames for channel names. (GH #3112)use_random_channel_name
config to use random nicknames vaguely tied to user ID. It is unable to be computed in reverse. (GH #3143)show_log_url_button
config to show Log URL button. (GH #3122)- Select menus for certain paginators.
Title
field in?logs
. (GH #3142)- Snippets can be used in aliases. (GH #3108, PR #3124)
?snippet make/create
as 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.
?help
and?blocked
paginator 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)
?contact
would create in a random category in silent mode. (GH #3091, PR #3092)- Certain cases where
?close
would 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
?blocked
to 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.py
from 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.reply
now 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_name
config to create thread channels by timestamp.
Improved
?contact
now 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
?contact
and 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
?notify
andsubscribe
. (PR #3015) ?contact
now works properly with both category and silent. (GH #3076)close_on_leave_reason
now works properly whenclose_on_leave
is 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_close
timer 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
OWNER
permission 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
?mention
can now be disabled with?mention disable
. (PR #2993)?mention
now allows vague entries such aseveryone
orall
. (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_initiate
andon_thread_ready
events now havethread, creator, category, initial_message
as additional arguments.
Fixed
confirm_thread_creation
now properly works when a user opens a thread using react to contact. (GH #2930, PR #2971)?disable all/new
now 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.reply
now 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.
Fixed bugs caused by weird discord behaviour
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.