Skip to content

Changelog

All notable changes to Bernard will be documented here.

v1.17.1 - 2023-09-02 7:20PM EST

Fixed

  • Removed mandatory reason requirement for the /untimeout slash command.
  • Fixed bug where error message for slash commands that fail due to a lack of administrative capability was not being properly sent to the user who invoked the command.

v1.17.0 - 2023-09-02 11:45AM EST

Added

  • Added the /timeout and /untimeout slash commands. These commands leverage Discord's built-in timeout functionality while adding information to a user's rapsheet. These are functionally identical to the existing !silence and !unsilence text commands (which should be considered deprecated and will be removed in a future release of Bernard).
  • Added some additional permutations to the lgbtqia-slur-homosexual-men AutoMod text filter.
  • Added some additional permutations to the slur-antisemitic-gentiles AutoMod text filter.

Fixed

  • As part of centralizing command error reporting, a number of scenarios wherein various commands would not properly return errors to the user were resolved.

Changed

  • Updated project dependencies.
  • Further improved backend error reporting. In summary, command error reporting is more centralized, which means that errors between commands (both new and old) are reported more consistently and more informatively.

v1.16.7 - 2023-08-06 11:00AM EST

Fixed

  • Fixed bug where an error is not properly returned to command invokers in all scenarios when an invalid duration value (3d, 7h, etc.) is not provided to the command.
  • Fixed bug where an error is not properly returned to command invokers in all scenarios when a Premium-only command is executed in a non-Premium server.

Changed

  • Updated project dependencies.
  • Further improved backend error reporting capabilities and telemetry.

v1.16.6 - 2023-07-30 3:30PM EST

Fixed

  • Fixed bug where the "Permaban Scammer" application command would not properly report an error in a situation where the prior invoker of a punishment or rapsheet entry has a higher role hierarchy than the current invoker.
  • Fixed bug where thread update events were not reliably reported in some scenarios.

v1.16.5 - 2023-07-29 5:45PM EST

Added

  • Added the /cleanup slash command. The functionality of this slash command is identical to the existing !cleanup text command.

Fixed

  • Fixed bug where messages in voice channels were not cleaned up as part of the !cleanup text command.
  • Fixed bug where an error related to a situation where the prior invoker of a punishment or rapsheet entry has a higher role hierarchy than the current invoker was not properly reported.

Changed

  • Updates to project dependencies.
  • Improved backend error reporting capabilities and telemetry.

v1.16.4 - 2023-05-07 9:35PM EST

Fixed

  • Fixed bug that was causing the "Permaban Spammer" user/message commands to fail.
  • Added plaintext fields to OmniLogs voice state update embeds, which improves your ability to search for events in Discord's user interface.

Changed

  • Minor updates to project dependencies.

v1.16.3 - 2023-04-19 1:40PM EST

Fixed

  • Fixed bug with the !rapsheet edit command where editing a rapsheet entry that contains a duration value (e.g. (30d), (12h), etc.) removes the duration value entirely. The duration value now persists into the edited rapsheet entry.

v1.16.2 - 2023-04-16 4:30PM EST

Fixed

  • Fixed wording in vote-related punishment embeds that implied a voteban was underway, even if the vote was related to a votemute or votesilence.

v1.16.1 - 2023-04-10 6:00PM EST

Fixed

  • Fixed bug that caused commands to error out occasionally.

v1.16.0 - 2023-04-09 5:00PM EST

Added

  • Added a field to voice channel state update embeds that identify the user who disconnected another user from a voice channel or moved a user from one voice channel to another.

v1.15.1 - 2023-04-08 4:45PM EST

Fixed

  • Fixed bug with new "Permaban Spammer" user/message command where role hierarchy checks were bypassed.

v1.15.0 - 2023-04-08 3:45PM EST

Added

  • Added a "Permaban Spammer" user/message command that is displayed under the "Apps" menu when right-clicking on a user or a text message. This command will permanently ban the target from the server while adding an informative message to their rapsheet.

Fixed

  • Fixed bug with vote-related commands (/votesilence, /votemute, and !voteban) where the command fails when relevant maximum durations are not configured in a server.
  • Fixed bug with /votesilence where the command would go through without error even if a silence role is not configured in the server via the !silence role command.
  • Fixed bug with permanent !silence commands where targets were able to evade punishment by leaving the server, then re-joining the server. This did not affect termporary silences, only permanent ones.

Changed

  • Updated from Python 3.8 to Python 3.11.
  • Updated a large number of back-end dependencies to their latest stable versions.

v1.14.2 - 2023-03-26 7:40PM EST

Fixed

  • Fixed bug with the configuration of embed/attachment analysis as part of the AutoMod Dynamic Slow Mode feature.
  • Fixed the display of permanent punishments in embeds of vote-related commands.

Changed

  • Added the reason for a vote to vote-related embeds.

v1.14.1 - 2023-03-26 4:45PM EST

Fixed

  • Fixed bug with caching of AutoMod Dynamic Slow Mode server configuration settings, which automatically enabled the feature across all servers.

v1.14.0 - 2023-03-26 4:00PM EST

Added

  • A new slash command /votemute has been added. Similar to the !voteban text command, this command performs a community vote to determine whether a user in a voice channel should be muted.
  • A new slash command /votesilence has been added. Similar to the !voteban text command, this command performs a community vote to determine whether a user in a text channel should be muted.
  • A new slash command /configuration maximum_vote_duration has been added. This command modifies the maximum amount of time that a vote (voteban, votemute, votesilence, etc.) can last in a server. This is configurable for each individual type of vote.
  • Added a new AutoMod feature called "Dynamic Slow Mode", which is a highly-configurable, automatic anti-spam measure that large servers will greatly benefit from. This feature is only available for Bernard Premium members. Review the AutoMod Dynamic Slow Mode documentation page for more information about this feature.

Changed

  • The !voteban text command has been modified to include fewer intermediary quips.
  • The !voteban text command now reports feedback to users through embeds instead of text messages.
  • The !mute text command can now target users who are not active members of the server.
  • The !silence text command can now target users who are not active members of the server.
  • The /ban slash command now accepts an optional ephemeral parameter. When set to True, the feedback embed (the message indicating the ban was successful) for the command is only shown to you. When set to False (the default value), the feedback embed is displayed to all users in the channel where the command is invoked.
  • Reminders are now sent to users using an embed instead of a plaintext message.

v1.13.1 - 2023-03-11 6:00PM EST

Fixed

  • Fixed bug with !unsilence command not properly returning an error to the user when the target of the command is not present in the server.

Changed

  • Modified output of !automod gatekeeping join-age and !automod gatekeeping join-punishment commands to use embeds instead of plaintext messages.

v1.13.0 - 2023-03-09 8:45PM EST

Added

  • Added the /configuration quips_enabled slash command. By default, Bernard will display a "quip" in punishment-related embeds, which are fun, snarky/sarcastic messages directed at the target of a punishment. Through this new command, this behavior can be explicitly disabled if it's not desired within a server. The relevant documentation for this new command is here.

Fixed

  • Fixed another bug with ban/unban OmniLogs reporting where bans are not reliably reported in some scenarios.

Changed

  • Added more quips for a variety of punishments, as well as unmutes, unbans, and unsilences.

v1.12.2 - 2023-02-20 7:00PM EST

Fixed

  • Fixed bug with new non-Bernard ban reporting feature of OmniLogs where not all bans are properly reported.

v1.12.1 - 2023-02-20 4:45PM EST

Added

  • Bernard will now add bans that occur in the server that are not invoked through the !ban or /ban commands to the target's rapsheet.
  • When a punishment (bans, kicks, mutes, etc.) is invoked against a user, the embed will now show the corresponding rapsheet entry. This is true for punishment-related OmniLog events too, such as bans, mutes, and so on.

Fixed

  • v1.12.0 was skipped due to some bugs caught immediately after launch of v1.12.0. v1.12.1 resolved these bugs.

Changed

  • Improved error handling surrounding cache connectivity in scenarios where Bernard is being upgraded.
  • Added error handling for scenarios where Bernard lacks permissions to access server audit logs.

v1.11.1 - 2023-02-15 5:10PM EST

Fixed

  • Fixed bug with Bernard not properly creating a default configuration when invited to a new server. This caused Bernard to be unresponsive to text commands in new servers. This may have also caused Bernard to not properly report events via OmniLogs in new servers, and may have caused slash commands to malfunction.

v1.11.0 - 2023-02-12 4:40PM EST

Added

  • The following events have been added to the OmniLog feature:
    • Channel creation events
    • Channel update events (at the moment, only channel name changes are implemented. If you have ideas for more channel changes you'd like to see tracked by OmniLog, let us know through the !support command!)
    • Channel deletion events
    • Thread creation events
    • Thread update events (at the moment, only thread name changes are implemented. If you have ideas for more thread changes you'd like to see tracked by OmniLog, let us know through the !support command!)
    • Thread removal events
    • Thread deletion events

Changed

  • The !flavor series of text commands have been functionally replaced with the /configuration flavor series of slash commands:
  • Message edit/deletion OmniLog events that occur within a thread report the name of the parent channel, if applicable.
  • The !omnilogs channel remove command now takes in an event parameter, which allows you to specify a specific event that should no longer be routed to the channel. Previously, one had to remove all events from a channel, then reconfigure the desired events to route to the channel.

v1.10.11 - 2023-01-05 9:00AM EST

Changed

  • Modified confirmation message for the !joinban, !lock, !unlock, and !filter remove commands to utilize buttons instead of a reaction-based confirmation.

Fixed

  • Fixed bug with the initial configuration of a server that occurs when Bernard joins a server stemming from the new /configuration include_unbans_in_rapsheet command.

v1.10.10 - 2023-01-01 8:30AM EST

Fixed

  • Fixed bug with the !unban command where the reason for an unban is not properly populated in Bernard's database. Unfortunately, this also means that unbans displayed in a user's rapsheet that occurred prior to this release may have one-word reasons.
  • Fixed bug with the !cleanup command where a cleanup would fail if the cleanup command was invoked in a channel where Bernard can send messages, but cannot edit messages. This is because Bernard sends a "cleanup progress" message at the beginning of the cleanup, then attempts to edit the message with progress updates over time.
  • Fixed false positives with new lgbtqia-slur-transphobic AutoMod text filter permutations added in the previous release.

Added

  • Added the /configuration include_unbans_in_rapsheet slash command. By default, Bernard does not display unbans in a user's rapsheet. Through this new command, this behavior can be changed such that unbans are displayed in a user's rapsheet. The relevant documentation for this new command is here.

v1.10.9 - 2022-12-30 3:30PM EST

Changed

  • Modified OmniLogs ban event reporting such that the invoker of a ban through the !ban, /ban, !massban, or !joinban is properly reported in the event. Previously, Bernard would be shown as the invoker for these events.
  • Added support for database migrations, which means the back-end database can be gracefully altered over time. This enables us to deliver more features, faster!

Fixed

  • Fixed bug with the /warn slash command where the role hierarchy is ignored, allowing you to warn users who are above you in the server's role hierarchy.
  • Fixed bug where the !lock and !unlock commands do not send messages inside of the text channel associated with a voice channel.

Added

  • Added some additional permutations to the lgbtqia-slur-transphobic AutoMod text filter. Review the AutoMod Default Filters documentation for more details about the current permutations of this text filter.

v1.10.8 - 2022-10-04 12:45PM EST

Changed

  • The !rapsheet delete command now takes in one or more rapsheet entry IDs instead of just a single rapsheet entry ID, allowing moderators to delete multiple rapsheet entries at once.

Fixed

  • Fixed long-standing bug with code that normalizes Discord embeds such that they confine to Discord's embed limits. This bug caused various embeds (primarily rapsheets) to not show all punishments in them.

v1.10.7 - 2022-09-23 4:00AM EST

Added

  • Added the dox-urls AutoMod text filter, which detects and deletes messages containing URLs/hyperlinks to well-known dox websites.
  • Added the racial-slur-cubans AutoMod text filter, which detects and deletes messages containing popular slurs against people of Cuban descent.
  • Added additional permutations to the racial-slur-asian AutoMod text filter.

v1.10.6 - 2022-09-14 11:45PM EST

Fixed

  • Fixed bug with !automod files crash sub-commands where Bernard did not respond to valid sub-commands.

Changed

  • Improved back-end logging surrouding command usage.

v1.10.5 - 2022-08-06 6:45PM EST

Fixed

  • Fixed bug with !rapsheet and /rapsheet commands where Discord server member cache is not properly populated with invokers.
  • Fixed bug where a back-end performance logging task was not started properly.
  • Fixed bug with "Command Unsuccessful" embeds where command syntax was shown twice.

v1.10.4 - 2022-08-06 4:45PM EST

Fixed

  • Enhanced the scam-urls AutoMod text filter with additional permutation of scams involving requesting users to check a hacked account's bio.
  • Enhanced the self-harm-advocacy AutoMod text filter with additional permutations.

Changed

  • Added back-end performance logging, improving our ability to monitor Bernard's health.

v1.10.3 - 2022-08-01 3:00PM EST

Fixed

  • Fix bug with /kick slash command where the command fails to work at all and returns an error message. The !kick text command was unaffected by this issue.
  • Fix bug with /unban slash command where the command fails to work at all and returns an error message. The !unban text command was unaffected by this issue.
  • Improved error handling in the !cleanup command in instances where the Discord API becomes temporarily unavailable.

Changed

  • Add Discord timestamp style to rapsheet entries and successful punishment (kick, ban, etc.) embeds.
  • Enhanced the scam-urls AutoMod text filter to catch a new permutation of scams involving requesting users to check a hacked account's bio.
  • Added a "Total Deleted Messages" counter to the !cleanup command's in-progress embed.
  • Added a list of channels that will be affected by the !lock command in the confirmation message sent when the !lock command is executed without targeting a specific set of channels.
  • Improve back-end logging of database query time execution, allowing us to perform data-driven analysis of long-running database query and optimize them accordingly.

v1.10.2 - 2022-07-16 7:50PM EST

Fixed

  • Fixed bug with /ban slash command where Bernard does not respond to the command due to a failure to fetch the "message" invoking the command.

v1.10.1 - 2022-07-16 1:45PM EST

Fixed

  • Fixed bug with /remind slash command where exceptions due to invalid user input are not properly handled and reported to the command invoker.
  • Fixed bug with Who is this? user command where a check for valid moderation-related administrative capabilities is not performed.
  • Potential bugfix with OmniLogs ban event monitoring where ban invokers are not reliably fetched from the Discord server's audit log. This is a potential bugfix because this issue has only seen in a high-scale production environment thus far.
  • Fixed bug where Administrative Capability feedback for user/message commands (e.g. View Rapsheet and Who is this?) was not ephemeral.

v1.10.0 - 2022-07-08 5:30PM EST

Fixed

  • Fixed bug with OmniLogs feature where mute, unmute, silence, and unsilence events not being routed to their configured channels correctly.
  • Fixed bug where new member join events are delayed until an OmniLogs event is sent to a configured channel. This causes timing issues with !joinban when a large number of accounts join a server at once.
  • Fixed bug where the /warn slash command could be used by anybody and was not restricted to roles with the WARN_MEMBERS administrative capability. The !warn text command was not affected by this issue.

Changed

  • Modify formatting of voice, reaction addition/removal, and user join/leave OmniLog events to utilize Discord timestamp styles.
  • Modify formatting of rapsheet embed to utilize Discord timestamp styles.
  • Due to a large internal refactor that made the OmniLogs feature more stable, the OmniLog event names have been changed slightly. They are now as follows:
    • message_delete
    • message_edit
    • member_ban
    • member_unban
    • member_kick
    • member_mute
    • member_unmute
    • member_warn
    • member_silence
    • member_unsilence
    • automod
    • notifications
    • member_join
    • member_leave
    • member_edit
    • member_join_voice
    • member_leave_voice
    • member_self_mute_voice
    • member_self_unmute_voice
    • member_self_deafen_voice
    • member_self_undeafen_voice
    • member_server_mute_voice
    • member_server_unmute_voice
    • member_server_deafen_voice
    • member_server_undeafen_voice
    • reaction_add
    • reaction_remove

v1.9.1 - 2022-07-04 9:15AM EST

Fixed

  • Fixed bug with /remind slash command where large duration values caused an error message.
  • Fixed bug with role vote scoring where increased role weight is not factored into any votes (in other words, all roles are counted the same regardless of configuration).
  • Fixed bug where reminders created through the !remind or /remind commands are not sent to threads.
  • Fixed bug with unreliable role hierarchy detection in !ban, !mute, !rapsheet edit, !rapsheet delete, and other similar commands.

Changed

  • Modify initial server configuration to look for and use an existing test channel named "bernard-notifications" within an existing channel category named "bernard-channels" prior to creating a new set of channels.

v1.9.0 - 2022-06-27 9:15AM EST

Added

  • Added OmniLogs event routing for silence and unsilence events. Use the !omnilogs channel silences and !omnilogs channel unsilences commands to route silence and unsilence events to a specific channel.

Fixed

  • Fixed bug with !ban command where the ban override confirmation button could be clicked and accepted by any user, not just the command invoker.

Changed

  • Added hr as a valid time unit for all durations (e.g. for /remind reminders, bans, mutes, etc.)
  • Modify formatting of /remind, /todo, and /whois command embeds to utilize Discord timestamp styles.

v1.8.1 - 2022-06-20 8:40PM EST

Fixed

  • Fixed bug with /whois slash command where the command fails when targeted against a user who is not present in the server.
  • Fixed bug with /rapsheet slash command where the command fails when targeted against a user who is not present in the server.
  • Fixed bug with /remind slash command where the command fails with a generic error ID of 514147a1a5bf9270ba0e2224e44d25cae597b0e2.
  • Fixed bug with !joinban, !omnilogs event user join, and !omnilogs event user leave commands where the command fails with a generic error ID of e0cb09de6a9545175a56001db45fc8ea160f64db.

v1.8.0 - 2022-06-19 11:45AM EST

Added

  • Added the /ban slash command, which has identical syntax/usage as the !ban text command.
  • Added the /warn slash command, which has identical syntax/usage as the !warn text command.
  • Added the /unban slash command, which has identical syntax/usage as the !unban text command.
  • You can now view a user's rapsheet and detailed information (as would be shown by /whois) by right-clicking on a user's profile in a server, mousing over the "Apps" option, and selecting either "View rapsheet" or "Who is this?" from the resulting menu.

Changed

  • Improved the ban override confirmation prompt to utilize buttons within Discord instead of reactions.

Fixed

  • Fixed bug with ban override logic wherein the invoker of a ban could not override their own ban without an unban first.
  • Fixed bug with !rapsheet edit and !rapsheet delete commands where the incorrect error message is provided by Bernard when attempting to edit/delete your own rapsheet.
  • Added more graceful handling of Discord server-side errors.
  • Fixed bugs that arise from large duration values (several centuries/millenia) being fed into various commands (such as bans, reminders, silences, etc.)
  • Fixed bugs with /remind and /whois slash commands that receive no response if Bernard takes more than a few seconds to respond.

v1.7.1 - 2022-06-01 12:30AM EST

Fixed

  • Fixed bug where an administrative capability check was not occurring for the "Who is this?" message command.

v1.7.0 - 2022-05-31 8:30AM EST

Added

  • You can now view a user's rapsheet and detailed information (as would be shown by /whois) by right-clicking on a user's message in a server, mousing over the "Apps" option, and selecting either "View rapsheet" or "Who is this?" from the resulting menu.

v1.6.0 - 2022-05-20 1:00PM EST

Added

  • Added OmniLogs event notifications for warnings issued through Bernard. You can enable this event by using the !omnilogs channel warns <text-channel> command targeting a specific text channel where you would like warning notifications to be routed to.
  • Added the !joinban command, which allows you to ban all users who joined the server within a specific absolute or relative time period.

Changed

  • Converted the output of the !massban command to an embed instead of using a raw text message.

Fixed

  • Fixed bug with !massban command where feedback on incorrect ban duration values was not properly sent to the command invoker.

v1.5.9 - 2022-05-12 2:30PM EST

Added

  • Added the ableist-slur-dwarfism AutoMod text filter to the slurs AutoMod text filter category. Review the AutoMod Default Filters documentation for more details about this text filter.

Changed

  • Enhanced the scam-urls AutoMod text filter to catch additional permutations.

Fixed

  • Fixed bug with !rapsheet and /rapsheet commands where unsilence events incorrectly counted as moderation actions, which could make a clean rapsheet appear with a red embed color.

v1.5.8 - 2022-05-04 12:04AM EST

Changed

  • Added logging to troubleshoot a minor issue with the !role members command.

v1.5.7 - 2022-05-03 10:52PM EST

Added

  • Added a new text command !role members, which returns a list of snowflake IDs for members of a specified role.

Fixed

  • Fixed bug with the !lock and !unlock commands where a back-end error occurs when the reaction confirmation message times out after 60 seconds.

v1.5.6 - 2022-05-01 1:25AM EST

Fixed

  • Fixed bug with the !flavor test command where fetching a server's vanity invite in some scenarios results in the command failing.

Changed

  • Enhanced the scam-urls AutoMod text filter to include additional permutations.

v1.5.5 - 2022-04-22 6:15PM EST

Fixed

  • Fixed bug where an angel emoji reaction added to a text command rapsheet embed where the user is not banned would cause Bernard to incorrectly attempt to unban the target user.
  • Fixed bug where the !cleanup command fails if the embed Bernard sends indicating the progress of the cleanup is deleted.
  • Fixed false positive with the racial-slur-ukrainians AutoMod text filter where mispellings of the word "alcohol" would incorrectly trigger the filter.
  • Fixed bug with /rapsheet slash command where errors were not properly sent to the user who invoked the command. This resulted in a "Bernard is thinking..." message after invoking the /rapsheet command.

v1.5.4 - 2022-04-07 5:15PM EST

Changed

  • Optimized back-end scheduled job handling. This should reduce CPU utilization and improve command responsiveness.

v1.5.3 - 2022-04-03 11:00AM EST

Changed

  • Optimized the scheduled unban process used for temporary bans. This also fixed a bug where users who were being banned temporarily would not be unbanned when their ban expired.

Fixed

  • Fixed bug where ban and unban OmniLog events reported inaccurate reasons. The reasons used were pulled from the first ban/unban event against the user, not the most recent ban/unban event.

v1.5.2 - 2022-03-28 12:30PM EST

Changed

  • Enhanced the racial-slur-poc AutoMod text filter to catch more permutations. Also fixed a false positive for the artist "Nigo".

v1.5.1 - 2022-03-26 5:20PM EST

Added

  • Added the discord-event-invites AutoMod text filter to the urls AutoMod text filter category. Review the AutoMod Default Filters documentation for more details about this text filter.

Fixed

  • Fixed bug with unban reactions on the !rapsheet text command trying to unban the command invoker instead of the rapsheet target.
  • Fixed bug where the "Time Since Last Moderation" field of the rapsheet embed displayed the time since the oldest punishment against the target, not the newest punishment.
  • Fixed false positive with the discord-invites AutoMod text filter where the filter triggers on invite links for Discord events.

Changed

  • The list of censored words/phrases within AutoMod notification embeds will now be de-duplicated post-censorship. This will cut down on the size of AutoMod notification embeds when a violating message contains a purposefully large number of words/phrases that violate active AutoMod filters.

v1.5.0 - 2022-03-20 1:00PM EST

Added

  • Added slash command variants for a few commands:
    • /remind can be used identically to !remind/!reminder/!remindme.
    • /todo can be used identically to !todo.
    • /unremind can be used identically to /unremind.
  • Slash commands that are executed by a user who does not have the appropriate administrative capabilities will receive a local error message only they can see explaining what administrative capability they are missing.

Fixed

  • Fixed bug with rapsheets where a user's rapsheet would show with a red color in certain conditions, even though no punishments were displayed.
  • Fixed bug with the /rapsheet slash command where Bernard would take a long time to respond to longer rapsheets, resulting in a complete lack of response. This issue only affected slash commands.

v1.4.2 - 2022-03-19 3:00PM EST

Fixed

  • Fixed bug with !rapsheet and /rapsheet commands where not all punishments would be displayed in a rapsheet in some servers.
  • Fixed bug with !rapsheet and /rapsheet commands where certain invocations cause either command to fail with Error ID b3db7f8997c4646314e095303a99afbdce145243 or 3481c02ac42d09ebf628c94ebb6db12c765c1960.
  • Fixed bug with slash command error handling where Bernard occasionally does not respond to slash commands at all if the slash command fails to execute properly.

v1.4.1 - 2022-03-19 12:43PM EST

Fixed

  • Fixed bug with production deployment process that caused a brief outage when v1.4.0 was deployed.

v1.4.0 - 2022-03-19 12:30PM EST

Added

  • Added a new command (and our first slash command), /whois. This command will display basic information about a user (either in the server or not), as well as recent events performed by the user. At the moment, two events are supported: how often the user has joined/left the server, and recent nickname changes.
  • Added a slash command variant for the !rapsheet command through /rapsheet. Functionality of the /rapsheet command is identical to the !rapsheet command.

v1.3.9 - 2022-03-14 9:45AM EST

Changed

  • Improved scam-urls AutoMod text filter

Added

  • Added field to AutoMod and manual punishment notifications indicating whether a direct message was able to be sent to the target user or not.
    • For manual punishments, this addition applies to bans, kicks, mutes, silences, and warns.
  • Added the id-only parameter to the !omnilogs event user join and !omnilogs event user leave commands. This can be useful for copy-pasting a list of user snowflake IDs into the !massban command.

v1.3.8 - 2022-02-08 9:40AM EST

Fixed

  • Fixed additional false positives with racial-slur-poc AutoMod text filter.

v1.3.7 - 2022-02-07 11:20PM EST

Fixed

  • Fixed false positive with racial-slur-poc AutoMod text filter.

v1.3.6 - 2022-02-07 4:00PM EST

Fixed

  • Fixed bug with bugfix implemented in v1.3.5 where Bernard could still send punishments DMs to a user that Bernard shares a server with, but is not in the guild where the punishment was originated.

Changed

  • Improved scam-urls AutoMod text filter.
  • Improved racial-slur-poc AutoMod text filter.

v1.3.5 - 2022-01-27 9:45PM EST

Fixed

  • Fixed bug where if a user is silenced for a short duration, unsilenced, then re-silenced for a longer duration, the user would be incorrectly unsilenced by Bernard after the short duration expired.
  • Fixed bug where the !omnilogs channel mutes command did not work at all due to Error ID c4cfa18bfa61d30471890307681347b1e356441e.
  • Fixed bug where Bernard could send punishment DMs to a user that Bernard shares a server with, but is not in the guild where the punishment was originated.
  • Fixed bug where Bernard did not gracefully handle a lack of permissions when fetching a server's vanity invite link.
  • Fixed bug where Bernard did not gracefully handle a lack of permissions when creating a default text channel and text channel category after joining a server.
  • Fixed bug where the !silence command would fail when targeting a user not presently in a server due to Error ID c565a3c96a032f6b5166cf153a22150672c21226. Proactively fixed this same issue for the !unsilence command.
  • Fixed bug where the !mute command would fail when targeting a user not presently in a server due to Error ID b1995835cc901db6419a66c70651c914b4acf5d1. Proactively fixed this same issue for the !unmute command.
  • Fixed bug where the !ban and !massban command would fail when the first word in the ban reason contained a Unicode character. Error ID adcc13ebcfac18850c9a41e56000478bf4c7d0ca

v1.3.4 - 2022-01-06 12:00AM EST

Changed

  • Made some additional back-end logging changes.

v1.3.3 - 2022-01-04 7:00PM EST

Changed

  • Made some urgent back-end logging changes.

v1.3.2 - 2021-12-30 7:10PM EST

Added

  • Added support for Omnilogs voice state change events when a user moves from one voice channel to another. Previously, Omnilogs would not catch this scenario. These events are sent to the text channel designated by the !omnilogs channel member_joins_voice command.

Fixed

  • Fixed bug with !todo command where Error ID 645a7c99c968a73ba63b127c394b290a690fb47c appears when a user has existing reminders that have yet to fire.

v1.3.1 - 2021-12-29 1:30PM EST

Fixed

  • Fixed bug where attempting to send a vanity invite to a user after they are punished in some servers prevents punishment from taking effect.

v1.3.0 - 2021-12-29 1:00PM EST

Fixed

  • Fixed bug where silenced users could leave the server, then re-join the server, and the configured silence role for the server would not be re-applied to the user.
  • Fixed benign tracebacks caused by Discord API timeouts and/or randomly tearing down the TCP connection with Bernard.

Changed

  • Modified back-end library that Bernard is based on, which will enable future features such as slash commands and message thread support.
  • Migrated the below AutoMod Gatekeeping commands to be under the AutoMod command tree. Reference

v1.2.7 - 2021-12-04 12:00PM EST

Fixed

  • Fixed bug with new AutoMod text filter Show Phrase feature wherein all AutoMod notifications would not display message contents if the Show Phrase feature was enabled on a single AutoMod text filter (which it is in some default filters).
  • Fixed bug with new AutoMod text filter Show Phrase feature where message contents are not displayed in the Omnilogs AutoMod Notifications channel configured for the server. This channel is not typically public-facing, so there should be little concern with displaying message contents in this channel.
  • Fixed bug where the !cleanup command fails while the cleanup is in progress if the cleanup-in-progress message (which is updated as the cleanup progresses) is deleted prior to the cleanup finishing.
  • Fixed bug where the !unsilence command does not provide proper feedback if an invalid target is passed into the command.

v1.2.6 - 2021-11-26 12:00PM EST

Added

  • Added an optional administrative capability HELLO to the !hello command.
    • By default, all users in a server will be able to use the !hello command without any administrative capability needing to be assigned to any specific role.
    • If the HELLO administrative capability is assigned to any role in the server, then users without that role will not be able to use the !hello command.
  • Added the !filter show-phrase command, which allows you to modify whether an AutoMod text filter notification contains the censored contents of the message.

Changed

  • The !mute command no longer require the target user to be actively joined to a voice channel.

Fixed

  • Fixed false positive with scam-urls AutoMod text filter where legitimate links from Discord (e.g. https://discord.com/blog/free-nitro-holiday-bogo-sale-2021) incorrectly trigger the filter.
  • Fixed bug with AutoMod text filter attribute (e.g. default status, score, name, description, etc.) migration bug.

v1.2.5 - 2021-11-16 9:30PM EST

Changed

  • Increased default score of scam-urls AutoMod text filter from 150 to 250. Also enabled score history tracking on the same filter.
  • Add !invites as an alias to the !invite command.

Fixed

  • Fixed bug where scheduled tasks stop working when a task invoker's account is deleted when the scheduled task fires.
  • Fixed bug where user feedback embed would occasionally not send due to an empty field within the embed.

v1.2.4 - 2021-11-13 1:30PM EST

Fixed

  • Fixed another bug where legitimate @everyone or @here mentions cause the scam-urls AutoMod text filter to incorrectly trigger.

v1.2.3 - 2021-11-12 12:30PM EST

Fixed

  • Fixed bug where legitimate @everyone or @here mentions cause the scam-urls AutoMod text filter to incorrectly trigger.

v1.2.2 - 2021-11-11 6:15PM EST

Changed

  • Improved scam-urls AutoMod text filter with additional phrases to catch.
  • Improved lgbtqia-slur-homosexual-men AutoMod text filter to reduce false positives.
  • Improved code that sanitizes/normalizes message embeds which spreads out large embeds across multiple subsequent messages.

Fixed

  • Fixed bug where manually unbanning a user does not purge internal scheduled unban tasks, which can cause Bernard to become confused if the user is re-banned prior to the scheduled unban task being executed.

v1.2.1 - 2021-11-06 5:30PM EST

Changed

  • Changed administrative capabilities needed to run !omnilogs event commands and subcommands from CONFIG_CHANGES to any moderation-related administrative capability.

v1.2.0 - 2021-11-06 3:45PM EST

Added

  • Added the !omnilogs event user join command.
  • Added the !omnilogs event user leave command.

Fixed

  • Fixed bug where a lack of ban permissions caused an error (Error ID 34b2f4a8b0b41852659a42041b7e32bf6df07116).
  • Fixed bug where a rapsheet entry containing square brackets ([ or ]) passed into the !rapsheet edit or !rapsheet delete command would cause an error (Error ID b6b3aee2e80a29b9f6d3dfa2da96777d9412fb66).

Changed

  • Changed the !channel series of commands to be the !omnilogs channel series of commands.
  • Improved scam-urls AutoMod text filter with additional phrases to catch.

v1.1.59 - 2021-11-01 3:30PM EST

Changed

  • Improved scam-urls AutoMod text filter with additional phrases to catch.

v1.1.58 - 2021-10-31 11:30AM EST

Fixed

  • Fixed bug where a permanent voteban would fail and return an error message (Error ID 6a46bf7c314fe1749a344ac834719b71be917b26).
  • Fixed bug where an arena battle could be started against a user who is not a member of the current Discord server. This would cause an error message to return (Error ID 8b289ffd4f383b25ba7cfe1e4ddba9b24cdc48da).

Changed

  • Improved scam-urls AutoMod text filter with additional phrases to catch.

v1.1.57 - 2021-10-30 10:30AM EST

Fixed

  • Fixed bug where a user who was banned through an Arena Battle could not be unbanned prematurely using the !unban command.

Changed

  • Improve scam-urls AutoMod text filter to reduce false positives.

v1.1.56 - 2021-10-29 4:30PM EST

Changed

  • Optimize AutoMod text filter execution time. All text filters will now execute ~35% faster.
  • Optimize scam-urls AutoMod text filter to prevent bot lockups, causing Bernard to become unresponsive.

v1.1.55 - 2021-10-27 5:25PM EST

Changed

  • Optimize regular expression used in scam-urls AutoMod text filter to improve performance.

v1.1.54 - 2021-10-25 12:00PM EST

Fixed

  • Fixed traceback when downloading message attachments from Discord's CDN (Content Distribution Network).
  • Fixed traceback when sanitizing embeds prior to sending them to a text channel.
  • Fixed bug where attempting to kick a user that is not present in a server resulted in an unnecessary error message (Error ID 3b40666e17dbfd1a3d11d143da1cd08629913e5e).

Changed

  • Further improved scam-urls AutoMod text filter to catch a wider breadth of scam URL messages.

v1.1.53 - 2021-10-24 9:00PM EST

Fixed

  • Fixed bug where soft and hard warning punishment DMs to users did not contain the reason for the warning.

Changed

  • Improved scam-urls text filter to catch common phrases used within Discord Nitro "gift" scam URL messages.

v1.1.52 - 2021-10-16 8:30PM EST

Added

  • Added the ableist-slur-intellectual-disability-down-syndrome AutoMod text filter to the slurs AutoMod text filter category. Review the AutoMod Default Filters documentation for more details about this text filter.
  • Added the racial-slur-welsh-australians-new-zealanders AutoMod text filter to the slurs AutoMod text filter category. Review the AutoMod Default Filters documentation for more details about this text filter.
  • Added the racial-slur-ukrainians AutoMod text filter to the slurs AutoMod text filter category. Review the AutoMod Default Filters documentation for more details about this text filter.

Fixed

  • Fixed traceback caused by embed fields occasionally being empty in some scenarios.

Changed

  • Added additional URLs to the scam-urls AutoMod text filter.

v1.1.51 - 2021-09-18 4:00PM EST

Added

  • Added the ADMINISTRATOR administrative capability, which allows Bernard to treat the user as if they were an administrator of the server. This allows individuals or roles to be given full access to Bernard's commands without possessing the Administrator permission in a server.
  • Added ability for Bernard to DM information about soft and hard warning punishments to users.

Fixed

  • Fixed traceback that occurred occasionally while sending notifications for edited or deleted messages.
  • Fixed traceback caused by a race condition when Bernard attempts to report events that happen immediately after Bernard joins a server, but before Bernard's initial configuration finishes (thus creating the channels in which Bernard would report the events).
  • Fixed excessive error that occurs when the !role capability list command is used when there are no roles configured with administrative capabilities in a server.

v1.1.50 - 2021-08-29 8:00PM EST

Fixed

  • Fixed false positive with the lgbtqia-slur-homosexual-men text filter where filter triggers on "f*g", which is often used to censor the word "fucking".

Changed

  • Improved lgbtqia-slur-homosexual-men text filter to include additional phrases.
  • Improved !massban command's feedback when it attempts to ban individuals who are already banned.

v1.1.49 - 2021-08-09 12:00PM EST

Added

  • Added the scam-urls AutoMod text filter to the urls AutoMod text filter category. This AutoMod text filter tracks URLs that are commonly used by scammers and bots on Discord servers. Review the AutoMod Default Filters documentation for more details about this text filter.

Fixed

  • Fixed false positive with the ableist-slur-intellectual-disability text filter where the Portuguese word "tarde" incorrectly violated the filter.
  • Fixed false positive with the racial-slur-poc text filter where the word "nib" incorrectly violated the filter.
  • Fixed traceback that occurs due to lack of permissions when fetching details about an edited message.
  • Fixed traceback that occurs during cleanup when attempting to fetch a message deleted during the cleanup.
  • Fixed traceback that occurs when Bernard tries to send messages or embeds in a channel when Bernard lacks permissions to send messages in the channel.

Changed

  • Embeds indicating edited or deleted messages will display the Unicode-decoded version of the original or post-edit message in addition to the original Unicode message. In other words, if a user's message contains Unicode or Zalgo text, and that message is deleted, the embed sent by Bernard will show the original Unicode/Zalgo message as well as a "decoded" version of the message.
  • Most embeds generated as a result of a server member's actions (e.g. editing a message, deleting a message, etc.) have been changed so that the user's display name (meaning, their nickname if they have one, otherwise their username) is displayed. Previously, the member's username would be displayed.

v1.1.48 - 2021-07-26 10:00AM EST

Added

  • Expanded the scope of the ableist-slur-intellectual-disability text filter to include additional words.

Fixed

  • Fixed false positive with the ableist-slur-intellectual-disability text filter where the Spanish word "tardes" incorrectly violated the filter.
  • Fixed false positive with the racial-slur-poc text filter where the Spanish football player Saul Niguez's last name incorrectly violated the filter.

Changed

  • Modified AutoMod violation notifications so that the name of the violated text filter (e.g. "ableist-slur-intellectual-disability") is displayed alongside the name of the violated text filter category (e.g. "slurs").

v1.1.47 - 2021-07-10 6:30PM EST

Fixed

  • Fixed bug where !silence and !unsilence commands fail when the !role silence command has never been used to define the role to be added/removed from users. Both commands now warn the command invoker when the !role silence command has not been used.
  • Fixed bug where mute and silence rapsheet entries do not display duration values. Note that this bugfix will only affect new mute or silence rapsheet entries - mute and silence rapsheet entries prior to this release will not display duration values.
  • Fixed bug where DMs to users who have been silenced always reported the silence as being permanent. Temporary silences will now be reported correctly in DMs to users.
  • Fixed command error feedback that incorrectly reported role hierarchy issues. Prior to this release, if an invoker's role hierarchy was equal to or less than the target, an error would state the target's role hierarchy is greater than the invoker's, even if it is equal. Starting with this release, the error will state the target's role hierarchy is equal to or greater than the invoker's.

Added

  • Added !timeout as an alias for the !silence command.
  • Added a new filter named "sexual-assault" to the default profanity filter. See Default Text Filters for more information.

Changed

  • The way command errors are reported has changed. Errors are reported in an embed instead of plaintext now. Furthermore, an error will contain two error identifies - one is generic (which indicates an overview of the issue) and one is unique (which indicates your specific instance of the issue). Both should be reported to Bernard's support if assistance is needed.
  • Improved the racial-slur-poc filter to include additional permutations.

v1.1.46 - 2021-06-25

Added

  • Added the !lock and !unlock commands.
    • !lock - Locks one or more channels. A locked channel prevents the default @everyone role from being able to send messages, add reactions, speak in voice, or stream video in the relevant channel. This is done by setting the Send Messages, Add Reactions, Speak, and Video permissions to "False" on each channel.
    • !unlock - Unlocks one or more channels. An unlocked channel allows the default @everyone role to send messages, add reactions, speak in voice, and stream video in the relevant channel. This is done by setting the Send Messages, Add Reactions, Speak, and Video permissions to "None" on each channel.
    • Note that neither command does not keep track of the default @everyone role's permissions before or after locking a channel. This means that if the default @everyone role does not have Send Messages permissions for an existing channel and the !unlock command is run on the channel, it will open up the channel such that the default @everyone role can send messages in the channel. For this reason, we recommend specifying the channels you'd like to use for both commands.
  • Added the !automod notifications command.
    • This command can be used to modify whether Bernard sends AutoMod notifications or not. AutoMod notifications are the embed notifications Bernard posts to the channel where an AutoMod violation occurred immediately after the violating message is deleted.
    • Modifying this setting does not affect whether AutoMod violation events are routed to an event channel - that setting is modified with the !channel automod command.

Fixed

  • Fixed bug where traceback occurrs occasionally when AutoMod text filters in a Permissive status are violated.
  • Fixed bug where traceback occurs when fetching invites for a server if Bernard does not have permissions to access a server's invites.

v1.1.45 - 2021-06-18 4:30PM EST

Added

  • Added an optional administrative capability START_REMINDER to the !remind, !todo, and !unremind commands.
    • By default, all users in a server will be able to use the !remind, !todo, and !unremind commands without any administrative capability needing to be assigned to any specific role.
    • If the START_REMINDER administrative capability is assigned to any role in the server, then users without that role will not be able to use the !remind, !todo, and !unremind commands.

Fixed

  • Fixed bug with embed truncation not functioning as expected in some scenarios.

v1.1.44 - 2021-06-18 10:45AM EST

Fixed

  • Fixed bug with the undocumented !config reset command, which completely resets Bernard's configuration within a server.
  • Fixed bug where traceback occurred occasionally when an edited message is detected, but Bernard is unable to fetch information about the message post-edit via the Discord API.
  • Fixed bug where traceback occurred occasionally when a new invite is created in a server, but the invite does not have a valid creator somehow.

Added

  • Added the ability for the !cleanup command to accept a text channel category as a parameter. In this instance, the cleanup will occur in all text channels under the category.
  • Added the !role silence, !silence, and !unsilence commands.
    • !role silence - Defines a role in the server that will be added to a user when the !silence command is invoked. This command also verifies that this role follows best practices and is not allowed to send messages, add reactions, and speak or stream video in any channels in the server. If channels are found that do not comply with these best practices, Bernard will warn you that those channels are misconfigured, but will accept the configuration regardless.
    • !silence - Applies the role defined in the server with the !role silence command to a user.
    • !unsilence - Removes the role defined in the server with the !role silence command from the user.

v1.1.43 - 2021-06-13 10:00PM EST

Fixed

  • Fixed bug where traceback occurred when Bernard was sent a DM consisting of only an attachment and no message body.
  • Fixed bug where some !filter subcommands would improperly handle errors when attempting to modify default filters.
  • Fixed bug where back-end API returns error because Bernard used incorrect HTTP headers for API requests.

1.1.42 - 2021-06-06 8:45AM EST

Fixed

  • Fixed bug where traceback occurs while handling errors from back-end API.
  • Fixed false negative with the racial-slur-poc filter.
  • Fixed bug where traceback occurs occasionally when messages are edited within a server.
  • Fixed bug where the !rapsheet edit and !rapsheet delete commands fail when the invoker of the rapsheet entry is no longer a member of the server.

Changed

  • When Bernard joins a server, only a single text channel (named "bernard-notifications") will be created instead of multiple text channels. All OmniLog events will be routed to this channel by default.

1.1.41 - 2021-05-21 7:30PM EST

Fixed

  • Fixed bug where traceback occurs while iterating through message attachments for crash video/GIF analysis.
  • Fixed bug where traceback occurs while attempting to download some types of attachments from Discord's CDN using Discord's API, which returns a 415 (Unsupported Media Type).
  • Fixed bug where traceback occurs when attempting to kick a user from a server who is not joined to the server. Improved user feedback in this scenario as well.

1.1.40 - 2021-05-16 4:30PM EST

Added

  • Added support for video crash analysis against direct URLs to videos as well as Gfycat URLs. This means that if a user posts a link to a Gfycat URL that crashes Discord, Bernard can detect the video and delete it.
  • Added AutoMod notifications for when crash videos are detected and deleted. Notifications will be sent to the channel where the video was posted, as well as in the configured AutoMod notifications channel.

1.1.39 - 2021-05-10 10:00PM EST

Added

  • Added AutoMod file crash analysis feature. Bernard can now automatically detect videos in Discord messages that can significantly lag or crash Discord clients.
    • For now, this feature is disabled by default. You can use the new !automod files crash status and !automod files crash punishment commands to opt in to this feature.
  • Added the !automod files crash status command. View this command's documentation here.
  • Added the !automod files crash punishment command. View this command's documentation here.

Fixed

  • Prevented traceback when reactions are added/removed in some circumstances. Root cause is not yet fixed, but additional logging is added to help us identify the root cause and resolve the issue.
  • Prevented traceback when certain voice events happen. Root cause is not yet fixed, but additional logging is added to help us identify the root cause and resolve the issue.
  • Fixed bug where error occurs when attempting to unmute a user who is not actively joined to a voice channel.

Changed

  • Modified the permalink URL for commands in Bernard's documentation. All feedback embeds now reference this new permalink. If you've bookmarked a specific command in your web browser, make sure to update it!

1.1.38 - 2021-05-10

Fixed

  • Fixed bug with scheduler where scheduled tasks attempted to run against Discord servers that Bernard was no longer present in.

1.1.37 - 2021-05-01

Fixed

  • Improved reaction addition and removal OmniLog events to more reliably trigger.
  • Improved lgbtqia-slur-homosexual-men AutoMod filter, increased slur coverage and removed a handful of false positive triggers.
  • Fixed traceback that occurs with the !role capability add command where an error is returned when roles or administrative capabilities are passed into the command separated by commas instead of spaces. Generally improved user feedback for this command as well.

1.1.36 - 2021-04-24 08:30PM EDT

Added

  • Added the !help command, which can be used to get a link to Bernard's website, documentation, Getting Started guide, and a link to the support server.
  • Added additional voice-related events to the Omnilogs feature. Specifically, the following events can now be monitored. Refer to the !channel command documentation for more information.
    • Members joining voice channels
    • Members leaving voice channels
    • Members self-muting in a voice channel
    • Members self-unmuting in a voice channel
    • Members self-deafening in a voice channel
    • Members self-undeafening in a voice channel
    • Members being server muted in a voice channel
    • Members being server unmuted in a voice channel
    • Members being server deafened in a voice channel
    • Members being server undeafened in a voice channel
    • Reactions added to a message
    • Reactions removed from a message

Fixed

  • Fixed bug where the !rapsheet edit or !rapsheet delete commands executed against yourself (which is not allowed) does not result in any feedback from Bernard such that the command silently fails.
  • Fixed bug where traceback occurs when AutoMod violation occurs, but Bernard lacks server permissions to delete a message, kick/ban a user, or post a notification message to the appropriate channels.
  • Fixed false positive with the lgbtqia-slur-transphobic AutoMod filter triggering on some URLs.

1.1.35 - 2021-04-17 12:00AM EDT

Fixed

  • Fixed bug where multiple cleanup jobs within a single server could be executed against a single user. Bernard now returns an error when this tries to happen.
  • Fixed false positive with AutoMod racial-slur-poc filter where URLs of news articles referencing U.S. Senator Christopher Coons violated the filter.
  • Fixed bug where traceback occurs while attempting to censor AutoMod violations that are already censored or contain Markdown.
  • Fixed bug where traceback occurs when attempting to delete a message that violates AutoMod when Bernard lacks permissions to manage messages in the relevant text channel.
  • Potential fix for a bug where Bernard becomes unresponsive for short amounts of time (1-3 minutes) due to a back-end database issue.

1.1.34 - 2021-04-01 5:30PM EDT

Fixed

  • Fixed bug with prototype NSFW image analysis feature where traceback occurs due to incorrect programming logic.
  • Fixed bug where reminders with a large amount of text can be set. Reminders are now restricted to 1,020 characters maximum.
  • Fixed bug where the !todo command fails when a user has pending reminders with a large amount of text set.

1.1.33 - 2021-03-29 10:30PM EDT

Added

  • Added support for .webp files to prototype NSFW image analysis feature.

Fixed

  • Fixed bug with traceback when reactions are added/removed from a DM to/from Bernard.
  • Fixed bug with infrastructure restart policies not being properly defined.

1.1.32 - 2021-03-29 10:00AM EDT

Fixed

  • Fixed bug with back-end logging not properly starting when a new version of Bernard is deployed.
  • Fixed bug with prototype NSFW image analysis feature where Discord occasionally fails to download a message attachment due to an invalid/corrupted file.
  • Fixed bug with prototype NSFW image analysis feature where analysis is run on video files as if they were image files.

1.1.31 - 2021-03-29 08:00AM EDT

Fixed

  • Fixed bug with connection exhaustion on back-end database that occasionally prevented Bernard from responding to commands or taking action on users via AutoMod.
  • Fixed bug with prototype NSFW image analysis feature where files were not properly deleted after analysis was completed.

1.1.30 - 2021-03-28

Added

  • Added the ableist-slur-intellectual-disability-asd-aspergers AutoMod filter, which is disabled by default. Review the AutoMod Default Filters documentation for more details about this filter.
  • Added detection of censored variants of phrases for the ableist-slur-intellectual-disability-asd and ableist-slur-intellectual-disability AutoMod filters.

Changed

  • Modified Bernard status to point to getbernard.io instead of docs.getbernard.io.
  • Modified !support command output to point to support.getbernard.io instead of a unique invite link.
  • Modified the way dates are displayed in event embeds so that they can be easily searched within Discord's UI. Prior to this release, dates were displayed like "2021-03-27" for March 27th on 2021. After this release, this date is displayed like "20210327". Because Discord's UI performs fuzzy searching, searching for the old date format would display a large number of false positive results.
  • Improved ban/unban OmniLog user feedback messages. Messages are now embeds and contain additional information regarding the ban/unban event, including the invoker of the ban/unban. Note that if a ban was performed through a Bernard command, both the ban and unban OmniLog messages will report that Bernard is the invoker.

Fixed

  • Fixed bug with Bernard's status disappearing after a short amount of time.

1.1.29 - 2021-03-15

Fixed

  • Fixed bug with racial-slur-romani filter where it was accidentally given a default status of Enforcing instead of the documented default status of Disabled.

1.1.28 - 2021-03-14

Added

  • Added the !gatekeeping age status command, which is documented here.
  • Enhanced event monitoring such that if a channel is deleted that events are being sent to, Bernard gracefully cleans up the server's configuration accordingly.
  • Added the "slurs" default filter category.
  • Added five new filters (racial-slur-latinx-hispanic, racial-slur-asian, racial-slur-islamic, racial-slur-romani, and racial-slur-antisemitic-goddess) that catch a number of common racial slurs. Review the AutoMod Default Filters documentation for a full list of default filters and examples of each filter's phrases.
  • Added new phrases to racial-slur-poc and racial-slur-antisemitic filters. Review the AutoMod Default Filters documentation for a full list of default filters and examples of each filter's phrases.
  • Added the "urls" default filter category, which contains the new "discord-invites" default filter.

Removed

  • Removed the !gatekeeping age enable command in favor of the !gatekeeping age status command.
  • Removed the !gatekeeping age disable command in favor of the !gatekeeping age status command.
  • Removed the ableist-slur-asd AutoMod filter, since it is too general and rarely used.

Fixed

  • Fixed bug where Discord status gets "stuck" in a server configuration away status.
  • Fixed traceback when Bernard receives a DM that is edited.
  • Fixed traceback and user-facing error when Bernard attempts to unban/unmute a user who was banned/muted by a user with a higher role hierarchy than the command invoker.

Changed

  • Migrated a number of AutoMod filters from the "profanity" filter category to the new "slurs" filter category.

1.1.27b - 2021-02-23

Fixed

  • Fixed another permutation of the bug originally thought to be resolved in 1.1.27a.

1.1.27a - 2021-02-23

Fixed

  • Fixed bug with permanent bans where the target of a permanent ban would be unbanned within a minute. This bug only affected permanent bans made between ~9:00AM EST and ~2:00PM EST. Temporary bans were unaffected.

1.1.27 - 2021-02-23

Added

  • Added !remindme and !remember as aliases to the !remind command.
  • Added !premium command, allowing server owners and administrators to verify the current status of their Bernard Premium subscription.
  • Added checks for certain commands and features behind a Bernard Premium subscription. Specifically:
    • The addition (via !filter add or !category add commands) or execution of custom/non-default AutoMod filters
    • Changing AutoMod filter status to the "Permissive" status via the !filter status or !category status commands.
    • All !invite commands, including !invite, !invite source, !invite ban, etc.
    • All !gatekeeping commands, as well as the execution of gatekeeping checks (namely minimum account age verification).
    • Limited punishment history for the !rapsheet command to one year for non-premium users.
    • These checks are not enabled just yet, but will be enabled in a release in the near future.
  • Added !filter track-score-history command.
  • Added !category track-score-history command, which is essentially a macro for the !filter track-score-history command.

Fixed

  • Fixed bug with AutoMod where messages containing unicode characters were not properly censored in AutoMod notifications.
  • Fixed bug with AutoMod where AutoMod actions on different servers were not differentiated between each other, causing AutoMod actions to leak between different servers.
  • Fixed bug with tracebacks occurring when detecting the deletion of old messages.
  • Fixed extremely rare bug with AutoMod score calculation algorithm that incorrectly results in an extremely high previous score.
  • Fixed bug where temporarily banning a target who was previously temporarily banned would result in the target being unbanned "early".
    • For example, let's say a target is initially banned for one day. Later, the moderation team decides to increase the ban to three days. As a result of this bug, the target would have been unbanned after one day as "originally" planned. This behavior has been fixed; furthermore, a confirmation prompt has been added when attempting to override an existing ban.
  • Fixed bug with AutoMod score calculation surrounding account and member age multipliers.

Removed

  • Removed !filter status command's ability to display the status of a filter. Using this command without the new_status parameter is no longer supported.
  • Removed the !category include-previous-score command in favor of the new !filter track-score-history and !category track-score-history commands.
  • Removed !channel initialize command to reduce command bloat.

Changed

  • The !massban command will override existing bans by default. This differs in behavior from the !ban command, which will prompt for confirmation that an existing ban should be overridden.
  • Migrated "Include Previous Score" functionality to AutoMod filters and renamed to "Score History Tracking", which is more intuitive.
  • When Bernard joins a new server, all notification channels are now created within a channel category named "bernard-channels". The server owner, Bernard, and all roles with Administrator permissions in the server can read and send messages into these channels. All other roles do not have visibility into these channels.

1.1.26 - 2021-02-13

Fixed

  • Fixed bug with AutoMod pipeline erroring out when executing against an edited message.
  • Fixed bug with internal logging of tracebacks in some scenarios.

1.1.25 - 2021-02-13

Fixed

  • Fixed bug with permissive AutoMod filters where a message with a score of 0 (meaning, no permissive filters were violated) generates a permissive notification anyway.

1.1.24 - 2021-02-13

Added

  • Added a "description" characteristic to AutoMod filters. This attribute augments the slug name (see the "Changed" section of this release for more information) of the filter by adding additional details about the word or phrase that the filter detects.
  • Added the !filter description command to view or set the description of an AutoMod filter.
  • Added an integration test for AutoMod notification embeds with very long messages that violate one or more AutoMod filters. This integration test ensures that no regressions will be introduced after future changes to AutoMod notification embeds.
  • Added a confirmation check to the !filter remove command such that users cannot accidentally remove an AutoMod filter from server configuration. Bernard will prompt for confirmation via a reaction to confirm that an AutoMod filter should be removed from a server's configuration.
  • Added the !filter immune add command.
  • Added the !filter immune remove command.

Changed

  • Prior to this release, AutoMod filter categories could have a status of Enforcing, Permissive, or Disabled. AutoMod filters could have a boolean status of on or off. This limits some use cases with default filters. For example, consider a scenario wherein server owners might want to be notified (via a Permissive status) if a certain slur is used so that moderators can verify the context of the statement, but still want other slurs within that same filter category to be punished via AutoMod. Prior to this release, this use case was not supported. This release moves the Enforcing/Permissive/Disabled status capabilities from AutoMod filter categories to AutoMod filters.
    • Relevant commands (such as !filter status) have been modified accordingly.
    • AutoMod filter categories no longer have a concept of "status" and are just an organizational unit to house multiple related AutoMod filters.
    • AutoMod filters that were disabled prior to this release will be given a status of Disabled - otherwise, the status previously belonging to the AutoMod filter category will get "pushed down" to the AutoMod filter.
  • Prior to this release, users and roles in a server could be made immune to AutoMod filter categories. This limits some use cases with default filters. For example, consider a scenario wherein server owners might want a specific group of users to be able to use terminology that would traditionally be used a slur. Prior to this release, to accomplish this, server owners would need to make this role immune to all slurs in the default filter, so this use case was not supported. This release moves immune user/role capabilities from AutoMod filter categories to AutoMod filters.
    • Relevant commands (such as !category immune add/remove) have been modified accordingly.
    • AutoMod filter categories no longer have a concept of "immune users/roles" and are just an organizational unit to house multiple related AutoMod filters.
    • Immune users/roles within an AutoMod filter category will get "pushed down" to AutoMod filters within the filter category.
  • Prior to this release, the !filter add command could be used to add an AutoMod filter to an AutoMod filter category (optionally with a regular expression) or add a regular expression to an existing AutoMod filter. This logic has been broken out into two separate commands - !filter add (to add an AutoMod filter to an AutoMod filter category) and !filter add regex (to add a regular expression to an AutoMod filter).
  • Prior to this release, the !filter remove command could be used to remove an AutoMod filter from an AutoMod filter category or remove a regular expression from an existing AutoMod filter. This logic has been broken out into two separate commands - !filter remove (to remove an AutoMod filter from an AutoMod filter category) and !filter remove regex (to remove a regular expression from an AutoMod filter).
  • Improved output of !filter add command to utilize embeds for feedback.
  • Improved output of !filter add regex command to utilize embeds for feedback.
  • Improved output of !filter remove command to utilize embeds for feedback.
  • Improved output of !filter remove regex command to utilize embeds for feedback.
  • Improved output of !filter score command to utilize embeds for feedback.
  • Improved output of !filter status command to utilize embeds for feedback.
  • Improved output of !category immune add command to utilize embeds for feedback.
  • Improved output of !category immune remove command to utilize embeds for feedback.
  • Improved output of !filter list command to display immune entities for each AutoMod filter.

Fixed

  • Fixed bug with !rapsheet command used where an error is returned if the invoker of a ban no longer exists in the server. As a result, we were unable to retrieve the ban invoker's role hierarchy and compare it with the rapsheet invoker's role hierarchy, which allows for click-to-unban reaction capabilities.
  • Fixed extremely rare bug with AutoMod score calculation algorithm that incorrectly results in an extremely high score.

Removed

  • Removed the !category immune command due to lack of utilization. Due to the fact that this command is a subcommand of !category, which can only be executed by server owners or administrators, who are already immune to all AutoMod filters.