• docs/v322_new.md exec/load/msgutils.js

    From Rob Swindell (on Debian Linux)@VERT to Git commit to main/sbbs/master on Wednesday, November 11, 2026 22:14:54
    https://gitlab.synchro.net/main/sbbs/-/commit/1a255ae94520c1632ef0acd7
    Modified Files:
    docs/v322_new.md exec/load/msgutils.js
    Log Message:
    msgutils.js: getMessageThreads(sub, max) reads the newest max messages

    With a non-zero max, getMessageThreads() looked up every number from
    last_msg - max to last_msg. get_msg_header() returns null for a missing
    or deleted number, and the loop then threw "TypeError: header is null".
    When it didn't throw, it stored each header under header.num, which is not
    a header property, so every header landed under the key "undefined" and
    only the last one survived: a limit of 100 returned one message. On
    sparsely numbered subs the number window also held fewer than max
    messages.

    Take the newest max index records that are neither deleted nor votes,
    and read those headers by offset. Callers that pass no limit (ecReader by default) still read every header with get_all_msg_headers().

    Part of #1340.

    Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

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