|
|
e4a14b9813
|
Localize engine notices, transactional emails, and operator-access denials in all six languages
CI / check (push) Successful in 5m18s
|
2026-07-20 02:25:54 +00:00 |
|
|
|
ecdead8278
|
Pluralize count-dependent messages with a CLDR one/other selector and gate catalog consistency with a test
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
CI / check (push) Successful in 5m16s
|
2026-07-19 22:57:45 +00:00 |
|
|
|
83851c794d
|
Add snapshot-epoch cursor so 3+-node gossip converges in order and across compaction
CI / check (push) Successful in 5m24s
|
2026-07-19 22:27:22 +00:00 |
|
|
|
6a22bee2e1
|
Revert strict gossip ingest ordering: it broke convergence across compaction
CI / check (push) Successful in 5m12s
|
2026-07-19 21:56:05 +00:00 |
|
|
|
e3c7f373d3
|
Add optional per-origin Ed25519 signing for gossip (Tier C federation)
|
2026-07-19 21:44:51 +00:00 |
|
|
|
01da702704
|
Apply gossip entries in strict per-origin order and cap ingested memos
|
2026-07-19 21:34:16 +00:00 |
|
|
|
006808e974
|
Drop the SASL source record when the connection ends
|
2026-07-19 20:28:24 +00:00 |
|
|
|
3c730f7add
|
Keep a bot-inhabited channel alive when pruning empty channels
|
2026-07-19 19:52:44 +00:00 |
|
|
|
071380efae
|
Re-check protection in the enforce sweep and key the kicker cache by registration
CI / check (push) Successful in 5m19s
|
2026-07-19 19:19:20 +00:00 |
|
|
|
118782a4bf
|
Allocate guest nicks that skip online and registered names
|
2026-07-19 19:19:20 +00:00 |
|
|
|
d0a86359c2
|
Fix the caps kicker to trigger on ratio, not uppercase count
CI / check (push) Successful in 5m16s
|
2026-07-19 18:52:26 +00:00 |
|
|
|
e4a2e76903
|
Harden votekick: dedup votes, require member targets, fix trigger refs
|
2026-07-19 18:52:26 +00:00 |
|
|
|
007b02d380
|
Don't install an already-expired gossiped akill as a permanent ban
|
2026-07-19 18:15:57 +00:00 |
|
|
|
75d3c70cc8
|
Reject CRLF/malformed emails and names to stop SMTP header injection
|
2026-07-19 18:12:35 +00:00 |
|
|
|
598234b817
|
Add regression tests for the authority, channel-prune and group-cap fixes
CI / check (push) Successful in 5m35s
|
2026-07-19 17:45:05 +00:00 |
|
|
|
d6e74dd7c7
|
Key chatter buckets by lowercase channel
|
2026-07-19 17:45:04 +00:00 |
|
|
|
fa9eaece45
|
Cap and freeze-gate GroupServ registration
|
2026-07-19 17:45:04 +00:00 |
|
|
|
0c85c5b569
|
Forget emptied channels so a stale key can't leak to a recreated name
|
2026-07-19 17:45:04 +00:00 |
|
|
|
eea6e30f20
|
Guard the gRPC authority login and register paths
|
2026-07-19 17:45:04 +00:00 |
|
|
|
6149a15b34
|
Let identified users manage CERT without a password
CI / check (push) Successful in 4m18s
|
2026-07-19 17:17:36 +00:00 |
|
|
|
bfff7dba91
|
Silently ignore unknown in-channel fantasy commands
CI / check (push) Successful in 4m15s
|
2026-07-19 17:09:07 +00:00 |
|
|
|
d6b681c972
|
Don't expire runtime-granted opers; preserve standalone kicker flags across compaction
CI / check (push) Successful in 4m12s
|
2026-07-19 16:44:35 +00:00 |
|
|
|
7894de4217
|
Resolve grouped-nick authzid in SASL EXTERNAL and saturate the Lamport clock
CI / check (push) Successful in 4m10s
|
2026-07-19 15:59:00 +00:00 |
|
|
|
16d2a5035a
|
Enforce the email-forbid policy on gRPC Register and SetEmail
CI / check (push) Successful in 4m10s
|
2026-07-19 15:37:33 +00:00 |
|
|
|
03d39c1329
|
Guard the namespace on NickServ GROUP, gRPC GroupNick, and GroupServ REGISTER (confusable/forbid/cap)
CI / check (push) Has been cancelled
|
2026-07-19 15:34:35 +00:00 |
|
|
|
86444286d8
|
Test that SASL SCRAM honours the brute-force lockout
CI / check (push) Successful in 4m9s
|
2026-07-19 14:40:00 +00:00 |
|
|
|
c36341668c
|
Fix self-review regressions: throttle SASL SCRAM, key game target by UID, exclude keycard from password lockout
CI / check (push) Has been cancelled
|
2026-07-19 14:38:16 +00:00 |
|
|
|
e23240bf52
|
Converge remaining gossiped state: node-local news/reports/help and deterministic group registration
CI / check (push) Has been cancelled
|
2026-07-19 14:11:50 +00:00 |
|
|
|
fef4590f48
|
Update direct report_file/help_request test callers for the cooldown-key argument
CI / check (push) Successful in 4m32s
|
2026-07-19 13:57:03 +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 |
|
|
|
b2ffc01e52
|
Bound dice batches, game count, and report/help queues, and harden community votekick
|
2026-07-19 13:34:48 +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 |
|
|
|
d0c7cb6905
|
Exempt service bots from ChannelOp secureops and bound the last-seen map
|
2026-07-19 13:17:54 +00:00 |
|
|
|
e7f012726c
|
Stop a non-founder from granting the founder flag (channel takeover escalation)
|
2026-07-19 13:12:54 +00:00 |
|
|
|
18806c5fe7
|
Apply the IRC namespace guards (forbid, confusable, frozen) to gRPC account writes
|
2026-07-19 13:10:44 +00:00 |
|
|
|
660362a34b
|
Throttle every password-verify path (GROUP/GHOST/CERT/DROP/SASL) and key the lockout by resolved account
|
2026-07-19 13:06:50 +00:00 |
|
|
|
1ecb76affb
|
Report failed IDENTIFY against a password-less account to the auth feed
CI / check (push) Successful in 4m10s
|
2026-07-19 05:00:12 +00:00 |
|
|
|
876bc55e2b
|
Deliver node-local channel directory events to the gRPC subscribe stream
|
2026-07-19 04:54:48 +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 |
|
|
|
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 |
|
|
|
75aa8bc096
|
Preserve channel last_used and LEVELS overrides across compaction
CI / check (push) Has been cancelled
|
2026-07-19 04:19:22 +00:00 |
|
|
|
ad8a3fe065
|
Add loopback health and Prometheus metrics endpoint
CI / check (push) Successful in 4m22s
|
2026-07-19 04:13:18 +00:00 |
|
|
|
fc214ab0d3
|
Add three-tier services operator model (operator, administrator, root)
CI / check (push) Successful in 4m22s
|
2026-07-19 02:19:51 +00:00 |
|
|
|
a10662bbc6
|
engine: persist the incident ring (LOGSEARCH) across restarts via a periodic + on-shutdown snapshot event, mirroring stat-counter persistence
CI / check (push) Successful in 3m44s
|
2026-07-19 00:46:14 +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
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)
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)
CI / check (push) Successful in 3m48s
|
2026-07-19 00:15:08 +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
CI / check (push) Successful in 4m4s
|
2026-07-18 20:21:30 +00:00 |
|