|
|
8b45d386c6
|
Restore the connect-time host when a session logs out, reversing any services vhost
|
2026-07-20 20:39:03 +00:00 |
|
|
|
66eb0ea243
|
Add a one-click confirmation link to registration emails (via the [email] confirm_url and the gRPC Confirm RPC)
CI / check (push) Successful in 5m27s
|
2026-07-20 20:00:09 +00:00 |
|
|
|
b500698e82
|
Add AJOIN ADDALL to auto-join every channel you are currently in
CI / check (push) Successful in 5m32s
|
2026-07-20 19:40:02 +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
CI / check (push) Successful in 5m47s
|
2026-07-20 18:26:49 +00:00 |
|
|
|
fadd4f37cd
|
Localize residual notices: logout, channel release, password change, founder-language expiry mail, and DiceServ prompts and errors
CI / check (push) Successful in 5m40s
|
2026-07-20 17:35:25 +00:00 |
|
|
|
621bba00f2
|
Fix review findings: direction-bind the gossip handshake proof, whitespace-tokenize log redaction, show ranked STATS to viewers, single-pass render, code-before-message email templating
|
2026-07-20 17:35:25 +00:00 |
|
|
|
829a3916fd
|
Add an echorpc control CLI over gRPC: version/status/rehash live, start/stop/restart via systemctl
CI / check (push) Successful in 5m40s
|
2026-07-20 15:28:00 +00:00 |
|
|
|
d5a89baf53
|
Make the version output a proper banner: ASCII wordmark, color on a tty, aligned build info
CI / check (push) Successful in 5m20s
|
2026-07-20 15:10:52 +00:00 |
|
|
|
61db74875f
|
Add a version banner with git revision and build metadata (echo --version, startup log, CTCP VERSION)
CI / check (push) Successful in 5m42s
|
2026-07-20 14:42:23 +00:00 |
|
|
|
58082248ec
|
Answer CTCP VERSION/PING/TIME/CLIENTINFO on service pseudo-clients and split over-long NOTICE/PRIVMSG lines under 512 bytes
CI / check (push) Successful in 5m32s
|
2026-07-20 14:29:02 +00:00 |
|
|
|
3723617367
|
Complete deferred audit LOWs: kicker-cache eviction, abandoned-challenge reclaim, and a challenge-response gossip handshake
CI / check (push) Successful in 5m7s
|
2026-07-20 04:53:03 +00:00 |
|
|
|
4027242c1e
|
Harden deferred audit LOWs: provisioned-verifier cost cap, BOT-nick validation, gameserv board-delivery account guard, empty KICK/PART/QUIT reason parse, and relink SASL/enforce cleanup
CI / check (push) Successful in 5m4s
|
2026-07-20 04:40:42 +00:00 |
|
|
|
1b569fdfa3
|
Give French dict rich Wiktionary definitions instead of thin FreeDict glosses
CI / check (push) Successful in 5m3s
|
2026-07-20 03:00:22 +00:00 |
|
|
|
c57683b5e4
|
Route the !dict fantasy command through the language-aware database too
CI / check (push) Successful in 5m7s
|
2026-07-20 02:43:22 +00:00 |
|
|
|
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 |
|
|
|
a774dfedb1
|
Fix migration over-granting op on disabled levels and halfops
CI / check (push) Successful in 5m16s
|
2026-07-19 20:28:24 +00:00 |
|
|
|
006808e974
|
Drop the SASL source record when the connection ends
|
2026-07-19 20:28:24 +00:00 |
|
|
|
b34ae037f6
|
Validate SCRAM cost floor, saturate expiry math, hide-oper service default
|
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 |
|
|
|
9806da9c28
|
Cap concurrent inbound gossip sessions
CI / check (push) Successful in 5m22s
|
2026-07-19 18:15:57 +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 |
|
|
|
b704ab2b50
|
Never crash on a non-UTF-8 uplink line; bound line length; redeem keycards off the reactor loop
|
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 |
|
|
|
4599c4834d
|
Bind game identity to UID (hijack + cap bypass) and warn on plaintext gossip
CI / check (push) Successful in 4m17s
|
2026-07-19 14:15:06 +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 |
|