• v4.1.1 5b1bd2a427

    v4.1.1
    All checks were successful
    CI / Backend lint (ruff) (push) Successful in 27s
    CI / Bot/backend version sync (push) Successful in 32s
    CI / Summarisation accuracy eval harness (stub provider) (push) Successful in 1m13s
    Release / Create Forgejo release (push) Successful in 13s
    CI / Frontend tests, audit, and build (push) Successful in 1m42s
    CI / Bot tests and audit (push) Successful in 1m50s
    CI / Docker image build (push) Successful in 4m41s
    CI / Backend migration, tests, and audit (push) Successful in 5m56s
    Release / Build and push versioned images (push) Successful in 7m12s
    Stable

    claude-bot released this 2026-09-05 00:19:52 +00:00 | 324 commits to main since this release

    A patch on the way to v4.2.0: the AI provider is named rather than guessed
    from its URL, and a /ask answer that ran out of room now says so.

    No migrations. Nothing to rehearse, nothing to back out.

    The bot contract is unchanged (still v1). The one /api/bot/* change is
    an optional field added to the /ask response, which the bot tolerates when
    absent, so backend and bot images can be upgraded independently in either
    order.

    One new optional setting — the AI provider select in Admin → Bot Settings.
    Nothing changes on upgrade unless you set it; see the entry below for who
    should.

    Added

    • [webapp] Admin → Bot Settings can now name the AI provider explicitly
      instead of letting it be detected from the endpoint URL (#351). Detection
      matches on the URL — anthropic.com, openai.com, :11434 — and falls back
      to llama.cpp for everything else, so if you run a gateway or reverse proxy
      on your own domain, your endpoint has been treated as llama.cpp regardless of
      what is behind it.
      The provider decides the JSON-schema format, how
      truncation is detected, and the default context window, so a wrong guess
      degrades summaries quietly rather than failing. Leave it on "Detect from the
      URL" if that guess is already right for you — nothing changes on upgrade.

    Fixed

    • /ask no longer presents a cut-off answer as a complete one (#426). The
      question-answering path never checked whether the model ran out of room, and
      a truncated answer is prose that simply stops — there was nothing to notice.
      It is now marked in the Discord embed. Two related fixes on the same path:
      the output limit was 1024 tokens on Anthropic and OpenAI (small for an answer
      drawn from ten sessions plus the wiki) and unset on llama.cpp, and is now
      4096 everywhere; and on Ollama the question was being silently cut to
      that provider's 2–4k default, so the model answered from a fraction of the
      context it was supposed to have. If your /ask answers have felt oddly
      narrow on a self-hosted Ollama, that is why.
    • [webapp] A silently truncated prompt is now reported on every LLM provider,
      not just Ollama
      (#351). The check that warns when a provider consumed far
      fewer prompt tokens than were sent existed, but was wired to a single code
      path. llama.cpp, Anthropic and OpenAI deployments got no warning at all, so a
      transcript that overflowed the context window could be summarised from its
      tail with nothing in the logs to say so. If you self-host llama.cpp and see
      this warning appear after upgrading, your configured context window is too
      large — see the note under "Context window (tokens)" in Bot Settings.
      The check stays quiet on Anthropic and OpenAI, where prefix caching makes a
      low count ambiguous rather than alarming.
    Downloads