• .claude/skills/javascript/SKILL.md

    From Rob Swindell (on Debian Linux)@VERT to Git commit to main/sbbs/master on Mon Jul 6 20:44:06 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/371c3e49b542335fac8e210c
    Modified Files:
    .claude/skills/javascript/SKILL.md
    Log Message:
    javascript skill: five API gotchas learned from real module work

    - MsgBase.remove_msg(): passing a header object silently returns false
    with an empty last_error; pass the message number/offset/ID.
    - bbs.text() accepts the string identifier (via text_id_map), and a
    text.dat format string can carry more %-specifiers than the name
    suggests (NodeMsgFmt has three, including the message body) -- count
    them in ctrl/text.dat before format()ing, or the leftover %s renders
    literally.
    - bbs.compare_ars() evaluates the current user only; use the User
    object's compare_ars() to test any user (e.g. other nodes' useron),
    plus how to find a program's execution_ars and enumerate in-use nodes.
    - Emit line breaks with console.newline() rather than a hand-written
    "\r\n", same terminal-correctness principle as console.creturn().
    - Don't copy P_NOPAUSE onto printfile() calls reflexively: it disables
    the default pagination, which is only right when the surrounding flow
    provides the pause.

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