Shivaram Lingamneni
4abb302ffa
bump to new development version
2026-07-21 05:15:42 +00:00
Shivaram Lingamneni
885737f7f6
bump version and changelog for v2.19.0
2026-07-21 00:29:05 -04:00
Shivaram Lingamneni
2bc106e6c2
fix #2424
...
Add a ChanServ setting to suppress storage of non-message events
(JOIN/PART/QUIT can be especially spammy)
2026-07-16 06:51:56 +00:00
Shivaram Lingamneni
f0767c95da
bump version and changelog for v2.19.0-rc1 ( #2423 )
2026-07-14 02:47:33 -04:00
Shivaram Lingamneni
7007c2c787
add saget and saset to API ( #2421 )
2026-07-13 02:34:06 -04:00
Sai Asish Y
9a7bdda6a0
fix #2411 : split long CAP ACK/NAK across multiple lines ( #2414 )
...
Signed-off-by: Sai Asish Y <say.apm35@gmail.com >
Co-authored-by: Shivaram Lingamneni <slingamn@cs.stanford.edu >
2026-07-07 21:29:36 -07:00
Matt Ouille
d47d7a8bdf
fix TestEmptyBuffer flakiness from timestamp collisions
...
TestEmptyBuffer added items without an explicit Message.Time, letting
Add() stamp them with time.Now().UTC(), then immediately queried with
end = time.Now() as the (exclusive) upper bound. On platforms where the
wall clock has coarse resolution -- macOS ticks in 1us increments, so
consecutive time.Now() calls usually return identical wall times -- the
item's timestamp equals the query bound, item.Message.Time.Before(before)
is false, and the item is excluded. The test then panics indexing the
empty result slice.
On Apple Silicon this fails nearly deterministically; Linux's
nanosecond-resolution clock is why CI never caught it.
Use explicit fixed timestamps via easyItem, matching every other test
in this file.
2026-07-07 16:57:20 -07:00
Shivaram Lingamneni
85b900258c
implement draft/whoami
2026-07-07 07:31:06 +00:00
Shivaram Lingamneni
26cf806545
update to draft/metadata-3 ( #2416 )
...
temporarily update irctest to metadata-3 branch
2026-07-07 00:28:04 -07:00
Shivaram Lingamneni
c6b2f1285c
Merge pull request #2410 from slingamn/batchid
...
fix #2391
2026-07-03 12:29:01 -07:00
Shivaram Lingamneni
7280ab8993
add authtoken cap value ( #2413 )
2026-07-01 22:59:07 -07:00
Shivaram Lingamneni
9abc39fe97
fix #2391
...
Validate incoming batch tags
2026-07-01 07:12:17 +00:00
Shivaram Lingamneni
8ec95e912a
fix: don't close multiline batch twice
2026-06-30 21:22:38 +00:00
Shivaram Lingamneni
857cd690b0
apply deferred fakelag immediately after execution
...
If the client sends a long multiline, then pauses on its own
before sending more data, we want to apply deferred fakelag
during the pause, rather than upon receiving the next input line.
2026-06-30 20:43:37 +00:00
Shivaram Lingamneni
08d8145f26
draft/AUTHTOKEN support ( #2385 )
...
Includes two compatibility breaks:
* New, incompatible configuration format for extjwt
* JWTs accepted with IRCV3BEARER MUST have an expiration time
2026-06-30 12:13:56 -07:00
Jokler
e69f3a36b5
Store tags for messages using draft/relaymsg in history
2026-06-11 01:04:16 +02:00
Shivaram Lingamneni
7ab4053e90
filter secret channels from unprivileged NS INFO ( #2405 )
2026-05-31 23:47:52 -04:00
Shivaram Lingamneni
51b2476af7
fix #2402
...
Labeled QUIT from the client should receive a labeled QUIT in return
2026-05-19 03:08:39 +00:00
Shivaram Lingamneni
6ccd4e2313
ensure always-on state is flushed
...
* Fix a race condition in persisting channel memberships for always-on
clients (the asynchronous write of the client's channel memberships
could precede the update to the channel's member list, resulting in
the membership not being observed and written)
* Ensure always-on state is flushed on shutdown (we were already
flushing timestamps, because those writes are heavily debounced, but
we were relying on immediate asynchronous writeback for channel
memberships and similar state).
2026-05-08 04:25:09 +00:00
Shivaram Lingamneni
4b20b85687
make METADATA CLEAR send RPL_KEYNOTSET
2026-04-29 00:45:33 -04:00
Shivaram Lingamneni
85f7fe2c06
fix #2395
...
Ensure bot tag is replayed for DMs
2026-04-28 05:14:48 +00:00
Shivaram Lingamneni
899ec1e2d4
fix #2393
...
Add the bot tag to echo messages when applicable
2026-04-28 04:56:46 +00:00
quaff
147403ea73
IRCv3 spec no-implicit-names has been ratified. ( #2390 )
2026-04-21 14:40:37 -04:00
Shivaram Lingamneni
49192e6fa5
add /v1/whois to API ( #2387 )
2026-04-20 00:58:29 -04:00
Shivaram Lingamneni
7c8d81ac79
pointless optimization to (*caps.Set).Strings ( #2386 )
...
Doesn't change anything on arm64 (where atomic load is a plain MOV),
but reduces atomic instructions on arm64 and other platforms.
2026-04-20 00:56:48 -04:00
Shivaram Lingamneni
de005ee69f
enhanced auth integrations ( #2383 )
...
* Harvest cookies from the initial websocket handshake to pass to an
auth-script (#2185 )
* Allow running auth-script and ip-check-script over unix domain socket
(#2280 )
2026-04-15 01:48:29 -04:00
Shivaram Lingamneni
cfee1917f3
use deferred unlock in two more places ( #2381 )
...
No functional change, just defensive coding
2026-04-13 23:06:08 -04:00
Shivaram Lingamneni
9556e5c025
add support for draft/chathistory-end tag ( #2379 )
2026-04-13 22:50:24 -04:00
Shivaram Lingamneni
10da32292f
fix missing read permissions checks for METADATA ( #2382 )
...
These were incorrectly refactored out in #2277 .
Also group the two write subcommands together, then the
three read subcommands.
2026-04-13 22:46:10 -04:00
Shivaram Lingamneni
5bb94efaf6
fix handling of invalid API bearer tokens ( #2380 )
...
Not doing a pointfix since this only affects obvious misconfigurations of Ergo
(our attempt to be defensive against those misconfigurations failed)
2026-04-10 13:32:09 -04:00
Shivaram Lingamneni
44cd51ef36
new development version
2026-03-22 01:38:47 -04:00
Shivaram Lingamneni
4fabfb8ee3
release v2.18.0
2026-03-22 00:55:45 -04:00
Shivaram Lingamneni
f9a11db153
fix (*SQLite).ListChannels
...
If the final channel we attempted to list had no messages, sql.ErrNoRows
would be returned as the error for the entire function, which would
prevent any channels from appearing in the targets list.
2026-03-20 04:15:29 +00:00
Shivaram Lingamneni
937bad6717
fix #2287 ( #2369 )
...
Allow restricting metadata modification to server operators
2026-03-17 14:33:11 -04:00
Shivaram Lingamneni
2a114dc78a
release v2.18.0-rc1 ( #2364 )
2026-03-16 00:53:01 -04:00
Shivaram Lingamneni
da037c0162
clean up config tests
2026-03-15 05:56:31 -04:00
Shivaram Lingamneni
0e76470249
allow testing irc/ with i18n compiled out ( #2363 )
...
Add to `make test` as well
2026-03-15 03:47:33 -04:00
Shivaram Lingamneni
218cac3037
fix environment overrides against map fields
2026-03-15 07:16:44 +00:00
Shivaram Lingamneni
52fc77433e
api: defcon endpoint ( #2359 )
2026-03-13 03:18:23 -04:00
Shivaram Lingamneni
05c37122fc
api: add /v1/list to list channels ( #2358 )
2026-03-13 01:53:17 -04:00
Shivaram Lingamneni
ca4c3c09df
goreleaser updates for v2.18 ( #2357 )
...
* Full build is default
* sqlite is only supported on Linux, MacOS, and FreeBSD;
override the sqlite build tag based on OS where unsupported
2026-03-12 22:37:56 -04:00
Shivaram Lingamneni
e7558f292c
build changes ( #2356 )
...
* default build includes everything
* allow compiling out PRECIS and Skeleton (still included by default)
* consistently use `postgresql` in identifiers
2026-03-12 21:48:37 -04:00
Shivaram Lingamneni
768c01c17b
add a sqlite history backend ( #2352 )
2026-03-12 21:32:13 -04:00
Shivaram Lingamneni
1b673f049f
remove defer in AuthenticateByCertificate ( #2355 )
...
Makes the control flow unnecessarily confusing now that the check
is its own function.
2026-03-12 12:58:29 -04:00
Shivaram Lingamneni
4e65b76c67
fix #2353 ( #2354 )
...
Check certfp in API /v1/check_auth
2026-03-12 01:41:49 -04:00
Shivaram Lingamneni
c61859927f
fix WEBPUSH FAIL responses ( #2351 )
...
* All FAIL messages take the endpoint as a parameter when available
* Use MAX_REGISTRATIONS instead of FORBIDDEN when appropriate
* Add handler for unknown subcommand
2026-03-11 04:21:36 -04:00
Shivaram Lingamneni
ec7db5a02b
fix #2349 ( #2350 )
...
Add msgid to push messages when available, as required by the spec
2026-03-10 17:50:01 -04:00
Shivaram Lingamneni
69efae2c2e
postgres: accept libpq URIs ( #2347 )
2026-03-05 14:58:09 -05:00
Shivaram Lingamneni
5fd8ed8ed6
add a postgres history backend ( #2322 )
...
Postgres support is behind a build tag; use `make build_full`
or `make install_full` to compile it in.
2026-03-05 01:18:28 -05:00
Shivaram Lingamneni
2e6fd75525
support draft/ACCOUNTREQUIRED in 005 ( #2341 )
...
https://github.com/ircv3/ircv3-specifications/pull/585
2026-03-02 04:10:58 -05:00