We're pleased to be publishing the release candidate for v2.18.0 (the official release should follow within a week or so). 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.
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
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) - Fixed the
+l(user limit) channel mode to reject non-positive values with an appropriate error (#2325, thanks @progval!) - Fixed
MONITORso that clients monitoring a user receiveMETADATAnotifications for that user even without theextended-monitorcapability (#2309, #2310) - Improved handling of PROXY protocol errors on
proxy: truelisteners (#2334) - Fixed validation of the
bcrypt-costconfig value to prevent silent errors (#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
- Official release builds use Go 1.26.1 (#2330)