• exec/load/ircd/server.js exec/tests/ircd/network.js state.js

    From Deuc¿@VERT to Git commit to main/sbbs/master on Friday, October 23, 2026 18:01:21
    https://gitlab.synchro.net/main/sbbs/-/commit/2bdc4c33406bba9451bef6e1
    Modified Files:
    exec/load/ircd/server.js exec/tests/ircd/network.js state.js
    Log Message:
    ircd: avoid mode churn when applying channel snapshots

    Applying CSYNC used to clear every channel mode, op, voice and ban before restoring the hub snapshot. Reconnecting leaves consequently displayed
    local removals followed by hub additions even when their state matched.

    Reconcile the authoritative snapshot against existing state instead. Remove obsolete flags, statuses and bans, add missing entries, and update changed keys, limits and channel age without resetting matching state. Preserve the setter, timestamp and spelling of retained bans. Keep hub authorization
    and the existing protections against resurrecting departed users.

    Add regressions for silent identical snapshots, exact state differences,
    fresh channels and repeated corrections in a six-server network.

    Validation: 63 state tests, 30 network tests and 9 visibility tests with an actual v2.0 leaf passed.

    Reported by Accession on irc.

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