|
|
ab0ccae71f
|
server: scrub a departed user's pending invites via a User.invited reverse index instead of scanning every channel on the network per quit — the old O(channels)-per-quit path was O(channels*quits) on a netsplit; the index is maintained at the 4 invite add/remove sites (INVITE cmd, S2S INVITE, join-consume, UNINVITE)
|
2026-08-19 02:09:36 +00:00 |
|
|
|
d495fd0f30
|
channel: cap the per-channel invite set (maxinvites, default 100) — it only shrank when the invitee joined, so an op could grow it unboundedly; re-inviting an already-listed nick still works
|
2026-08-19 01:22:32 +00:00 |
|
|
|
a3dc7b521f
|
test: deterministic two-node S2S convergence simulator — real handshake + join/part/rejoin/FJOIN-TS-arbitration driven through actual code paths, proptest-randomised churn asserts both sides always converge; extract Server::part so the sim and the PART command share one path
|
2026-08-18 22:24:19 +00:00 |
|
|
|
c9bd8e7492
|
channel-rename: implement IRCv3 draft/channel-rename — RENAME command + cap, in-place rename (RENAME for cap clients, PART/JOIN fallback for the rest), and S2S propagation
|
2026-08-17 23:45:02 +00:00 |
|
|
|
73f8ff58ed
|
s2s: enforce servprotect on a remote KILL and rank-vs-victim on a remote KICK (matching the local paths)
|
2026-08-17 19:38:58 +00:00 |
|
|
|
262699bf30
|
kick: route KICK of a remote channel member to its server and drop the local view
|
2026-08-16 19:31:49 +00:00 |
|
|
|
ef84846267
|
invite: route INVITE for a remote target to its server and deliver inbound INVITE
|
2026-08-16 19:11:57 +00:00 |
|
|
|
b7600ee5aa
|
add +k servprotect umode (server-set-only, advertised in 004/umodes): blocks KILL, KICK and SA* on a network service; tracked for remote services too
|
2026-08-16 03:00:25 +00:00 |
|
|
|
3fa9737ccb
|
link: stop services re-locking +r on every join — track the registered channel mode, keep +r channels alive when empty, use ijoin not fjoin for incremental joins, and consume s2s channel-mode params through the registry
|
2026-08-15 13:20:04 +00:00 |
|
|
|
1c8799d785
|
link: rework s2s wire format to the standard v4 server protocol (10-field uid, letters-comma fjoin, ijoin, timestamped fmode, ftopic, uuid kick) so external services link
|
2026-08-15 11:51:18 +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 |
|
|
|
cab53016e8
|
TBAN timed channel bans (auto-lift on the tick)
|
2026-08-09 00:58:37 +00:00 |
|
|
|
37ea5d277d
|
kicknorejoin channel mode (+J <secs>)
|
2026-08-09 00:50:55 +00:00 |
|
|
|
8dc51a281b
|
channel modes +Q nokicks / +A allowinvite / +P permchannels; fix SWHOIS (full multi-word text, no doubled nick in WHOIS)
|
2026-08-09 00:47:10 +00:00 |
|
|
|
68fdd91eaa
|
SWHOIS (320), SETIDLE, UNINVITE
|
2026-08-09 00:29:54 +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 |
|
|
|
9b12791774
|
import echoircd — from-scratch irc daemon in native rust
|
2026-08-05 16:10:31 +00:00 |
|