• v1.15.0 594fc8dd99

    v1.15.0 — /aufhocker espnff, a command of its own
    All checks were successful
    CI / build-and-test (push) Successful in 2m27s
    CI / docker-build (push) Successful in 48s
    Stable

    joeyr released this 2026-09-10 21:39:40 -05:00 | 59 commits to main since this release

    Added

    • /aufhocker espnff query: <text> — a command of its own for the ESPN
      fantasy league.
      Previously the fantasy tools were only reachable through
      /aufhocker query-chat, mixed in with web_search and the channel history,
      and whether they were used at all was left to the model.

      It is the same Claude client pointed at one subject, and the three
      differences from query-chat all remove something:

      • Only the borrowed fantasy tools are offered. web_search is not on
        the table, so a question this league's data cannot answer comes back as
        "I don't know" rather than as a confident answer assembled from the open
        web — which is the failure that looks most like success.
      • No channel history is built or sent. A fantasy question is about the
        league, not the conversation. That also removes the prompt-injection
        surface the general system prompt spends a paragraph defending against.
      • It refuses outright when the tools are missing, rather than answering
        without them. A fantasy answer with no tool call behind it is a guess, and
        in Discord it would read exactly like a real one.

      Admin-gated, like every other tool-using path in this bot, and it says so
      when it refuses. Rate limiting, channel-permission checks and the "Make
      Public" button are shared with query-chat rather than reimplemented —
      the publish rules are the security-sensitive part of that plugin, and a
      second copy is a second place for them to drift.

    Changed

    • ClaudeRequest accepts an optional system prompt and an optional explicit
      tools list. An empty tools: [] means no tools and is deliberately not
      the same as omitting the field, which still means "the built-ins plus
      everything borrowed from MCP".

    Fixed

    • Tool use was gated on config.admin.availableTools.length > 0, so a
      deployment that configured no built-in tools would also have withheld every
      tool borrowed from an MCP server. The gate now counts the tools actually
      being offered.
    Downloads