Commit Graph

5563 Commits

Author SHA1 Message Date
cloudfodder eb43ff69c4 feat(nostr): nostr-based account registration and verification
Rebuilt the nostr registration feature cleanly on top of current ergo
mainline (origin/master), dropping the stale ergo reversions that were
entangled in the original squashed branch.

- New irc/nostr package: NIP-04/NIP-17 DMs, NIP-05 resolution, relay
  connect/auth, and identifier helpers.
- Registration/verification via nostr: parseCallback auto-detects nostr
  identifiers (NIP-05, npub, hex pubkey) and dispatches a verification DM.
- Nostr-based cloaked hostnames for accounts (opt-in via
  ip-cloaking.nostr-hostnames), applied at the account-cloak sites.
- Config: accounts.registration.nostr-verification and the
  nostr-hostnames cloak option, with matching default.yaml and help text.
- Adds github.com/nbd-wtf/go-nostr and vendored dependencies.
2026-07-28 10:42:09 -07:00
Shivaram Lingamneni a05b379c83 clean up loadCertWithLeaf (#2426)
tls.LoadX509KeyPair started populating Leaf automatically in go1.23
2026-07-22 04:31:58 -04:00
Shivaram Lingamneni 1712a87074 move irctest back to master branch 2026-07-21 20:27:29 -04:00
Shivaram Lingamneni 790690ee90 Merge pull request #2429 from slingamn/newversion
upgrade dependencies for v2.20 development cycle
2026-07-21 01:33:16 -04:00
Shivaram Lingamneni b511a17a3b go mod tidy 2026-07-21 05:24:05 +00:00
Shivaram Lingamneni d9ad93b4b8 upgrade jwt lib 2026-07-21 05:23:43 +00:00
Shivaram Lingamneni 260d0f045d upgrade sqlite 2026-07-21 05:18:47 +00:00
Shivaram Lingamneni 11857df7a7 upgrade postgres driver 2026-07-21 05:18:10 +00:00
Shivaram Lingamneni 659c1f69e5 upgrade mysql driver 2026-07-21 05:17:40 +00:00
Shivaram Lingamneni db06a0933e upgrade x dependencies 2026-07-21 05:16:38 +00:00
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 be2e80b443 fix documentation 2026-07-21 00:28:58 -04:00
Shivaram Lingamneni a7409dab07 Merge pull request #2428 from slingamn/manual
documentation updates
2026-07-20 01:59:52 -04:00
Shivaram Lingamneni afbaaddcb1 document draft/authtoken 2026-07-20 01:28:37 -04:00
Shivaram Lingamneni c4895ed6d4 add missing acknowledgments 2026-07-19 14:43:25 -04:00
Shivaram Lingamneni b9ac99774b Merge pull request #2425 from slingamn/store_events.1
fix #2424
2026-07-16 13:00:57 -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
Shivaram Lingamneni 84eb71f72f fix #2399 (#2419) 2026-07-07 22:10:04 -07: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
Shivaram Lingamneni 5c69888479 Merge pull request #2418 from matt0x6F/fix-testemptybuffer-timestamp-collision
fix TestEmptyBuffer flakiness from timestamp collisions on coarse clocks
2026-07-07 21:28: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 510687981a Merge pull request #2417 from slingamn/whoami.5
implement draft/whoami
2026-07-07 00:49:47 -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 c9943154aa add SECURITY.md 2026-07-01 21:44:59 -07:00
Shivaram Lingamneni 9abc39fe97 fix #2391
Validate incoming batch tags
2026-07-01 07:12:17 +00:00
Shivaram Lingamneni b807b4541e Merge pull request #2409 from slingamn/deferred.1
fixes for deferred fakelag handling
2026-06-30 22:28:06 -07: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
Shivaram Lingamneni 69d0dc7935 Merge pull request #2407 from Jokler/store-relaymsg-tags
Store tags for messages using draft/relaymsg in history
2026-06-10 22:37:37 -07:00
Jokler e69f3a36b5 Store tags for messages using draft/relaymsg in history 2026-06-11 01:04:16 +02:00
Shivaram Lingamneni 2e12a8371f bump irctest, fix changelog entry (#2406)
* bump irctest

* fix erroneous changelog entry
2026-06-07 18:50:48 -04:00
Shivaram Lingamneni 7ab4053e90 filter secret channels from unprivileged NS INFO (#2405) 2026-05-31 23:47:52 -04:00
Shivaram Lingamneni 834147a111 Merge pull request #2404 from slingamn/finaldata.1
fix #2402
2026-05-19 14:45:36 -07: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 1b40b8a43b Merge pull request #2401 from tacerus/apparmor
Update AppArmor profile
2026-05-17 14:42:18 -07:00
Georg Pfuetzenreuter d1c7051086 Update AppArmor profile
sync with distribution changes:
- allow ergo to execute ergo-ldap as a subprocess to allow for LDAP
  authentication
- allow ergo to create backup files to allow for autoupgrade
- consolidate and sort some lines for easier maintenance

Signed-off-by: Georg Pfuetzenreuter <mail@georg-pfuetzenreuter.net>
2026-05-16 18:35:47 +02:00
Shivaram Lingamneni 8c02b854b7 Merge pull request #2398 from slingamn/shutdown.3
ensure always-on state is flushed
2026-05-11 11:57:45 -07: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 2874e181aa Merge pull request #2397 from slingamn/keynotset
make METADATA CLEAR send RPL_KEYNOTSET
2026-05-07 10:29:55 -07:00
Shivaram Lingamneni 4b20b85687 make METADATA CLEAR send RPL_KEYNOTSET 2026-04-29 00:45:33 -04:00
Shivaram Lingamneni 1c823b5666 bump irctest 2026-04-28 13:22:19 -04:00
Shivaram Lingamneni 2dc37b9886 Merge pull request #2394 from slingamn/bot.2
fix #2393 and #2395
2026-04-27 22:24:15 -07:00
Shivaram Lingamneni 85f7fe2c06 fix #2395
Ensure bot tag is replayed for DMs
2026-04-28 05:14:48 +00:00