• v3.9.0 861e70a056

    v3.9.0
    Some checks failed
    CI / Docker image build (push) Successful in 42s
    CI / Backend lint (ruff) (push) Successful in 49s
    CI / Frontend tests, audit, and build (push) Successful in 2m11s
    CI / Bot tests and audit (push) Successful in 2m12s
    Release / Create Forgejo release (push) Failing after 18s
    Release / Build and push versioned images (push) Successful in 25s
    CI / Backend migration, tests, and audit (push) Successful in 4m58s
    Stable

    claude-bot released this 2026-07-18 19:41:35 +00:00 | 646 commits to main since this release

    Game-Aware Systems: Quest Board now understands your game system.

    Campaigns can link to a first-class registry of TTRPG systems instead of only
    free text — unlocking richer AI context, versioned schema-validated stat blocks,
    a typed stat-block editor, schema-targeted generation, and an opt-in wizard to
    backfill structured stats from existing entries. Everything is opt-in and
    reversible: free-text campaigns behave exactly as before. Foundation for the
    upcoming FoundryVTT integration. Ships four Alembic migrations. No API contract
    change — BOT_CONTRACT_VERSION stays 1.

    Added

    • [webapp] Game system registry — link a campaign to Dungeons & Dragons 5th
      Edition, Pathfinder 2e, or a system-agnostic "Generic" (or keep free text). A
      registry selector on the create and settings forms, plus a one-click "this
      looks like Pathfinder 2e — link it?" nudge for campaigns whose free text
      matches a known system. Linking never discards your free-text value. (#133, #135)
    • [webapp] System-aware AI — for a linked campaign, session summaries, name
      suggestions, and lore extraction now get real system-specific context (e.g.
      Pathfinder's ancestry/heritage/class vs. D&D's classes and ability scores)
      instead of a bare system name. Free-text campaigns produce byte-for-byte
      identical prompts. (#137)
    • [webapp] Structured, schema-validated stat blocks — versioned per-system
      stat schemas (D&D 5e and PF2e ship v1 schemas for NPCs and creatures) and a
      validated stat envelope on wiki entries, with a typed stat-block editor
      (grouped, per-field-type inputs) on NPC/creature articles and an infobox
      projection. Validation is server-authoritative; stat blocks are GM-only by
      default and snapshotted into version history. (#139, #140)
    • [webapp] Schema-targeted stat generation — the one-click "Generate stat
      block" now produces schema-valid structured stats when a system is linked
      (validating with one retry, and falling back to the free-form generator
      otherwise). (#142)
    • [webapp] Stat conversion wizard — a GM-driven, reviewed, append-only
      wizard that maps an existing NPC/creature's free-form text into a structured
      stat block via the LLM (map, not invent — with per-field confidence and
      source), driven from a per-campaign "review all" queue. Your original prose
      and notes are never rewritten. (#145)
    Downloads