• v4.5.2 84ff629547

    v4.5.2
    All checks were successful
    CI / Does this change touch the recording path? (push) Successful in 28s
    Release / Create Forgejo release (push) Successful in 19s
    CI / Which journeys does this change need? (push) Successful in 32s
    CI / Docker image build (push) Successful in 32s
    CI / Backend lint (ruff) (push) Successful in 34s
    CI / Bot/backend version sync (push) Successful in 45s
    CI / Feedback site tests (push) Successful in 49s
    CI / Summarisation accuracy eval harness (stub provider) (push) Successful in 59s
    CI / Bot tests and audit (push) Successful in 2m10s
    Release / Build and push versioned images (push) Successful in 3m1s
    CI / Frontend (shard 2/2) (push) Successful in 8m19s
    CI / Frontend (shard 1/2) (push) Successful in 9m45s
    CI / Synthetic session harness (no GPU, no LLM) (push) Successful in 11m26s
    CI / End-to-end journeys (phone) (phone) (push) Successful in 23m49s
    CI / End-to-end journeys (desktop) (desktop) (push) Successful in 27m40s
    CI / End-to-end journeys (keyboard) (keyboard) (push) Successful in 27m41s
    CI / Backend migration, tests, and audit (push) Successful in 57m4s
    Stable

    claude-bot released this 2026-10-14 18:17:51 +00:00 | 464 commits to main since this release

    Richer session events, session titles in bot posts, and a calmer note when a
    summary was read in parts. Tried on the dev server as 4.5.2-rc1.

    Upgrading from 4.5.1

    • One database migration (#1187): it adds windows_read and
      prompt_truncated to summarisation_runs. Additive; back up first, then run
      make migrate-safe from the new release before docker compose up -d.
    • BOT_CONTRACT_VERSION is unchanged (2). Update the backend and the bot
      together: the session title in bot posts (#1184) is the bot's.
    • Summaries read differently. The extraction prompt asks for more detail
      (#1189), so the events behind a summary are longer and there are more story
      events. Sessions already summarised keep their summary until a GM re-runs it.

    Added

    • [repo] The eval harness reports how specific the session events are (#1189).
      python -m evals --detail adds words per verified event and the names in
      them, sorted by whether the model could have read them in the cited lines,
      elsewhere in the transcript, or nowhere (invented). A report only: no CI
      threshold reads it.

    Changed

    • [bot] A post that names a session in its title now gives the number and the session's title. The reminder reads "In an hour: Session 14 · The Lantern Market at Dusk"; an untitled session stays "Session 14". A long title is cut so the whole title fits Discord's 256 characters. Descriptions and fields, and the two plain lines that ping (the vote reminder and the RSVP nudge), still use the number only.
    • [webapp] Bot posts carry the session's own title. session_facts adds title when the session has one, and no event sends a placeholder such as "Untitled Session" or "Session 14" under that key any more. Additive: no BOT_CONTRACT_VERSION bump.
    • [webapp] The note under a session summary now says only what happened to that summary (#1187). "Summarised in parts" appears when the transcript really was read in several parts, with no lock and no list of possible limits; a plain warning appears if the start of the transcript was detected as cut off. Everything else stays on Admin → Bot settings.
    • [webapp] Session events say more (#1189): the AI is asked for who did what, to whom or with what, and how it turned out, taking every name and detail from the lines it cites. On a real session this roughly doubled the story events a summary is built from. Two checks that drop events wrongly are loosened, both still refusing when anyone else spoke in between: an event about a player's action is kept when it cites the GM's set-up and outcome around that player's own line, and an event about something the GM said is kept when the GM's line is within five seconds of the line cited.

    Fixed

    • [webapp] A session event citing a moment inside a long transcript line, or its end, is no longer rejected (#1189): the citation resolves to that line and the event keeps it, recorded as a repair.
    Downloads