• exec/chat_llm.js

    From Rob Swindell (on Debian Linux)@1:103/705 to Git commit to main/sbbs/master on Mon Aug 10 03:17:45 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/a7718428415a389396c1ec21
    Modified Files:
    exec/chat_llm.js
    Log Message:
    chat_llm: treat a repeated question as a failed answer

    Reply-text similarity cannot detect a stuck conversation. A user asked
    the same question three times running and got three answers that meant
    the same thing but scored only 0.33-0.58 against each other, because
    the model rewords itself at this temperature. Genuinely new answers on
    a single topic score 0.42-0.62, so the ranges overlap and no threshold separates them.

    The question itself is the reliable signal: someone retyping what they
    just asked is telling you the previous answer did not land, whatever
    its wording. When the incoming question matches one of that speaker's
    own recent questions, the previous answer is treated as a repeat
    outright, bypassing the similarity test, and the existing regenerate- then-deflect path runs.

    Only the speaker's own turns are compared -- the bot restating a
    question back is not the user asking twice. Similarity still governs
    whether the REGENERATED answer counts as another repeat, at a looser
    threshold, since the strict one would essentially never fire there.
    --- SBBSecho 3.37-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Rob Swindell (on Debian Linux)@1:103/705 to Git commit to main/sbbs/master on Mon Aug 10 03:17:45 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/e77a8de7278d146a717e0fcf
    Modified Files:
    exec/chat_llm.js
    Log Message:
    chat_llm: police gitlab.synchro.net URLs against fabrication

    The fabrication filter covered the wiki and the curated archive domains
    but not GitLab, so invented commit links passed straight through. A
    user was handed a commit URL for a SHA that does not exist, said the
    link was broken, and was handed a second invented one. A plausible
    commit URL is precisely the kind of thing someone clicks and trusts.

    gitlab.synchro.net now sits alongside the other policed domains, and
    the notion of a valid URL is generalised rather than special-cased:
    a URL may be cited if it appeared in the retrieved context, in the
    transcript the model was handed, in a tool result, or in the curated
    archive index.

    Tool results are the source that matters here -- an issue lookup
    returns a real issue URL, and nothing downstream could previously tell
    that apart from a URL the model composed. Both tool-execution paths
    record what they returned.

    Retrieved-context URLs are now collected from the injected text rather
    than only from wiki-prefixed provenance, so enabling a crawler whose
    chunks carry GitLab links cannot have the filter strip the very URLs
    retrieval just supplied.
    --- SBBSecho 3.37-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)