Commit graph

  • 8df07f22f9
    Complete config.example.toml with all sections main Jean 2026-07-21 14:54:26 +00:00
  • dc046cd6f0
    Rewrite the README Jean 2026-07-21 14:21:23 +00:00
  • 45f45a46b9
    Warn an oper whose TLS cert fingerprint isn't on their account Jean 2026-07-21 14:13:49 +00:00
  • cb552c04b0
    Support connecting to the uplink over SPKI-pinned TLS Jean 2026-07-21 13:48:50 +00:00
  • 3b76454586
    Add a deny-status (d) channel access flag that bars a user from op/voice Jean 2026-07-21 13:36:14 +00:00
  • acbf557104
    Restore the connect cloak or services vhost when a user deopers Jean 2026-07-21 13:17:14 +00:00
  • ac021ec584
    Notify a game opponent when a departing guest's game ends Jean 2026-07-21 10:40:27 +00:00
  • 9e8449b40d
    Drop a guest's GamesServ games on disconnect so a recycled uid can't inherit one Jean 2026-07-21 10:23:52 +00:00
  • 62b275fd01
    Reject uid-form values as a topic setter or cooldown key (require a nick/mask) Jean 2026-07-21 09:53:04 +00:00
  • 948a59707e
    Persist the channel topic setter as a nick!ident@host mask for KEEPTOPIC and INFO Jean 2026-07-21 09:26:41 +00:00
  • 9ccc681a62
    tag service replies with +draft/reply and +draft/channel-context Jean 2026-07-21 00:57:30 +00:00
  • 29eefaafe3
    Add OperServ SETALL to apply a channel setting to every channel (network-wide policy) Jean 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) Jean 2026-07-20 23:10:01 +00:00
  • ab8ea65a42
    Q-line a FORBIDden nick so it can't be used, not just registered Jean 2026-07-20 22:49:21 +00:00
  • 7cb1c61afa
    Give each test engine a unique temp path so parallel scram tests don't race Jean 2026-07-20 22:39:02 +00:00
  • 1c6b8c799f
    Add invite-only registration: a new account waits for a confirmed member to VOUCH Jean 2026-07-20 22:12:54 +00:00
  • 140b19ee04
    Add SIGNKICK LEVEL mode: sign only kicks by users without op access Jean 2026-07-20 22:00:34 +00:00
  • ae90388fbf
    Add SECUREVOICES: strip voice from users without channel access Jean 2026-07-20 21:34:09 +00:00
  • b2f075ee00
    Enforce a locked parameterized channel mode against param changes, not just removal Jean 2026-07-20 21:23:50 +00:00
  • 7fa7831390
    LOGIN from an already-identified session reclaims the nick without a needless re-verify Jean 2026-07-20 21:08:42 +00:00
  • c2a7dfa8f7
    Add NickServ LOGIN to identify and reclaim your nick in one command Jean 2026-07-20 20:59:47 +00:00
  • aa270e061e
    Cap FORBID and vhost LIST output so a huge list can't overflow the operator's receive queue Jean 2026-07-20 20:44:15 +00:00
  • 8b45d386c6
    Restore the connect-time host when a session logs out, reversing any services vhost Jean 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) Jean 2026-07-20 20:00:09 +00:00
  • b500698e82
    Add AJOIN ADDALL to auto-join every channel you are currently in Jean 2026-07-20 19:40:02 +00:00
  • 6e53cb751a
    Notify or memo the affected user on channel access, XOP, founder, and successor changes Jean 2026-07-20 19:34:08 +00:00
  • 6078cdf83d
    Enforce the channel akick list when a user changes nick Jean 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 Jean 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 Jean 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 Jean 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 Jean 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 Jean 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) Jean 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 Jean 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 Jean 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 Jean 2026-07-20 04:40:42 +00:00
  • 1b569fdfa3
    Give French dict rich Wiktionary definitions instead of thin FreeDict glosses Jean 2026-07-20 03:00:22 +00:00
  • c57683b5e4
    Route the !dict fantasy command through the language-aware database too Jean 2026-07-20 02:43:22 +00:00
  • 3473d3afbd
    Make DictServ dict follow the user's language via FreeDict dictionaries Jean 2026-07-20 02:37:17 +00:00
  • e4a14b9813
    Localize engine notices, transactional emails, and operator-access denials in all six languages Jean 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 Jean 2026-07-20 02:03:05 +00:00
  • 74a58c5425
    Add Spanish, Argentinian Spanish, Brazilian and European Portuguese, and German translation catalogs Jean 2026-07-20 00:54:58 +00:00
  • e381129a52
    Translate all service-module help and messages to French; render help summaries and detail through the catalog Jean 2026-07-19 23:50:15 +00:00
  • 18c43f5fb8
    Translate service messages to French Jean 2026-07-19 23:46:38 +00:00
  • ab329fe133
    Migrate DiceServ and DictServ messages to the t! macro Jean 2026-07-19 23:46:38 +00:00
  • b28bd2777f
    Localize service-module messages via t! and add French translations (partial) Jean 2026-07-19 23:24:54 +00:00
  • d207c3d60d
    Migrate interpolated service messages to the t! macro (8 modules) Jean 2026-07-19 23:22:56 +00:00
  • b462d37bd5
    Add i18n framework: per-account language, catalogs, t! macro, SET LANGUAGE Jean 2026-07-19 22:57:45 +00:00
  • 83851c794d
    Add snapshot-epoch cursor so 3+-node gossip converges in order and across compaction Jean 2026-07-19 22:17:27 +00:00
  • 6a22bee2e1
    Revert strict gossip ingest ordering: it broke convergence across compaction Jean 2026-07-19 21:56:05 +00:00
  • 4330ff169b
    Document the federation trust model and deployment tiers Jean 2026-07-19 21:44:51 +00:00
  • e3c7f373d3
    Add optional per-origin Ed25519 signing for gossip (Tier C federation) Jean 2026-07-19 21:44:51 +00:00
  • 01da702704
    Apply gossip entries in strict per-origin order and cap ingested memos Jean 2026-07-19 21:29:44 +00:00
  • a774dfedb1
    Fix migration over-granting op on disabled levels and halfops Jean 2026-07-19 20:28:24 +00:00
  • 006808e974
    Drop the SASL source record when the connection ends Jean 2026-07-19 20:28:24 +00:00
  • b34ae037f6
    Validate SCRAM cost floor, saturate expiry math, hide-oper service default Jean 2026-07-19 20:28:24 +00:00
  • cc9c399464
    Don't print unreconcilable addends for a truncated dice listing Jean 2026-07-19 19:52:44 +00:00
  • 3c730f7add
    Keep a bot-inhabited channel alive when pruning empty channels Jean 2026-07-19 19:52:44 +00:00
  • 071380efae
    Re-check protection in the enforce sweep and key the kicker cache by registration Jean 2026-07-19 19:19:20 +00:00
  • 118782a4bf
    Allocate guest nicks that skip online and registered names Jean 2026-07-19 19:19:20 +00:00
  • 2c81af108b
    Don't let incoming challenges fill a victim's GameServ slots Jean 2026-07-19 19:19:20 +00:00
  • d0a86359c2
    Fix the caps kicker to trigger on ratio, not uppercase count Jean 2026-07-19 18:52:26 +00:00
  • e4a2e76903
    Harden votekick: dedup votes, require member targets, fix trigger refs Jean 2026-07-19 18:52:26 +00:00
  • a7f13098e3
    Reject same-account self-challenges in GameServ Jean 2026-07-19 18:52:26 +00:00
  • ab361e8646
    Cap DiceServ expression size to prevent a stack-overflow crash Jean 2026-07-19 18:52:26 +00:00
  • 9806da9c28
    Cap concurrent inbound gossip sessions Jean 2026-07-19 18:15:57 +00:00
  • 007b02d380
    Don't install an already-expired gossiped akill as a permanent ban Jean 2026-07-19 18:15:57 +00:00
  • 75d3c70cc8
    Reject CRLF/malformed emails and names to stop SMTP header injection Jean 2026-07-19 18:12:35 +00:00
  • 598234b817
    Add regression tests for the authority, channel-prune and group-cap fixes Jean 2026-07-19 17:45:05 +00:00
  • d6e74dd7c7
    Key chatter buckets by lowercase channel Jean 2026-07-19 17:45:04 +00:00
  • dc148dde69
    Stop a bare nick from cancelling an account's help ticket Jean 2026-07-19 17:45:04 +00:00
  • fa9eaece45
    Cap and freeze-gate GroupServ registration Jean 2026-07-19 17:45:04 +00:00
  • 0c85c5b569
    Forget emptied channels so a stale key can't leak to a recreated name Jean 2026-07-19 17:45:04 +00:00
  • eea6e30f20
    Guard the gRPC authority login and register paths Jean 2026-07-19 17:45:04 +00:00
  • 6149a15b34
    Let identified users manage CERT without a password Jean 2026-07-19 17:17:36 +00:00
  • bfff7dba91
    Silently ignore unknown in-channel fantasy commands Jean 2026-07-19 17:09:07 +00:00
  • d6b681c972
    Don't expire runtime-granted opers; preserve standalone kicker flags across compaction Jean 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 Jean 2026-07-19 16:44:35 +00:00
  • 68372042f8
    Gate OperServ INFO note edits at admin and cap the MemoServ ignore list Jean 2026-07-19 16:21:31 +00:00
  • 7894de4217
    Resolve grouped-nick authzid in SASL EXTERNAL and saturate the Lamport clock Jean 2026-07-19 15:59:00 +00:00
  • 8f41fc9903
    Freeze ChanServ MODE/ACCESS/FLAGS on suspended channels and make PEACE group-access-aware Jean 2026-07-19 15:59:00 +00:00
  • 16d2a5035a
    Enforce the email-forbid policy on gRPC Register and SetEmail Jean 2026-07-19 15:37:33 +00:00
  • 03d39c1329
    Guard the namespace on NickServ GROUP, gRPC GroupNick, and GroupServ REGISTER (confusable/forbid/cap) Jean 2026-07-19 15:34:35 +00:00
  • 224bc78641
    Detect homoglyphs in Cyrillic Supplement and other unlisted non-Latin blocks Jean 2026-07-19 14:50:54 +00:00
  • 86444286d8
    Test that SASL SCRAM honours the brute-force lockout Jean 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 Jean 2026-07-19 14:38:16 +00:00
  • 4599c4834d
    Bind game identity to UID (hijack + cap bypass) and warn on plaintext gossip Jean 2026-07-19 14:15:06 +00:00
  • e23240bf52
    Converge remaining gossiped state: node-local news/reports/help and deterministic group registration Jean 2026-07-19 14:11:50 +00:00
  • fef4590f48
    Update direct report_file/help_request test callers for the cooldown-key argument Jean 2026-07-19 13:57:03 +00:00
  • c2db3bad7e
    Preserve Anope negative mode locks on import instead of dropping them Jean 2026-07-19 13:44:46 +00:00
  • d5bc2309c4
    Bound gossip line length, add a handshake timeout, and compare the secret in constant time Jean 2026-07-19 13:42:07 +00:00
  • 3648c48d2e
    Rate-limit REPORT and REQUEST on the real host instead of the spoofable nick Jean 2026-07-19 13:39:03 +00:00
  • b2ffc01e52
    Bound dice batches, game count, and report/help queues, and harden community votekick Jean 2026-07-19 13:34:48 +00:00
  • 64c4bbeae4
    Cap certfp, channel access, and akick lists to bound attacker-driven log growth Jean 2026-07-19 13:27:50 +00:00
  • d833dc28f0
    Fix duration overflow, expiry-warned resets, DICT control-char injection, and HostServ TAKE forbid recheck Jean 2026-07-19 13:24:46 +00:00
  • 68df1e7078
    Use the ircd's learned CHANMODES arities for FMODE/FJOIN param scanning Jean 2026-07-19 13:22:00 +00:00
  • d0c7cb6905
    Exempt service bots from ChannelOp secureops and bound the last-seen map Jean 2026-07-19 13:17:54 +00:00
  • 7528b78bf7
    Gate OperServ EXCEPTION at admin tier and reject match-all SNLINE regex Jean 2026-07-19 13:17:54 +00:00
  • e7f012726c
    Stop a non-founder from granting the founder flag (channel takeover escalation) Jean 2026-07-19 13:10:44 +00:00
  • 18806c5fe7
    Apply the IRC namespace guards (forbid, confusable, frozen) to gRPC account writes Jean 2026-07-19 13:10:44 +00:00