DM Whisper 0.1.3
What's new
Browserless relay by default (#83 / #84)
Combat no longer depends on a browser. The Roll20 realtime transport (Firebase RTDB) is now the default — no Playwright required for live sessions. A packaged install ships no browser; if the RT token expires, Dusty tells you to reconnect rather than silently reaching for a Chromium that isn't there. Set ROLL20_TRANSPORT=browser to opt back into the legacy relay (dev only).
Minify-on-deploy for the Mod (#84)
npm run release:mod now minifies ai-relay.js via esbuild before deploying (~52% smaller), keeping it under Roll20's API sandbox size limit. Human-readable source stays in git; stripped version goes to the sandbox.
Confirm prompt + Dusty's voice (#82)
Write-confirmation requests now route into the gem's message channel as a distinguished pending entry.
DRW-Original as canonical soak campaign
Live relay soak now targets Dreams of the Red Wizards — Original (clean sandbox, no active PCs).
Known issues filed this release
- #85 requireExisting guard bypassed by single-tab fallback
- #86 MCP deploy_mod_script missing tabName
- #87 tab name .includes() can match stale backup tabs
- #88 30s hang per call when RT transport is down (circuit breaker removed)
- #89–94 cleanup / hardening items from the #84 code review
Upgrade notes
Re-harvest your Roll20 RT token via the gem's Setup tab if you see a 'realtime transport failed' error. Run npm run release:mod to deploy the minified relay to your campaign.