Commit graph

112 commits

Author SHA1 Message Date
948a59707e
Persist the channel topic setter as a nick!ident@host mask for KEEPTOPIC and INFO
All checks were successful
CI / check (push) Successful in 5m34s
2026-07-21 09:26:41 +00:00
9ccc681a62
tag service replies with +draft/reply and +draft/channel-context
All checks were successful
CI / check (push) Successful in 5m36s
2026-07-21 00:57:30 +00:00
29eefaafe3
Add OperServ SETALL to apply a channel setting to every channel (network-wide policy)
All checks were successful
CI / check (push) Successful in 5m15s
2026-07-20 23:28:50 +00:00
ff4856a12e
Add OperServ PROTECT to turn nick protection on/off per account or for all (bulk-enable after a migration)
All checks were successful
CI / check (push) Successful in 5m13s
2026-07-20 23:10:01 +00:00
ab8ea65a42
Q-line a FORBIDden nick so it can't be used, not just registered
All checks were successful
CI / check (push) Successful in 5m17s
2026-07-20 22:49:21 +00:00
7cb1c61afa
Give each test engine a unique temp path so parallel scram tests don't race
All checks were successful
CI / check (push) Successful in 5m17s
2026-07-20 22:39:02 +00:00
1c6b8c799f
Add invite-only registration: a new account waits for a confirmed member to VOUCH
Some checks failed
CI / check (push) Failing after 5m12s
2026-07-20 22:12:54 +00:00
140b19ee04
Add SIGNKICK LEVEL mode: sign only kicks by users without op access
All checks were successful
CI / check (push) Successful in 5m19s
2026-07-20 22:00:34 +00:00
ae90388fbf
Add SECUREVOICES: strip voice from users without channel access
All checks were successful
CI / check (push) Successful in 5m20s
2026-07-20 21:34:09 +00:00
7fa7831390
LOGIN from an already-identified session reclaims the nick without a needless re-verify
All checks were successful
CI / check (push) Successful in 5m18s
2026-07-20 21:08:42 +00:00
c2a7dfa8f7
Add NickServ LOGIN to identify and reclaim your nick in one command
All checks were successful
CI / check (push) Successful in 5m24s
2026-07-20 20:59:47 +00:00
8b45d386c6
Restore the connect-time host when a session logs out, reversing any services vhost 2026-07-20 20:39:03 +00:00
6e53cb751a
Notify or memo the affected user on channel access, XOP, founder, and successor changes 2026-07-20 19:34:46 +00:00
6078cdf83d
Enforce the channel akick list when a user changes nick 2026-07-20 19:26:07 +00:00
a2bf5ed553
Fix audit findings: logout notice language after uid unmap, gRPC rehash reports load failure and emits the staff-log line, cap reflected CTCP PING token
All checks were successful
CI / check (push) Successful in 5m47s
2026-07-20 18:26:49 +00:00
58082248ec
Answer CTCP VERSION/PING/TIME/CLIENTINFO on service pseudo-clients and split over-long NOTICE/PRIVMSG lines under 512 bytes
All checks were successful
CI / check (push) Successful in 5m32s
2026-07-20 14:29:02 +00:00
ecdead8278
Pluralize count-dependent messages with a CLDR one/other selector and gate catalog consistency with a test
All checks were successful
CI / check (push) Successful in 5m20s
2026-07-20 02:03:05 +00:00
b462d37bd5
Add i18n framework: per-account language, catalogs, t! macro, SET LANGUAGE
All checks were successful
CI / check (push) Successful in 5m16s
2026-07-19 22:57:45 +00:00
6a22bee2e1
Revert strict gossip ingest ordering: it broke convergence across compaction
All checks were successful
CI / check (push) Successful in 5m12s
2026-07-19 21:56:05 +00:00
01da702704
Apply gossip entries in strict per-origin order and cap ingested memos 2026-07-19 21:34:16 +00:00
3c730f7add
Keep a bot-inhabited channel alive when pruning empty channels 2026-07-19 19:52:44 +00:00
118782a4bf
Allocate guest nicks that skip online and registered names 2026-07-19 19:19:20 +00:00
e4a2e76903
Harden votekick: dedup votes, require member targets, fix trigger refs 2026-07-19 18:52:26 +00:00
598234b817
Add regression tests for the authority, channel-prune and group-cap fixes
All checks were successful
CI / check (push) Successful in 5m35s
2026-07-19 17:45:05 +00:00
6149a15b34
Let identified users manage CERT without a password
All checks were successful
CI / check (push) Successful in 4m18s
2026-07-19 17:17:36 +00:00
bfff7dba91
Silently ignore unknown in-channel fantasy commands
All checks were successful
CI / check (push) Successful in 4m15s
2026-07-19 17:09:07 +00:00
86444286d8
Test that SASL SCRAM honours the brute-force lockout
All checks were successful
CI / check (push) Successful in 4m9s
2026-07-19 14:40:00 +00:00
fef4590f48
Update direct report_file/help_request test callers for the cooldown-key argument
All checks were successful
CI / check (push) Successful in 4m32s
2026-07-19 13:57:03 +00:00
e7f012726c
Stop a non-founder from granting the founder flag (channel takeover escalation) 2026-07-19 13:12:54 +00:00
23960adc83
Route every handle() early return through the shared tail so swept unbans and incident stamps aren't dropped 2026-07-19 04:44:11 +00:00
fc214ab0d3
Add three-tier services operator model (operator, administrator, root)
All checks were successful
CI / check (push) Successful in 4m22s
2026-07-19 02:19:51 +00:00
754c5d9e95
engine: staff-feed alerts are also recorded to the incident log, so a blocked look-alike registration is searchable via OperServ LOGSEARCH
All checks were successful
CI / check (push) Successful in 3m45s
2026-07-19 00:29:55 +00:00
0d16240606
nickserv/chanserv: announce a blocked look-alike registration to the staff feed (ServiceCtx alert drained by dispatch)
All checks were successful
CI / check (push) Successful in 3m44s
2026-07-19 00:24:27 +00:00
623750e638
dictserv: opt-in DICT (RFC 2229) lookup service — bots and /msg answer dict/define/thes/acronym/law/etc via dict.org off-reactor
All checks were successful
CI / check (push) Successful in 4m4s
2026-07-18 20:21:30 +00:00
76be932131
test: add an ignored engine throughput benchmark (botserv hot path + append/fsync write path)
All checks were successful
CI / check (push) Successful in 3m56s
2026-07-18 19:43:45 +00:00
e05c62c085
operserv: NOTIFY gains k/m/u/o flags and quit/part reasons; protocol carries kicker, mode-setter, oper-up, user modes
All checks were successful
CI / check (push) Successful in 4m1s
2026-07-18 19:18:17 +00:00
617d3c7966
operserv: NOTIFY feed uses labelled fields (IP/DNS/Account/Server) and Service:verb
All checks were successful
CI / check (push) Successful in 4m5s
2026-07-18 17:50:32 +00:00
4247df8844
operserv: notify_exclude gains server:<glob> to mute a whole relay server from the feed
All checks were successful
CI / check (push) Successful in 4m1s
2026-07-18 17:35:04 +00:00
4d327c3f47
operserv: NOTIFY lines carry real IP, rdns, login and origin server for the oper feed
All checks were successful
CI / check (push) Successful in 4m4s
2026-07-18 17:28:07 +00:00
29bedf0358
operserv: notify_exclude also mutes #channel masks, so a broad watch can skip specific channels
Some checks failed
CI / check (push) Has been cancelled
2026-07-18 17:19:48 +00:00
8f19a94928
operserv: NOTIFY honours a config exclude list so relay/pylinked clients cannot flood the feed 2026-07-18 16:47:25 +00:00
c415117ec5
operserv: add NOTIFY oper watch list emitting matched-user events to the staff feed 2026-07-18 16:16:06 +00:00
86b1aae686
engine: rate-limit anonymous service commands so a bot cannot spam a service in a loop 2026-07-18 05:02:40 +00:00
6429b82fc4
nickserv: SET SNOTICE — opt-in server-notice-style service replies (*** NickServ: ...) sourced from the server instead of the pseudoclient
All checks were successful
CI / check (push) Successful in 3m47s
2026-07-18 03:40:22 +00:00
47dfa76fd5
engine: a takeover keeps the account's founded channels (the account still exists) — only a genuine drop or expiry releases them
Some checks failed
CI / check (push) Failing after 3m56s
2026-07-17 20:23:51 +00:00
65323caaeb
chanserv: FLAGS maps sop/halfop presets to flag letters (oa=+ao), fixing privilege escalation when editing a HOP/SOP entry
All checks were successful
CI / check (push) Successful in 4m2s
2026-07-17 18:14:58 +00:00
5dcd216eeb
api: ordered Rank enum (founder>admin>op>halfop>voice) replaces the coarse u8 access rank, so PEACE distinguishes every tier
All checks were successful
CI / check (push) Successful in 3m59s
2026-07-17 17:33:53 +00:00
f2ba876ce4
botserv: bots join +ao (protected admin + op), keeping op alongside protect
All checks were successful
CI / check (push) Successful in 3m53s
2026-07-17 17:11:25 +00:00
73467b91ca
botserv: bots join channels as protected admins (+a) so ordinary ops can't kick or deop them
All checks were successful
CI / check (push) Successful in 3m50s
2026-07-17 16:52:00 +00:00
e2330c56ff
chanserv: SOP protect (+ao) and founder owner (+qo) with standard ~ & @ prefix tiers
All checks were successful
CI / check (push) Successful in 4m12s
2026-07-17 16:10:36 +00:00