Commit graph

153 commits

Author SHA1 Message Date
e381129a52
Translate all service-module help and messages to French; render help summaries and detail through the catalog
All checks were successful
CI / check (push) Successful in 5m28s
2026-07-19 23:50:15 +00:00
d207c3d60d
Migrate interpolated service messages to the t! macro (8 modules) 2026-07-19 23:22:56 +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
118782a4bf
Allocate guest nicks that skip online and registered names 2026-07-19 19:19:20 +00:00
75d3c70cc8
Reject CRLF/malformed emails and names to stop SMTP header injection 2026-07-19 18:12:35 +00:00
fa9eaece45
Cap and freeze-gate GroupServ registration 2026-07-19 17:45:04 +00:00
224bc78641
Detect homoglyphs in Cyrillic Supplement and other unlisted non-Latin blocks
All checks were successful
CI / check (push) Successful in 4m9s
2026-07-19 14:50:54 +00:00
c36341668c
Fix self-review regressions: throttle SASL SCRAM, key game target by UID, exclude keycard from password lockout
Some checks failed
CI / check (push) Has been cancelled
2026-07-19 14:38:16 +00:00
3648c48d2e
Rate-limit REPORT and REQUEST on the real host instead of the spoofable nick 2026-07-19 13:39:03 +00:00
64c4bbeae4
Cap certfp, channel access, and akick lists to bound attacker-driven log growth 2026-07-19 13:27:50 +00:00
d833dc28f0
Fix duration overflow, expiry-warned resets, DICT control-char injection, and HostServ TAKE forbid recheck 2026-07-19 13:24:46 +00:00
1ecb76affb
Report failed IDENTIFY against a password-less account to the auth feed
All checks were successful
CI / check (push) Successful in 4m10s
2026-07-19 05:00:12 +00:00
af5896743d
Restore the real ident when a HostServ ident@host vhost is turned off or deleted 2026-07-19 04:49:31 +00:00
baab04203d
Report oper tier by capability so a sub-floor grant isnt labelled a full operator
All checks were successful
CI / check (push) Successful in 4m13s
2026-07-19 02:28:32 +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
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
89ac01d0b0
nickserv/chanserv: catch styled/fullwidth look-alike names too, and add a [register] confusable_check toggle (REHASH-reloadable)
All checks were successful
CI / check (push) Successful in 3m48s
2026-07-19 00:15:08 +00:00
c2b70f5004
nickserv/chanserv: reject look-alike / mixed-script registration names (homoglyph impersonation guard)
All checks were successful
CI / check (push) Successful in 3m56s
2026-07-19 00:02:44 +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
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
c415117ec5
operserv: add NOTIFY oper watch list emitting matched-user events to the staff feed 2026-07-18 16:16:06 +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
c64c3820a7
protocol: verify echos pseudoclients request servprotect (+k, by name from CAPAB USERMODES) so they cannot be killed by operators; warn if service_modes lacks it
All checks were successful
CI / check (push) Successful in 3m45s
2026-07-18 02:41:03 +00:00
2f70b0c133
protocol: verify echo ircd module dependencies from CAPAB MODULES at link, warning per-feature if one is missing rather than failing silently
All checks were successful
CI / check (push) Successful in 3m49s
2026-07-18 02:22:43 +00:00
0ca06247f8
protocol: read CASEMAPPING from CAPAB and verify it matches echos ascii identity folding, warning on mismatch instead of silently desyncing
All checks were successful
CI / check (push) Successful in 4m31s
2026-07-18 01:58:49 +00:00
e206f4edbb
operserv: REDACT deletes a message by its msgid (draft/message-redaction), relayed server-sourced so no ircd oper privilege is needed
All checks were successful
CI / check (push) Successful in 4m6s
2026-07-18 01:23:37 +00:00
e6f05a3ede
protocol: learn channel-mode arity + prefix modes (incl custom Y/ojoin) from CAPAB CHANMODES; services MODE uses the authoritative set 2026-07-18 01:15:23 +00:00
d313ca3523
chanserv: LEVELS grants a capability (op/topic/invite/access) to an access tier and above, additive so it never locks anyone out 2026-07-18 01:05:58 +00:00
0c3e09ea00
operserv: SPAMFILTER — persisted content filters pushed to the ircd m_filter via metadata, re-asserted at burst
All checks were successful
CI / check (push) Successful in 3m56s
2026-07-18 00:04:24 +00:00
8c77016aed
helpserv: HELP EXTBANS lists the network live extban set with a friendly example for each 2026-07-17 22:23:54 +00:00
77d09c4bdc
akick: accept a matching extban only the ircd knows (ircd-enforced +b), reject acting extbans with a clear reason 2026-07-17 22:01:32 +00:00
c990eb1e1e
extban: learn the ircd live set from CAPAB EXTBANS and validate AKICK/MODE against what it actually offers 2026-07-17 21:47:02 +00:00
74a983467c
akick: match the server and fingerprint extbans from the SERVER name and ssl_cert metadata the s2s stream carries 2026-07-17 21:23:25 +00:00
f7c38cedad
chanserv: full AKICK extban registry, [extban] enabled gate, passive extbans pushed as channel bans for the ircd to enforce 2026-07-17 21:06:14 +00:00
426fc694a2
akick: match extbans (account/realname/realmask/unauthed) using the ident, real host and real name the UID carries but was discarding
All checks were successful
CI / check (push) Successful in 4m0s
2026-07-17 19:47:34 +00:00
bc4fada354
api: type GroupServ flags (GroupFlag/GroupFlags via a shared flag_set! macro); delete the stringly apply_flags
All checks were successful
CI / check (push) Successful in 4m0s
2026-07-17 18:47:08 +00:00
2a12ebd6e3
api: typed Flag/Flags bitset for channel access (mirrors Privs); level_caps resolves every level through it, collapsing 40 lines to 5
All checks were successful
CI / check (push) Successful in 4m0s
2026-07-17 18:30:45 +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
b5aef650f2
chanserv: all op-and-above tiers grant +o for a single @ prefix; tier distinction stays in the access list
All checks were successful
CI / check (push) Successful in 4m12s
2026-07-17 15:58:11 +00:00
2f6fd41465
chanserv: SOP protect tier over AOP (+ao), founder owner (+qo); resolve op access by capability not mode string
All checks were successful
CI / check (push) Successful in 3m59s
2026-07-17 15:43:16 +00:00
c8106035df
chanserv: give SOP/AOP/HOP/VOP four distinct access tiers matching Anope, classified by capability
All checks were successful
CI / check (push) Successful in 3m55s
2026-07-17 14:54:36 +00:00
f5c976eb56
api/gameserv: type email ExpiryTarget and chess Ending as enums (drop stringly returns)
All checks were successful
CI / check (push) Successful in 3m53s
2026-07-17 14:15:39 +00:00
7a5f1502a4
infoserv: type the news kind as an enum at the store boundary
All checks were successful
CI / check (push) Successful in 3m53s
2026-07-17 13:53:53 +00:00
ef34c04c8d
operserv: type the X-line kind as an enum at the command/store boundary, wire token in storage 2026-07-17 13:47:10 +00:00
2c8ba4460d
forbid: type the FORBID kind as an enum at the store boundary, string only in storage
All checks were successful
CI / check (push) Successful in 3m56s
2026-07-17 13:26:16 +00:00
1fb3615b7e
auth: warn on unknown [[oper]] privilege names instead of silently dropping them
All checks were successful
CI / check (push) Successful in 3m53s
2026-07-17 12:45:41 +00:00