• .claude/skills/javascript/SKILL.md

    From Rob Swindell (on Windows 11)@VERT to Git commit to main/sbbs/master on Sun May 24 15:52:35 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/f27b2e8270997abb2ada9598
    Modified Files:
    .claude/skills/javascript/SKILL.md
    Log Message:
    .claude/skills/javascript: document constant namespaces and terminal-capability checks

    Two new subsections after load()/require(): one breaks down where
    constants come from (host-injected globals like LOG_*/INVALID_SOCKET, class-static properties like FileBase.DETAIL/SORT and CryptContext.ALGO_*,
    and JS-library files under exec/load/ that need load()/require()); the
    other distinguishes console.term_supports(USER_UTF8) (live connection capability) from user.settings & USER_UTF8 (stored preference) and
    explains when to use which.

    Triggered by C-vs-JS namespace confusion (bare UTF8 in sbbsdefs.h vs
    USER_UTF8 in exec/load/userdefs.js, same (1<<29) value) hit during
    LLM-guru language-output work.

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

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Rob Swindell (on Windows 11)@VERT to Git commit to main/sbbs/master on Fri May 29 15:31:38 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/30e601ade1688cc1a957bb92
    Modified Files:
    .claude/skills/javascript/SKILL.md
    Log Message:
    skills/javascript: note the chat_llm LLM-Guru module family

    Add the chat_llm engine, chat_llm_irc adapter, llm_tools, and llm_index to
    the stock exec/*.js inventory, plus wiki links to the new module/config/
    howto pages now published on wiki.synchro.net.

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

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Rob Swindell (on Debian Linux)@VERT to Git commit to main/sbbs/master on Fri May 29 23:59:56 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/d4613a65265ef3fe028b36a7
    Modified Files:
    .claude/skills/javascript/SKILL.md
    Log Message:
    javascript skill: how to syntax-check/test a side-effecting module

    Document the guard-and-load() idiom: gate a module's load-time entry
    point (server loop, socket connect, greeting) behind a NO_MAIN-style
    sentinel so it can be load()ed under jsexec for syntax-checking and unit-testing its helpers without running the side effect. Cites the
    stock CHAT_LLM_NO_STANDALONE / CHAT_LLM_IRC_NO_MAIN guards. Notes that syncjslint.js is a style linter (jslint) with false positives on valid SpiderMonkey regex, not a reliable syntax gate.

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

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Rob Swindell (on Debian Linux)@VERT to Git commit to main/sbbs/master on Fri May 29 23:59:57 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/a923481d60d196ea331efafd
    Modified Files:
    .claude/skills/javascript/SKILL.md
    Log Message:
    skills/javascript: document INI trailing-comment type-dependency

    Synchronet .ini value parsing strips a trailing "; comment" only for single-token value types (boolean via isTrue, enum via parseEnum, and integer/float/datetime via the numeric parse). STRING values keep the
    whole post-'=' text (truncsp only), so an inline comment after a
    string-valued key becomes part of the value -- the trap that corrupts URL/path/name settings. File.iniGetObject() reads every value as a raw
    string and thus never strips inline comments.

    Add a "Reading INI files (and the trailing-comment trap)" section with
    the per-type table, the rationale (single-token values have no
    delimiter ambiguity; strings do), and the history behind the
    single-token support (cceb1fbb8 isTrue after FozzTexx's sexpots.ini
    report; 7346893d6 enum-after-comment).

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

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