Commit graph

34 commits

Author SHA1 Message Date
6c5f330746
add SIGNORE: personal mutual server-side ignore across channels and PMs 2026-08-20 14:48:17 +00:00
16ea4b5a23 core_message: compute the sender's channel rank once per message (mrank) instead of recomputing s.rank(uid,&key) up to 7x in the channel PRIVMSG/NOTICE gate and once more in TAGMSG — rank is fixed for a single message 2026-08-19 02:29:59 +00:00
fb1a9f3d70 server: skip the O(users) callerid ACCEPT scrub on quit unless the departing nick is actually accepted by someone — a reverse count (accepted_nicks) maintained through centralized accept_add/accept_remove helpers avoids scanning every user's accept list on each quit (O(users*quits) on a netsplit); the full scrub still runs when the count is nonzero, so the nick-reuse protection is unchanged 2026-08-19 02:21:38 +00:00
235c747c03 refactor: WEBIRC gateways and +G censor rules are named structs (WebircGateway/CensorRule) instead of positional tuples — self-documenting field access, no (_, g, _) index guessing; extends the OperBlock pattern 2026-08-18 23:31:21 +00:00
853be58d18 perf: channel PRIVMSG/NOTICE fanout builds at most one line per capability profile (server-time/account-tag/message-tags) and shares it by Arc, instead of formatting a String per member — a big channel now allocates <=8 lines, not N 2026-08-18 22:37:50 +00:00
e28efb03e6 callerid: cap the auto-accept list like the explicit ACCEPT command 2026-08-17 21:37:19 +00:00
58d5a0e5a5 message: keep +U opmoderated messages out of CHATHISTORY/+H replay, and subject TAGMSG to the same PM gates (+c/+R/+z/+g/SILENCE) 2026-08-17 15:05:13 +00:00
579c321670 channels/whois: validate +k/+l, cap and case-fold ban lists, honour -n for externals, hide +s/+p/+i from whois/who/names, 301 in whois, conf-key the join/nickflood lockout 2026-08-16 17:56:24 +00:00
1dd7f77ca8 operprefix + ojoin: server oper prefix (!/mode y, above owner) auto-granted to opers + OJOIN command 2026-08-10 13:01:07 +00:00
97a35338fa delayjoin +D: hide JOINs until a member speaks/reveals (NAMES + part/quit/nick aware) 2026-08-09 07:40:10 +00:00
80cc61e7f8 exemptchanops +X: per-rank exemptions from flood/anticaps/repeat/censor/blockcolor/etc 2026-08-09 07:34:42 +00:00
1eca745092 repeat channel mode (+K <n>): block recently-repeated lines 2026-08-09 01:24:48 +00:00
668f2735b2 delaymsg channel mode (+d <secs>) 2026-08-09 01:22:27 +00:00
4d6525cac2 opmoderated channel mode (+U — route unprivileged messages to ops) 2026-08-09 01:07:30 +00:00
835c1cf099 user modes +W showwhois / +c commonchans 2026-08-09 00:54:56 +00:00
050ce37612 anticaps channel mode (+B <percent>) 2026-08-09 00:33:31 +00:00
d65e17b6b5 rustfmt 2026-08-09 00:24:27 +00:00
431ef2f5b3 move chathistory + redact + the history store into their own module file 2026-08-08 22:54:52 +00:00
ab7188bb70 move draft/multiline into its own module file 2026-08-08 22:49:54 +00:00
768435d810 move markread into its own module file 2026-08-08 22:47:10 +00:00
50a95c6686 move metadata out of core into its own module file 2026-08-08 22:44:58 +00:00
d4c4c1a7d0 draft/multiline: inbound BATCH parsing + concat assembly, deliver assembled lines; advertise limits 2026-08-08 22:07:04 +00:00
5a34ec57da draft/metadata-2: client METADATA get/list/set/clear on users+channels (op-gated), change notices, metadata batch 2026-08-08 22:00:46 +00:00
a70ee42aee markread (draft/read-marker, identity-shared) + advertise UTF8ONLY 2026-08-08 21:41:54 +00:00
283f8f5683 redact: draft/message-redaction — author/op can delete a channel message, relayed to capable members + dropped from history 2026-08-08 21:38:39 +00:00
6d57a9a4e8 rustfmt chathistory TARGETS 2026-08-08 21:36:12 +00:00
ea31e3faa2 chathistory: TARGETS subcommand (list conversations with activity in a window) 2026-08-08 21:35:40 +00:00
11b1d54e48 fix clippy needless-borrow in dm history store; tidy chathistory doc 2026-08-08 20:27:11 +00:00
ab3d9a07f0 chathistory: store per-conversation DM history too (canonical pair key, original target preserved) 2026-08-08 20:25:30 +00:00
b994faa0e7 chathistory: add AROUND and BETWEEN subcommands (all five now supported) 2026-08-08 20:11:42 +00:00
6a634ef678 chathistory: in-memory per-channel history + CHATHISTORY latest/before/after in a batch (draft/chathistory) 2026-08-08 20:00:23 +00:00
6d19b6771b whox (354) + ircv3 standard-replies (fail/warn/note), account-tag, and +s/+p who/names member hiding 2026-08-08 17:55:44 +00:00
1581bc15d2 add callerid (+g) with ACCEPT allow-list, plus msgid and extended-monitor 2026-08-05 16:21:58 +00:00
9b12791774 import echoircd — from-scratch irc daemon in native rust 2026-08-05 16:10:31 +00:00