• exec/load/ircd/core.js server.js user.js

    From Deuc¿@VERT to Git commit to main/sbbs/master on Thursday, May 07, 2026 14:10:23
    https://gitlab.synchro.net/main/sbbs/-/commit/73b4b37311741b4722432050
    Modified Files:
    exec/load/ircd/core.js server.js user.js
    Log Message:
    ircd.js: flush kicked user's pending channel messages

    When a user is kicked from a channel, filter their recvq to remove
    pending PRIVMSG/NOTICE lines destined for that channel. Previously,
    a user who pasted a large block of text would continue to flood the
    channel after being kicked because the lines were already queued in
    their recvq and would be processed one at a time by the throttled
    recvq processor.

    Only messages to the kicked channel are removed; messages to other
    channels and other commands are preserved.

    Dedicated to Chalupy.

    Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Deuc¿@VERT to Git commit to main/sbbs/master on Thursday, May 07, 2026 14:29:15
    https://gitlab.synchro.net/main/sbbs/-/commit/a8b35038d6fb5b5afa097ca9
    Modified Files:
    exec/load/ircd/core.js server.js user.js
    Log Message:
    ircd.js: flush kicked user's queued messages from channel sendqs

    In addition to filtering the kicked user's recvq, also remove their already-queued PRIVMSG/NOTICE messages from all channel members' and
    servers' sendqs. This prevents flood text that was already broadcast
    before the kick from continuing to appear in the channel.

    The flush runs before the KICK broadcast so the kick message is not
    buried behind hundreds of queued flood lines.

    Note: a pre-existing desync issue where kicks don't propagate to all
    linked servers remains unfixed.

    Dedicated to Chalupy.

    Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net