Repository navigation
v0.15.7
🚀 Key Highlights
- This release focuses heavily on encounters, VTT usability, AI safety, and accessibility.
- Major workflow upgrades include player turn actions, aftermath/recap handling, encounter search/sort, and catch-up views.
- Several important security and reliability fixes were shipped alongside new features.
✨ New Features & Improvements
- Encounters: added death saves as a logged turn action, combat log provenance, player end turn/ready-delay/reactions MVP, manual and compendium combatant actions, aftermath workflow for loot/XP/recap, list filtering/search/sorting, and SSE stale-state indicators with guarded actions.
- VTT: added token scaling from grid footprints, hex snapping distance/footprints, fog editor undo/erase and region editing, keyboard operability for map elements, and a battle map render on Player Display cast view.
- Web/Admin/Search: added a “since you were last here” catch-up view, paginated audit log UI, dry-run bulk roster import, full session recap indexing, and embedded inventory on character sheets.
- Comments/Members/Entities: added entity comments across supported surfaces, discoverable membership and player data rights, and portrait URL support for NPCs, factions, and locations.
- AI: added confirm-policy controls for destructive live-play tools and docked AI driver controls in the encounter page.
🐛 Bug Fixes & Maintenance
- Fixed AI driver behavior on provider failure and stop events, and blocked campaign-level provider SSRF.
- Improved web stability with bounded read timeouts, stale cache fallback, safer handling of invalid shared recap links, and prevention of the dashboard getting stuck on skeletons.
- Tightened accessibility with better contrast tokens, normalized heading hierarchy, accessible loading states, and improved tab/label handling.
- Fixed import/reference stability, notification history pagination, concurrent catch-up races, and atomic backup restore with rollback.
- Added maintenance and test updates, including e2e stability fixes, OIDC coverage reporting, and documentation cleanup.
Full Changelog
What's Changed
- fix(ai-driver): terminate turns on provider failure (#560) by @AwsomeFox in #1379
- fix(web): bound read timeouts and stale cache fallback (#581) by @AwsomeFox in #1378
- Make VTT map elements keyboard operable (closes #419) by @AwsomeFox in #1385
- feat(encounters): death saves as logged turn action in 5e encounters (#424) by @AwsomeFox in #1355
- fix(import): stable compendium pack references (#584) by @AwsomeFox in #1382
- fix(ai): prevent campaign-level provider SSRF (#570) by @AwsomeFox in #1384
- feat(web): since-you-were-last-here catch-up view (#549) by @AwsomeFox in #1381
- fix(ai-driver): cancel in-flight generation on stop (#558) by @AwsomeFox in #1380
- feat(admin): dry-run bulk roster import (#589) by @AwsomeFox in #1383
- fix(notifications): paginate history and scoped mark-read (#550) by @AwsomeFox in #1387
- fix(web): raise secondary-text contrast and contrast-safe tokens (#593) by @AwsomeFox in #1386
- feat(search): index full session recap text (#442) by @AwsomeFox in #1393
- feat(characters): embed inventory on character sheet (#454) by @AwsomeFox in #1394
- fix(a11y): normalize page heading hierarchy (#457) by @AwsomeFox in #1395
- fix(admin): update authentication settings copy for OIDC (#447) by @AwsomeFox in #1391
- fix(characters): accessible loading state on character detail (#460) by @AwsomeFox in #1392
- feat(audit): paginated campaign audit log UI (#443) by @AwsomeFox in #1398
- feat(encounters): combat log action provenance (#426) by @AwsomeFox in #1396
- fix(catch-up): upsert cursor row to avoid concurrent mark race (#549) by @AwsomeFox in #1390
- fix(encounters): hide AoE templates in unrevealed fog (#465) by @AwsomeFox in #1397
- feat(npcs): add portraitUrl support mirroring Character portraits by @AwsomeFox in #1401
- feat(comments): entity comments on all supported surfaces (#439) by @AwsomeFox in #1399
- feat(factions/locations): add portraitUrl support (#1324) by @AwsomeFox in #1404
- feat(encounters): immutability for ended encounter history (#470) by @AwsomeFox in #1412
- feat(vtt): scale tokens from grid footprints (#468) by @AwsomeFox in #1402
- feat(encounters): add list filter, search, and sort (#490) by @AwsomeFox in #1416
- feat(vtt): hex snapping distance and footprints (#467) by @AwsomeFox in #1409
- Docs: derive MCP tool-count from single source of truth by @AwsomeFox in #1415
- fix(e2e): stabilize discussion axe and character comment specs by @AwsomeFox in #1421
- feat(encounters): dock AI driver controls in encounter page (#427) by @AwsomeFox in #1408
- fix(backup): atomic restore with automatic rollback (#497) by @AwsomeFox in #1418
- fix(a11y): encounter map modes tabs and remove labels (#476) by @AwsomeFox in #1405
- fix(encounters): combat-log death events record actor attribution (#494) by @AwsomeFox in #1414
- fix(encounters): resolve link labels and add entity backlinks (#480) by @AwsomeFox in #1422
- feat(encounters): SSE stale-state indicator and guarded actions (#471) by @AwsomeFox in #1407
- feat(members): discoverable membership and data rights for players (#479) by @AwsomeFox in #1406
- fix(web): semantic error state for invalid shared recap links (#482) by @AwsomeFox in #1413
- feat(screen): render battle map on Player Display cast view by @AwsomeFox in #1420
- feat(ai): driver confirm-policy for destructive live-play tools (#474) by @AwsomeFox in #1423
- fix(test): include OIDC e2e in coverage report (#556) by @AwsomeFox in #1388
- fix(scribe): scope post-session automation to actual session (#499) by @AwsomeFox in #1419
- Encounters: player end turn, ready/delay, reactions MVP (#487) by @AwsomeFox in #1417
- feat(encounters): playable manual and compendium combatant actions (#425) by @AwsomeFox in #1400
- fix(vtt): hex ruler units and instructions (#477) by @AwsomeFox in #1403
- feat(vtt): fog editor undo erase and region editing (#472) by @AwsomeFox in #1411
- feat(encounters): aftermath workflow for loot XP and recap (#473) by @AwsomeFox in #1410
- fix(web): stop dashboard Home from staying on skeletons by @AwsomeFox in #1424
Full Changelog: v0.15.6...v0.15.7
Container image
docker pull ghcr.io/awsomefox/campfire:0.15.7