• exec/chat_llm.js exec/llm_tools/bbs_directory.js

    From Rob Swindell (on Debian Linux)@VERT to Git commit to main/sbbs/master on Sat May 30 03:17:44 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/d5ec41abbeda3bd12385870a
    Modified Files:
    exec/chat_llm.js exec/llm_tools/bbs_directory.js
    Log Message:
    chat_llm: fix guru BBS-directory routing, OS filtering, and IRC venue

    Four guru-quality fixes surfaced by live IRC testing:

    - classify_intent: route "which/what BBS does <sysop> run?" to
    bbs_directory(list, sysop:X). Previously unrouted, so the 7B
    fabricated BBS names ("DoveNetNode", "BinkleyTerm").

    - classify_intent + bbs_directory: recognize OS-filter queries ("how
    many BBSes run FreeBSD?") via _looks_like_os and filter on the
    per-BBS OS parsed from the autoverify finger result (the same source
    load/sbbslist_html.js uses for its OS chart). Was mis-binding the OS
    as a software filter and fabricating counts; now FreeBSD=3, Win32=80,
    Linux=115, macOS=0.

    - bbs_directory: when a filtered list (sysop/os/software/network)
    yields zero matches, return an explicit no-match note telling the
    model not to invent a BBS. The 7B fabricated names from an empty
    bbses[] otherwise ("which BBS does mro run?" -> invented BBSes).

    - build_messages: IRC grounding now names the channel and states it is
    a shared Synchronet IRC channel, NOT the host BBS -- stops the guru
    greeting channel users with "what brings you to <BBS>?" and treating
    them as BBS callers.

    Regression: 29/32 (the 3 fails are pre-existing flaky FAQ citation
    checks); all bbs_directory/routing tests pass.

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

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