Repository navigation
v0.15.6
🚀 Key Highlights
- This release focuses on AI-driven campaign management, with new individual player modeling for the AI DM, proactive AI suggestions, and persistent campaign narration language.
- It also expands encounter and combat tools with AoE damage application, condition tracking, resource handling, battle map controls, and better combat turn behavior.
- Several major workflow and UX upgrades landed across storylines, character creation, navigation, handouts, notes, and notifications.
✨ New Features & Improvements
- AI DM enhancements: individual player modeling, proactive suggestions, and saved narration language.
- Storylines: markdown authoring for arcs/beats, reordering in the UI, and editable branch labels/target beats after creation.
- Encounters: legendary/lair action tracking, inline spell slots and character resources, AoE damage to all tokens, and battle map zoom/pan/fit/reset controls.
- Characters: guided creation, draft incomplete sheets, and separate Play vs. Build/Profile tabs.
- Navigation & UI: reorganized campaign nav into task groups, standardized breadcrumbs/return links, improved icon picker UX, and updated visual identity.
- Content and collaboration: paginated comments, paginated session history, better notification history, and full-size handout preview/download/print/PDF support.
- Preferences & localization: 12h/24h time format preference plus RTL direction and bidi isolation support.
🐛 Bug Fixes & Maintenance
- Fixed several data integrity and import/export issues, including preserving schedules, attendance, note anchors, and completing campaign clone previews.
- Improved combat flow by skipping dead/downed combatants, scrolling active combatants into view, and fixing turn advancement behavior.
- Fixed storyline and quest issues, including AI draft beats creating the wrong content type and restoring AI quest drafting from the Quests list.
- Added visibility, audit, and approval safeguards for notes, maps, proposals, secret reveals, and timeline deletions.
- Addressed pagination, loading, and performance work across history paths, timeline, comments, sessions, and encounter polling.
- Included smaller maintenance updates such as localization completeness fixes, MCP tool parity/tests, request correlation IDs, and a PF1e importer default URL fix.
Full Changelog
What's Changed
- fix: move XP progression thresholds into rule-system adapters (#441) by @AwsomeFox in #1303
- fix: paginate notification history and confirm mark all read (#550) by @AwsomeFox in #1293
- fix: complete campaign clone with manifest preview (#435) by @AwsomeFox in #1305
- fix: audit maps DM write actions (import, generate, attach) (#546) by @AwsomeFox in #1290
- fix: preserve schedules, attendance, and note anchors in export/import (#436) by @AwsomeFox in #1304
- feat: add individual player modeling to AI DM (#1045) by @AwsomeFox in #1299
- feat(storylines): arc/beat markdown authoring (#856) by @AwsomeFox in #1295
- feat: add proactive AI DM suggestions (#1044) by @AwsomeFox in #1300
- feat(settings): add responsive campaign settings navigation (#866) by @AwsomeFox in #1328
- feat(encounters): apply damage to all tokens in AoE template (#626) by @AwsomeFox in #1327
- fix(mobile): add live encounter shortcut to tab bar (#637) by @AwsomeFox in #1329
- fix(encounters): scroll active combatant into view on turn change (#636) by @AwsomeFox in #1330
- feat(preferences): add 12h/24h time format preference (#634) by @AwsomeFox in #1331
- fix(storylines): AI draft beat creates story beat not quest (#1307) by @AwsomeFox in #1335
- feat(storylines): reorder arcs and beats in UI (#1312) by @AwsomeFox in #1336
- feat(quests): restore Draft a quest with AI on Quests list by @AwsomeFox in #1345
- feat(sessions): paginate history and query upcoming directly (#612) by @AwsomeFox in #1342
- feat(i18n): RTL document direction and bidi isolation (#628) by @AwsomeFox in #1337
- feat(forms): protect unsaved work with draft restore (#641) by @AwsomeFox in #1332
- feat(comments): paginate by root thread (#609) by @AwsomeFox in #1341
- fix(encounters): skip dead/downed combatants on turn advance (#610) by @AwsomeFox in #1339
- perf(db): composite indexes for hot history paths (#617) by @AwsomeFox in #1338
- feat(nav): reorganize campaign nav into task groups (#643) by @AwsomeFox in #1349
- feat(web): standardize detail-page breadcrumbs and return links by @AwsomeFox in #1348
- feat(encounters): legendary and lair action tracking (#618) by @AwsomeFox in #1343
- feat(lists): bounded pagination for timeline (#615) by @AwsomeFox in #1340
- feat(ai): persist and apply campaign narration language (#635) by @AwsomeFox in #1334
- feat(characters): separate Play and Build/Profile sheet tabs by @AwsomeFox in #1350
- test(notes): stabilize thousands-row pagination e2e (#608) by @AwsomeFox in #1344
- fix(i18n): localization completeness (#629) by @AwsomeFox in #1351
- feat(web): consolidate Nocturne and cf-* into canonical density system by @AwsomeFox in #1360
- Visual identity: carry fantasy/campfire art direction into signed-in app by @AwsomeFox in #1356
- Icon picker UX: pin current choice, clarify categories, and avoid duplicate SVG announcements by @AwsomeFox in #1347
- feat(encounters): model condition sources, durations, saves, concentration, and expiry (#423) by @AwsomeFox in #1353
- feat(dice): roll result toast, apply shortcut, and BG-style dice animation (#1315, #1352) by @AwsomeFox in #1333
- fix(web): standardize skeleton loading states (Fixes #677) by @AwsomeFox in #1357
- feat(web): keyboard command layer (Fixes #672) by @AwsomeFox in #1359
- fix(timeline): confirmable recoverable event deletion (#693) by @AwsomeFox in #1369
- feat(encounters): inline spell slots & character resources (issue #422) by @AwsomeFox in #1354
- feat(mcp): expand tool parity for invites, trash, spell slots (#683) by @AwsomeFox in #1367
- feat(encounters): battle map zoom pan fit reset (#712) by @AwsomeFox in #1368
- feat(characters): guided creation and draft incomplete sheets (#719) by @AwsomeFox in #1364
- fix(web): unify control icons and brand mark (#678) by @AwsomeFox in #1361
- fix(notes): explicit audience selection for visibility (#689) by @AwsomeFox in #1370
- feat(trash): soft-delete factions, storylines, encounters (#701) by @AwsomeFox in #1365
- feat(server): add request correlation IDs (#684) by @AwsomeFox in #1363
- Dice log: support honest manual/physical roll entries by @AwsomeFox in #1358
- fix(web): confirm and preview secret reveals (#710) by @AwsomeFox in #1366
- fix(proposals): reject stale snapshots and atomic approval (#681) by @AwsomeFox in #1362
- fix: Rules: PF1e importer ships with a .example placeholder default URL — install fails out of the box (#555) by @AwsomeFox in #1374
- feat(handouts): full-size preview, download, print and PDF support (#671) by @AwsomeFox in #1372
- perf(encounters): pause polling while SSE connected and add afterId event cursor (#607) by @AwsomeFox in #1373
- test(mcp): assert additionalProperties:false across all tools (#567) by @AwsomeFox in #1376
- feat(inventory): soft-delete items with restore and trash (#551) by @AwsomeFox in #1375
- Update OPENROUTER_MODEL in release workflow by @AwsomeFox in #1389
- feat(storylines): edit branch label and target beat after creation (#1313) by @AwsomeFox in #1377
Full Changelog: v0.15.5...v0.15.6
Container image
docker pull ghcr.io/awsomefox/campfire:0.15.6