• exec/ircd.js exec/load/ircd/PROTOCOL.md core.js exec/tests/ircd/clock.

    From Deucе@VERT to Git commit to main/sbbs/master on Sun Oct 25 00:08:05 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/6986ac66b74162b2c4c2ff0a
    Modified Files:
    exec/ircd.js exec/load/ircd/PROTOCOL.md core.js exec/tests/ircd/clock.js state.js
    Log Message:
    ircd: replace periodic clock probes with negotiated announcements

    CLOCK replies taking more than two seconds were discarded and immediately retried, allowing synchronized hubs to disconnect for lack of a fresh verification despite receiving every response.

    Negotiate CLOCKPUSH between upgraded hubs. Retain reciprocal probes for admission, then publish CLOCK -1 timestamps every 15 seconds and disconnect after more than 30 seconds without a valid announcement. This halves
    periodic CLOCK traffic while preserving the existing wire protocol for
    older hubs and the clock exemptions for leaves and services.

    Accept delayed probe replies when their entire skew uncertainty range fits within MaxSkew, instead of discarding them at two seconds or accepting a
    range that only partially overlaps the limit.

    Switch pending receive callbacks to unthrottled processing once a server authenticates. Reused registration queues could otherwise retain the
    client limit of four commands per two seconds and delay CLOCK traffic.

    Document the protocol and cover admission, periodic cadence, skew bounds, missing announcements, callback stalls, queue handoff and compatibility. Validation: 76 state, 10 live clock, 37 client connection and 9 mixed v2.4 network tests passed; git diff --check passed.

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