Changelog
What's new in The Forever DM, ordered latest first.
August 22, 2026
- Engine-resolved spell combat - save-based spells (Shatter, Fireball, Thunderwave, etc.) now have their saves and damage rolled by the game engine instead of the AI improvising. Enemy saves, damage, and HP changes are fully deterministic
- Attack-roll spells (Fire Bolt, Chromatic Orb, Guiding Bolt, etc.) now use your spell attack modifier and the spell's damage dice through the combat engine instead of being narrated freeform
- Cantrip scaling and upcast damage are now computed by the engine - casting Thunderwave at a higher slot or Fire Bolt at level 5+ rolls the correct number of dice automatically
- Combat token optimization - journal history, session summaries, world facts, side quest hooks, and visited locations are stripped from the AI prompt during combat turns, reducing input tokens and cost per fight
- Semantic wiki search and journal DB queries skipped during combat for faster response times
- Dice roller visual overhaul - roll animations now render via portal with a cleaner reveal for modifiers
- New Game+ backstory fallback - ported characters without journal entries now get a minimal backstory so the new DM still knows they're a returning adventurer
- Newsletter email support added for player communications
- Demo route added as a public page
- DM narrator no longer leaks mechanical reasoning (roll results, DCs, save outcomes) into the story text - dice and numbers stay in the UI where they belong
- Fixed resubscription bug where cancelled users couldn't re-subscribe to the same plan before their paid period ended, or where switching plans during a pending cancellation didn't clear the cancel flag
August 21, 2026
- Image CDN proxy - all wiki and NPC images now serve through Netlify's edge CDN with immutable cache headers, reducing Supabase storage egress by ~80-90%
- Landing page images moved to static assets - inventory item images no longer hit Supabase on every page load
- Wiki-images API now accepts a slugs filter so the play session only fetches missing images instead of the full set each turn
- Thumbnail generation added to campaign ingest and item image scripts - 128px thumbnails uploaded alongside full images for portrait use
- Fixed NPC portraits overwriting wiki cover images with placeholders - NPCs created before their wiki page was approved now correctly display the wiki image
- Wiki NPC resolution expanded to match pages across all categories, not just NPC-typed pages
August 20, 2026
- Fixed NPC portrait bug where unknown-race NPCs could randomly get animal portraits (rat, beast) instead of humanoid ones - the fallback now only picks from humanoid races (BUG-44)
- Turn usage meter added to the play session topbar - shows a progress bar of monthly turns used and your cycle reset date
August 19, 2026
- New Game+ - when you complete the main quest, port your character (stats, inventory, spells, level) into a new campaign world. Your journal is compressed into a backstory that the DM weaves into the opening narration of your next adventure
- Quest completion detection - the DM narrator now recognizes when the central conflict is resolved and marks the campaign as complete with a satisfying epilogue
- Campaign list shows a purple "Quest Complete" badge and a "New Game+" button for eligible campaigns
- Fixed bug where hitting the monthly turn or token limit showed a generic "something went wrong" instead of the actual limit message (BUG-45)
- Fixed phantom combat enemies spawning from malformed AI tags like [COMBAT:START] - combat slugs are now validated against the wiki before spawning
- Scroll behavior improved - new DM messages scroll to show the start of the message instead of jumping to the bottom
August 18, 2026
- Fixed NPC memory loss where the AI would forget prior encounters with named NPCs, re-introducing them as strangers (BUG-42, BUG-43)
- World facts (NPC roles, locations, relationships) now persist reliably on every turn instead of being silently dropped in serverless environments
- Journal summary expanded from 300 to 600-800 words with a dedicated NPC encounters section so long-running campaigns retain character history
- Backfill script recovers lost NPC facts from existing campaign turn history
August 16, 2026
- API cost optimization: journal context for long campaigns reduced from ~54k tokens to ~4k tokens per turn via rolling summaries (Claude Haiku generates a compressed campaign summary every 25 turns)
- Token usage tracking now accurately reports cumulative cost across tool-use iterations instead of only the final API call
- User subscription tier badges shown on Bug Hunter Leaderboard entries and individual bug report rows
- Bug Hunter Leaderboard names are now clickable to filter bug reports by that user, and each entry shows the user's email
- Fixed dead creatures continuing to fight - the DM narrator now receives a live combat state showing which enemies are alive, and the damage tool blocks damage from dead enemies
- Fixed campaign creation form confusion causing players to swap character name and campaign title - character name now comes first with helper text clarifying the campaign title field
- Admin bug reports mobile layout reworked - titles now display in full on their own line instead of being truncated
- Gribbit's Agency wiki audit - filled race/gender/role on all 14 NPCs, location types on all 7 locations, CR/HP/AC on both bestiary entries, type/rarity on all 7 items, quest giver on main quest
- Gribbit's Agency wiki expanded with 5 new pages: The Artificer Cult (lore), The Search for Meer (main quest), The Beggar Court (location), The Great Fire (lore), Waterdeep (setting)
- Gribbit's Agency cover images backfilled - generated 4 missing item/overview images, synced 28 existing images to the cover_image column
August 15, 2026
- Delete campaign button now visible on mobile (previously only showed on desktop hover)
- Wildemount: Dark Star wiki audit - fixed metadata, expanded NPC pages, added quest pages, corrected item images and slugs
- Chalice of the Mountain God wiki audit - added race/role to all NPCs, CR to all bestiary, location types to all 20 locations, backfilled 7 missing cover images
August 13, 2026
- Fixed death saves being skipped - the DM could fabricate a final failure and kill the character before the engine confirmed 3 failures
- Fixed campaigns getting stuck after a failed narration - orphaned turns are now cleaned up automatically
- Fixed equip/unequip commands being silently ignored when the DM also used engine tools on the same turn
- Fixed NPC portraits not updating when their race or gender is revealed later in the campaign
- Fixed inventory removal failing when item names didn't exactly match
- Fixed duplicate quest reward bug - gold tags are now deduplicated per response, and completed quests can no longer re-award gold on subsequent turns
- Fixed DM journal conflating document contents with separately acquired items, corrupting long-term campaign memory
- Campaign usage pie chart on admin wikis page showing per-wiki breakdown of campaigns and turns played
August 10, 2026
- Gift turns - admins can grant bonus turns to any player for the current billing cycle, with an optional reason that displays in a themed modal on their next visit
- Campaign journal injected as long-term DM memory so the narrator no longer forgets major plot events from earlier turns
- Admin bug reports now link directly to the campaign chat log, anchored to the exact turn the bug was reported on
- Bestiary images render inline when combat starts, so you see what you're fighting
- Location images no longer repeat in consecutive messages when revisiting the same area
- Fixed spell casting producing three DM messages instead of two - damage rolls are now pre-computed server-side so only the dice animation plays, no extra API call
- Dice roll modifiers from breakdowns (e.g. WIS +3, Prof +2) are now summed and applied to the roll automatically
- Fixed roll breakdown display showing pipes instead of commas between modifier sections
- Fixed purse not updating when gaining or spending gold - the DM now properly tracks currency changes
- Items consumed, sold, or destroyed are now removed from inventory automatically
- Cancelled subscribers keep premium access until their paid period ends, then drop to the free tier
- Admin user growth chart split into separate free/adventurer/hero tier lines
- Tier breakdown stat cards on the admin users page (excludes admins and alpha testers)
- Discord DM notifications for new subscriptions and plan upgrades
- Fixed hallucinated NPC slugs by matching against the wiki before rendering portraits
August 9, 2026
- NPC portrait system reworked - portraits now resolve from wiki pages at creation time, so NPCs always match their campaign art
- Wiki NPC index injected into the DM prompt so the narrator knows every NPC by name and never invents duplicates
- Fixed combat ordering bug where the DM would narrate a kill before the dice roll resolved, then contradict itself when the roll was a miss
- Server-side guard now strips any narrative the DM writes after an unresolved dice roll, preventing pre-narrated outcomes
- Fixed NPC dialogue boxes showing the same character for two different NPCs speaking in the same turn
- Fixed NPC portraits falling back to generic placeholders instead of using wiki page images
- Fixed stale NPC portraits being cached in the browser after portrait updates
- Half-elf NPCs now have dedicated portraits (16 images, 8 per gender)
- 254 new NPC portraits added across all 24 race/gender types with 8 unique variants each
- Regenerated 130 existing NPC portraits with stronger racial characteristics
- Support email link added to site footers
- Automated daily reengagement emails for inactive players
- Fixed NPC name drift where the AI would rename NPCs mid-conversation
August 8, 2026
- Admin NPC Types page - browse and manage all NPC race/gender portrait combinations from a single dashboard
- Unknown NPC races are auto-tracked when the narrator creates them, so missing portraits are easy to find and generate
August 7, 2026
- NPC portraits for 8 new creature types - pixies, satyrs, dryads, minotaurs, ogres, trolls, skeletons, and vampires now get proper portraits instead of random fallbacks
- Annual billing option added to Adventurer and Hero tiers with 15% savings
- Upgrade nudge modal appears at 20/25 turns for free-tier players
- NPC names, race, and gender are now locked on first appearance and never change - fixes NPCs getting renamed by the AI on subsequent turns
- Pricing page now shows "Current Plan" on the free tier card when you're signed in on the free plan
- NPC portraits for 8 enemy races - goblins, kobolds, orcs, hobgoblins, bugbears, drow, gnolls, and lizardfolk now get their own unique portraits instead of borrowing from other races
- Fixed skill checks not getting narrated results after the dice roll
- Free tier now plays The Dragon Prince campaign with 25 turns per month - all other campaigns require a subscription
- Landing page hero now cycles through four tabs: Chat Log, Spells, Abilities, and Inventory with actual item images
- New plasma background effect on the landing page and terminal hero
- Pricing page updated to reflect access to all campaigns for paid tiers
- NPC portraits are now permanently locked on first appearance and never change, even if the narrator describes them differently later
- NPCs with wiki page portraits now always use their custom image instead of a generic placeholder
- Feedback tab added to the bug report modal - share improvement ideas and feature suggestions, not just bugs
- Admin campaign view is now mobile-friendly with a collapsible character sheet
- Item images now show in the admin campaign view inventory sidebar
- Generated images for all remaining global items (66 new item illustrations)
- NPC tag debug info visible in admin campaign log dialogue cards
- Campaign drift wall shows one column on mobile for better readability
- Campaign cards now expand their full description on click instead of navigating away
August 6, 2026
- "Report broken" link on inventory item cards now opens the bug report modal instead of silently failing
- Equipment slots - equip and unequip weapons, shields, and armor from your inventory with slot enforcement and dual-wield support
- Admin campaign view now shows the character HUD (stats, inventory, spells) alongside the chat log
- Welcome message for first-time players explains early access status and how to report bugs
- NPC portraits no longer change when the DM adds a last name mid-conversation
- Drow and dark elf NPCs now show proper elf-based portraits instead of random ones
- Campaign drift wall on the landing page replaces the old horizontal carousel
- Hovering a drift wall tile now expands to show the full campaign description
- NPC continuation dialogue now gets the styled card and portrait treatment instead of plain text
- NPC portraits stay consistent within a conversation even when the DM gives conflicting details
- Turns per day chart on admin users page for tracking engagement over time
- NPCs with wiki portraits now use their custom image instead of a generic placeholder
- NPC dialogue box with portrait now shows in admin campaign log view
- User tier badge visible on mobile in admin users list
August 5, 2026
- How to Play page - new guide accessible from the main navigation
- Keyword search in the wiki editor sidebar for faster page lookup
- Fixed dice roll narration so server-rolled results properly continue the story
August 4, 2026
- Prompt caching - wiki context and character identity are now cached across turns, cutting token costs significantly
- Smarter rules lookups - consolidated from 8 tools to 4 with leaner output, reducing overhead per turn
- Magic Rings WebGL effect plays behind the dice rolling animation
- Starting inventory items now display their images from the first turn
- Paladin and Ranger can now complete character creation at level 1 without getting stuck on spell selection
- DM pacing improved - no more instant combat after accepting a quest
- Fixed action suggestion buttons merging into a single button
- Fixed NPC dialogue tags showing as raw text in certain cases
- Admin debug panel added to DM narration messages for troubleshooting
July 22, 2026
- XP progress bar - see how close you are to your next level right in the HUD
- Healing potions and spells now actually restore HP instead of just showing a dice roll
- XP awards from exploration, discoveries, and NPC rewards now apply to your character
- Ability check modifiers are now accurate - no more Strength checks using the wrong stat
- NPC dialogue always shows with the correct portrait and name tag
- Hidden traps and secrets stay hidden until your character discovers them
- Bug report screenshots no longer show the previous report's image
- Bug report screenshots no longer include the dark overlay
July 21, 2026
- Automatic XP awards - earn experience from combat victories and quest completions, no more manual tracking
- Auto level-up - characters level up when XP hits D&D 5e thresholds, with HP and proficiency bonus applied automatically
- One-shot protection - traps, ambushes, and narrative events can no longer instantly kill your character. You always get a chance to react
- Free Commoner tier - play one campaign for free with no subscription required
- Fixed horizontal scrolling on mobile for campaigns page and campaign creation
- Social sharing previews now show proper banner image and metadata
- Fixed spell selections from character creation not carrying over to new campaigns
- Disposable email addresses blocked from signup to prevent abuse
July 19, 2026
- Fixed combat narration declaring hits/misses before the dice roll animation plays
- DM no longer suggests using items the character doesn't have in their inventory
- Death saving throws - characters now go unconscious at 0 HP with D&D 5e death saves instead of instant death
- Combat narration accuracy - DM no longer pre-narrates outcomes before dice animations or invents damage/healing numbers
- Enemy attacks resolved by the engine - no more rolling dice for enemy turns
- Currency displays full denomination names (gold, silver, copper) for clarity
- Fixed character name/portrait drifting when AI referenced the player as an NPC
- Fixed bug report submission failing on large screenshot payloads
- Text-to-speech narration - toggle in the play session header to have the DM read aloud
- Currency denominations - gold, silver, and copper tracked separately with proper D&D conversion rates
- Opening turn now loads full wiki context so campaigns start true to the source material
- Lore pages always included in DM context for better world grounding
- Fixed spellcaster campaign creation failing due to missing database columns
- Fixed spell selections from character creation not being applied to new campaigns
- Fixed REST tags showing as raw text in DM narration
July 17, 2026
- Spell icons and expanded concentration labels on spell modals
- Explicit spell casting action with optimistic slot updates
- Fixed malformed ROLL tags rendering as raw text
- Fixed DM-narrated rest tags not triggering the rest results modal
- Fixed ROLL tag parser eating pre-computed results as breakdown text
- DM now narrates hit/miss definitively instead of conditional hedging
- Roll pauses and action buttons preserved on page reload
- Body scroll locked on play page to eliminate double scrollbar
- Action options hidden while player response is being processed
July 16, 2026
- 50 diverse NPC portraits added to the portrait picker pool
- NPC portraits now embed race and gender in tags for accurate matching
- Fixed mobile horizontal overflow on campaign slider
- Fixed false positive injection detection for normal D&D player actions
- Unique barkskin icon and 33 duplicate spell icons remapped
July 15, 2026
- Level-up spell management for known casters (Bard, Sorcerer, Warlock, Ranger)
- Spell selection step during character creation
- Spell preparation modal for prepared casters (Cleric, Druid, Paladin, Wizard)
- Changelog page linked from footer
July 14, 2026
- Clickable action suggestion buttons sent automatically by the DM
- Spell upcasting - pick a higher spell slot when casting
- Skill proficiency icons on the character sheet
- Wider DM narration column and larger text for readability
- Fixed starting HP calculation for new characters
- Fixed solo encounter scaling so fights aren't impossibly hard
- Fixed DM stalling, repeated ability checks, and classifier false positives
- Fixed skill modifier calculations, turn order, and combat tracking
July 12, 2026
- Bug reporting system - submit issues directly from a play session
- Hit dice rest modal for short rest healing
- Critical fail fumble damage on natural 1s
- Resting tutorial page
- Long rest healing detection improvements
- Security hardening for public launch
- Theme toggle moved to settings page
July 10, 2026
- Wiki cover images and descriptions auto-generated during campaign ingest
- Race and class character portraits
- Dice preference settings with elemental effects
- Ingest pipeline defaults items to campaign scope
- Fixed opening narration firing wrong response type
July 9, 2026
- Elemental dice effects with dual-layer particles and scene lighting
- Dice color picker in debug bar
- Retro terminal loading animation for page transitions
- Alpha tester tier auto-granted on signup for allowlisted users
- Pricing cards now show turns per month instead of raw tokens
- Spell list enforcement in DM rules
July 8, 2026
- Prorated subscription upgrades
- Email workflows via Resend with theforeverdm.app domain
- Author credit on campaign wiki listings
- Tier artwork on pricing cards
- Ken Burns pan/zoom on campaign slider images
- New wizard/orb logo and favicon
July 7, 2026
- Mobile hamburger nav menu
- Retro terminal boot hero on the landing page
- Campaign slider and pricing CTA on home page
- Rebranded from Quest Forge to The Forever DM
- Custom domain: theforeverdm.app
- Dark-themed Clerk auth modals
- Row-level security on global items, NPCs, and usage tables
- Wiki location images in narrator messages
- Subscription gating - non-subscribed users redirected to pricing
July 6, 2026
- 1987 retro CRT terminal theme
- Tutorial modal accessible from every page
- Impersonation mode for admin debugging
- Custom error pages
- Inactive tier blocked with in-character re-subscribe prompt
- RLS policies for public launch security
- Billing integration and legal pages (terms, privacy, content policy)
July 5, 2026
- Character graveyard for fallen heroes
- Character death as a campaign-ending event
- Admin security dashboard with event review
- Pricing page for anonymous visitors
- Character gender and pronouns in DM narration
- NPC dialogue attribution for untagged lines
July 4, 2026
- Correct die icons (d4/d6/d8/d10/d12/d20) on roll cards
- Dice roll results with octagonal indicator
- Token cost reduction (3 optimizations)
- Cache token tracking for accurate billing
- Campaign world cards and NPC portraits
- DB-backed user allowlist and admin onboarding
- Subclass icons for all D&D class choices
- DM spell-slot and prepared-spell awareness