• v3.11.0 fe082c3e20

    v3.11.0
    All checks were successful
    CI / Docker image build (push) Successful in 15s
    CI / Backend lint (ruff) (push) Successful in 47s
    Release / Create Forgejo release (push) Successful in 18s
    CI / Frontend tests, audit, and build (push) Successful in 1m16s
    Release / Build and push versioned images (push) Successful in 1m11s
    CI / Bot tests and audit (push) Successful in 2m9s
    CI / Backend migration, tests, and audit (push) Successful in 3m26s
    Stable

    claude-bot released this 2026-07-27 19:55:48 +00:00 | 553 commits to main since this release

    The Session Reference Shelf: everything relevant to tonight, in one place.

    A per-session board the GM keeps open during play. Anything generated in the GM
    Workbench persists on the shelf for the whole session — whether or not it ever
    becomes canon — and existing wiki entries can be pinned alongside it, so there is
    no hunting a large wiki mid-scene. Cards hold the position you drop them in and
    are never auto-reflowed; the shelf is a spatial surface, not a list.

    The whole feature works offline: no LLM and no transcription is required for any
    of it (the transcript-driven layer is v3.12). One new migration
    (d9e0f1a2b3c4), and BOT_CONTRACT_VERSION stays 1 — the one new bot event is
    additive, so a mixed-version bot keeps working.

    Added

    • [webapp] The shelf itself — a per-session board of reference cards backed
      by a new ShelfCard model and GM-only API, with freeform drag-to-place
      positions that never auto-reflow, resizable cards, per-card "tonight" notes,
      and removal. (#239, #240)
    • [webapp] Add to shelf from anywhere — a shared control on every GM
      Workbench generation result and on wiki entries, defaulting to the campaign's
      in-progress or next session. (#241)
    • [webapp] Glance-compressed cards — each card shows a scannable face
      (name, a one-line want or hook, ~3 facts, a voice cue) with full detail one tap
      away, so cards read at arm's length instead of as walls of text. (#242)
    • [webapp] Spotlight / "now playing" — promote a card to a large stage;
      number keys 1-9 or the card's stage button pick it, arrows or [ ] swap, Esc
      clears. The board card never moves. (#243)
    • [webapp] Scene packs — bundle cards into named scenes during prep and swap
      the board's scene in one tap during play. Swapping hides cards, it never moves
      them, so every scene keeps the exact layout you left it in. (#244)
    • [webapp] Reveal to table — show a card to the players on Discord, in Quest
      Board, or both. Each card carries a player-safe layer separate from its
      GM-only content; when you haven't written one, the server derives a
      conservative default from read-aloud text and public summaries only — never GM
      notes or secrets — and refuses to reveal rather than guess when nothing is
      confidently safe. Players get a new "At the table" view showing only what has
      been revealed. (#245)
    • [webapp] Fast retrieval — a Ctrl-K fuzzy quick-switcher over tonight's
      shelf first and then the wiki, plus number-key hotkeys for the cards on
      screen. (#246)
    • [webapp] End-of-session sweep — one pass over every card touched tonight:
      promote it to the wiki (an AI draft cleans and merges it through the existing
      review rail), carry it forward, or discard it. (#247)
    • [webapp] Carry-forward pins + session navigation — pin a card and it rides
      forward onto every later session automatically, as an interval over the
      campaign's session timeline. Wiki cards render live; generated cards stay
      frozen to their snapshot. Completing a session harvests each wiki card's notes
      into that entry's GM notes; cancelling prunes untouched carried cards. Plus a
      session switcher, a Workbench entry point, and "copy from another session".
      (#252, #254)
    • [webapp] Warm cold-open — the shelf opens with a "previously on" recap, the
      plot threads still open, and a count of the cards carried in, so session N+1
      starts warm. The recap steps over cancelled and unsummarised sessions to find
      the last one that actually has something to say. (#248)
    • [webapp] AI story-arc suggester — a GM Workbench tool that reads recent
      sessions, arcs, threads, and wiki entries to propose candidate story arcs in
      the result rail; accepting one creates a CampaignArc. (#236)
    • [bot] Revealed cards post to Discord — a new additive shelf_reveal event
      posts a card's player-safe layer to the campaign channel. The GM-only side of
      a card never leaves Quest Board. (#245)
    Downloads