_  _    __    ___  __    ___  _____  _  _
 ( \( )  /__\  / __)(  )  / __)(  _  )( \( )
  )  (  /(__)\( (__  )(__( (__  )(_)(  )  (
 (_)\_)(__)(__)\___)(____)\___)(_____)(_)\_)

The History of Hacking  ·  May 31 – June 2, 2026  ·  Carolina Beach, NC

Connect from your terminal: telnet naclconbbs.net 23  |  ssh naclconbbs.net -p 2222

  • exec/chat_llm.js chat_llm_irc.js

    From Rob Swindell (on Debian Linux)@VERT to Git commit to main/sbbs/master on Mon Jun 1 22:09:27 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/b7a8fe42899f20e6089c104e
    Modified Files:
    exec/chat_llm.js chat_llm_irc.js
    Log Message:
    chat_llm: IRC bot acknowledges brief replies to its own lines

    When a user makes a clear, brief, *unaddressed* reply to the bot's OWN
    last line, the bot now reacts once with a short in-character line (bare,
    no nick prefix). Three cases:

    - closer -- a social acknowledgement ("ah ok", "thanks", "makes sense")
    - correction-- pushback ("no, that's wrong") -> a gracious concession that
    never re-asserts or argues
    - answer -- the bot's last line was a question and the user answered it
    -> a brief reaction that doesn't ask a new question or start
    a new topic (so it acknowledges without restarting the volley)

    Deterministic gate (chat_llm_irc.js handle_privmsg): the bot's prior line
    must be substantive (a reply/intervention, never another ack) + recent + directed at this speaker with nobody in between, the speaker not muted, a per-channel cooldown elapsed, and the text matches a closer/correction
    shape (ack_kind) -- or, for 'answer', our prior line ended in '?'. Closers
    are probabilistic (irc_ack_closer_chance, default 0.9); corrections and
    answers always react. The bot never reacts twice in a row, so the user
    always gets the last word. ack_kind + chat_llm_ack live in chat_llm.js (classifier is unit-testable; the line is a constrained model call with a canned fallback on ramble/question/error).

    New config (chat_llm.ini, default ON): irc_ack_enabled, irc_ack_window, irc_ack_cooldown, irc_ack_closer_chance -- documented in the module header.

    Also carries the irc_intervention_min_tokens gate (default 2): an
    unanswered question must have at least N content tokens to qualify for a high-confidence unprompted intervention, so a single content word can't
    carry a "confident enough to chime in" score.

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

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