Skip to content

DM Whisper 0.1.6

Choose a tag to compare

@eschatus eschatus released this 31 Jul 21:55
· 72 commits to master since this release

First release with a fine-tuned local specialist as a usable backend, plus the instrumentation to keep improving it from real play.

Local specialist (opt-in)

A QLoRA'd Qwen2.5-7B trained on grader-verified gold trajectories for this table's conventions. Measured on the golden suite at n=60: 72–78% vs Haiku's 57%, at ~1.1 s/turn vs ~3.0 s, running entirely offline from a 4.7 GB q4_k_m file. Untrained baseline was 22–25%.

Enable in %APPDATA%\DM Whisper\.env:

DMW_ENABLE_LOCAL_LLM=1
DMW_PROVIDER=ollama
DMW_OLLAMA_MODEL=dmw-7b-v2-q4

The local path serves exactly the 19-tool slimmed scope the model was trained on — train/serve parity matters, since it fit the training format hard.

Session instrumentation

Every turn now writes a replayable record to events.jsonl: full untruncated tool args, honest ok/error, a pre-turn board snapshot, and repairOf chains linking rephrasings. A repair chain's final turn is DM-accepted ground truth; the earlier ones are labelled negatives. Sessions become training data.

Campaign picker + maker

Setup tab gains a campaign dropdown and a register-new form that call MCP directly — no LLM in the path. Necessary because the specialist's scope excludes switch_campaign, and correct regardless: a dropdown can't mishear a campaign name.

Fixes

  • Death markers render everywheredead now uses Roll20's built-in red X instead of aliasing a custom marker that shows nothing in campaigns without the custom set installed.
  • #158 — the instrumentation logged successes as failures (mark_dying's own success text contains "3 failed saves"), which corrupted repairOf on exactly the dying/AoE turns that matter most. Now threads the real MCP isError flag.
  • Native ollama /api/chat provider so num_ctx and format actually apply (the /v1 shim silently ignores options — that bug invalidated an earlier "local models are unusable" verdict).

⚠️ Run npm run release:mod after installingai-relay.js changed (death marker + threshold automation).