v2.8.0
We're pleased to be publishing Ergo 2.8.0. This release contains many fixes and enhancements, plus one major user-facing feature: user-initiated password resets via e-mail (#734).
This release includes changes to the config file format, all of which are fully backwards-compatible and do not require updating the file before upgrading.
This release includes a database change. If you have datastore.autoupgrade set to true in your configuration, it will be automatically applied when you restart Ergo. Otherwise, you can update the database manually by running ergo upgradedb (see the manual for complete instructions).
As part of this release, our official Docker images have moved from Docker Hub to the GitHub Container Registry, at ghcr.io/ergochat/ergo. The stable and master tags correspond to the respective branches. Tagged releases (e.g. v2.8.0) are available under the corresponding named tags.
Many thanks to @ajaspers, @delthas, @mogad0n, @majiru, @ProgVal, and @tacerus for contributing patches, to @ajaspers for contributing code review, to @ajaspers, @cxxboy, @dallemon, @emersion, @erikh, @eskimo, @jwheare, @kylef, @Mikaela, @mogad0n, @MystaraTheGreat, @ProgVal, @tacerus, @tamiko, and @xnaas for reporting issues and helping test, and to our translators for contributing translations.
Config changes
- Added
accounts.registration.email-verification.password-resetblock to configure e-mail-based password reset (#734, #1779) - Added
accounts.registration.email-verification.timeoutto impose a timeout on e-mail sending; the recommended default value is60s(60 seconds) (#1741) - Added
server.suppress-lusersto allow hiding the LUSERS counts (#1802, thanks @eskimo!)
Security
- Added
accounts.registration.email-verification.timeoutto impose a timeout on e-mail sending; the recommended default value is60s(60 seconds) (#1741)
Added
- Added user-initiated password resets via email (#734). This requires e-mail verification of accounts, and must additionally be enabled explicitly: see the
email-verificationblock indefault.yamlfor more information. - Added the
draft/extended-monitorcapability (#1761, thanks @delthas!) - When doing direct sending of verification emails, make email delivery failures directly visible to the end user (#1659, #1741, thanks @tacerus!)
- For operators,
NS INFOnow shows the user's email address (you can also view your own address) (#1677, thanks @ajaspers!) - Operators with the appropriate permissions will now see IPs in
/WHOWASoutput (#1702, thanks @ajaspers!) - Added the
+s dsnomask, for operators to receive information about session disconnections that do not result in a full QUIT (#1709, #1728, thanks @mogad0n!) - Added support for the
SCRAM-SHA-256SASL authentication mechanism (#175). This mechanism is not currently advertised inCAP LSoutput because IRCCloud handles it incorrectly. We also recommend against using SCRAM because of its lack of genuine security benefits. /UBAN LISToutput now includes the time the ban was created (#1725, #1755, thanks @Mikaela and @mogad0n!)- Added support for running as a
Type=notifysystemd service (#1733) - Added a warning to help users detect incorrect uses of
/QUOTE(#1530)
Fixed
- The
+M(only registered users can speak) channel mode did not work; this has been fixed (#1696, thanks @Mikaela!) - A channel
/RENAMEthat only changed the case of the channel would delete the channel registration; this has been fixed (#1751, thanks @Mikaela!) - Fixed
allow-truncation: truenot actually allowing truncation of overlong lines (#1766, thanks @tacerus!) - Fixed several pagination bugs in
CHATHISTORY(#1676, thanks @emersion!) - Fixed support for kicking multiple users from a channel on the same line, the
TARGMAX005 parameter that advertises this, and the default kick message (#1748, #1777, #1776), thanks @ProgVal!) - Fixed
/SAMODEon a channel not producing a snomask (#1787, thanks @mogad0n, @ajaspers!) - Adding
+fto a channel withSAMODEused to require channel operator privileges on the receiving channel; this has been fixed (#1825, thanks @Mikaela!) - Fixed parameters sent with
697 ERR_LISTMODEALREADYSETand698 ERR_LISTMODENOTSET(#1727, thanks @kylef!) - Fixed parameter sent with
696 ERR_INVALIDMODEPARAM(#1773, thanks @kylef!) - Fixed handling of channel mode
+kwith an empty parameter (#1774, #1775, thanks @ProgVal!) WHOWASwith an empty string as the parameter now produces an appropriate error response (#1703, thanks @kylef!)- Fixed error response to an empty realname on the
USERline (#1778, thanks @ProgVal!) - Fixed
/UBAN ADDof a NUH mask (i.e. a k-line) not killing affected clients (#1736, thanks @mogad0n!) - Fixed buggy behavior when
+iis configured as a default mode for channels (#1756, thanks @Mikaela!) - Fixed issues with
channels.operator-only-creationnot respecting/SAJOINor always-on clients (#1757) - Protocol-breaking operator vhosts are now disallowed during config validation (#1722)
- Fixed error message associated with
/NS PASSWDon a nonexistent account (#1738, thanks @Mikaela!) - Fixed an incorrect
CHATHISTORYfail message (#1731, thanks @ProgVal!) - Fixed a panic on an invalid configuration case (#1714, thanks @erikh!)
Changed
- Upgraded the
draft/registercapability to the latestdraft/account-registrationiteration (#1740) - Unregistered users with
+vor higher can now speak in+R(registered-only) channels (#1715, thanks @Mikaela and @ajaspers!) - For always-on clients with at least one active connection,
338 RPL_WHOISACTUALLYnow displays an arbitrarily chosen client IP address (#1650, thanks @MystaraTheGreat!) #can no longer be used in new account names and nicknames, or as the RELAYMSG separator (#1679)- The
oragono.io/nopecapability was renamed toergo.chat/nope(#1793)
Removed
neveris no longer accepted as a value of thereplay-joinsNickServ setting (/NS SET replay-joins); user accounts which enabled this setting have been reverted to the default value ofcommands-only(#1676)