We're pleased to be publishing v2.18.0, a new stable release. This release adds support for PostgreSQL and SQLite as history backends, expands the HTTP API, and includes bug fixes and minor improvements.
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. It includes no changes to the database file format.
Due to the additional database drivers included in the default build, the size of the Ergo executable binary has increased since v2.17.0 (for example, the Linux binary for x86-64 has increased from 16.2 MiB to 26.1 MiB). See docs/BUILD.md if you need to build a smaller binary. Conversely, if you were already building from source, you may need to adjust your build commands in order to maintain parity; consult that file for details.
Many thanks to @clbm87, @emersion, @felix, flurry, @furudean, @k4ct0, @mauropcorrea, @NyaaaWhatsUpDoc, @poVoq, @progval, @rys, Stryker, and th0th for helpful discussions, contributing patches, reporting issues, and helping test.
Config changes
- Added
server.postgresqlblock to configure a PostgreSQL history backend. (#2322, #2347) - Added
server.sqliteblock to configure a SQLite history backend. (#2352) - Added
metadata.operator-only-modificationto restrict metadata changes to IRC operators with themetadatacapability (#2287, #2369, thanks @clbm87!) - Added
server.initial-noticeto send a configurable notice to clients immediately after they connect, which can be used for open proxy detection (e.g., with HOPM) (#2317, thanks Stryker!)
Added
- Added support for PostgreSQL and SQLite as history backends (#2322, #2352, thanks @felix, @NyaaaWhatsUpDoc, @poVoq!)
- Added new HTTP API endpoints (thanks @clbm87, flurry, @furudean, @mauropcorrea!):
- Added support for
draft/ACCOUNTREQUIREDin005ISUPPORT tokens whenaccounts.require-saslis enabled (#2341)
Fixed
- Push notifications now include the
msgidtag, as required by the specification (#2350) - Fixed some cases where environment variable config overrides did not apply as expected (e.g., individual oper entries can now be overridden without replacing the entire
opersblock) (#2275, #2362, thanks th0th!) - Fixed error cases in
CS DEOPandEXTJWTcausing client disconnection (#2345, #2346, thanks @k4ct0!) - Fixed some
REDACTresponses (#2319, #2320) - Fixed some
FAILresponses toWEBPUSH(#2351) - The
+l(user limit) channel mode now rejects non-positive values with an appropriate error (#2325, thanks @progval!) - Clients monitoring a user now receive
METADATAnotifications for that user even without theextended-monitorcapability (#2309, #2310) - Improved handling of PROXY protocol errors on
proxy: truelisteners (#2334) - The
accounts.bcrypt-costconfig value is now validated at config load time (#2311, #2312, thanks @rys!)
Changed
- HTTP API: reorganized NickServ-related endpoints under a
/v1/ns/prefix (/v1/ns/info,/v1/ns/list,/v1/ns/passwd). The previous endpoint names (/v1/account_details,/v1/account_list) are retained as aliases for backwards compatibility. (#2329) - The
/v1/check_authAPI endpoint now supports certificate fingerprint authentication (#2354, thanks flurry!) - Reduced the deadline for
proxy: truelisteners to read the PROXY protocol header from 1 minute to 5 seconds (#2334)
Internal
- Added build tags to control which optional features are built; see docs/BUILD.md for details (#2356)
- Official release builds use Go 1.26.1 (#2330)