Changelog
What’s new in Tulpa. See also the roadmap.
v2.5.1
March 16, 2026
1 bug fix
- Fix: modals — remove duplicate closePublicProfile that used wrong CSS class
v2.5.0
March 16, 2026
Diablo II style split-pane trade screen with 3-step negotiation
- trade — Diablo II style split-pane trade screen with 3-step negotiation
- Fix: engine — remove truncation marker text and strengthen completion prompts
v2.4.0
March 16, 2026
add Web Push notification system & 4 more features
- notifications — add Web Push notification system
- trade — add secure player-to-player trading system
- engine — integrate scenario seeding from world state
- mobile — add hamburger nav, comprehensive responsive breakpoints, and touch optimization
- inventory — overhaul modal with fancy tabs, count badges, and consistent sizing
- Fix: security — use tojson filter for town square character name map
- Fix: security — harden avatar path traversal, registration info leak, and XSS
v2.3.2
March 9, 2026
2 bug fixes
- Fix: db — resolve MissingGreenlet on character sheet and town square
- Fix: shop — resolve undefined daily reward toast and add premium currency metagame terms
v2.3.2
March 9, 2026
1 bug fix
- Fix: shop — resolve undefined daily reward toast and add premium currency metagame terms
v2.3.1
March 9, 2026
1 bug fix
- Fix: nav — prevent gamepad icon fallback when DB session is dirty
v2.3.0
March 9, 2026
add slot-swap modal when all equip slots are full & 1 more features
- home-base — add slot-swap modal when all equip slots are full
- home-base — add background art to currency cards (shop-style)
- Fix: security — harden auth rate limits, XSS filters, and deploy config
- Fix: landing — correct resource-energy.webp image path
- Fix: wheel — allow landing on already-won slices for duplicate stacking
- Fix: wheel — redesign spin/reroll buttons as sleek horizontal bar
- add post-work checklist for safe multi-instance releases
v2.2.1
March 8, 2026
3 bug fixes
- Fix: wheel — center spin/reroll buttons over wheel canvas
- Fix: wheel — use integer turn count to fix slice alignment + add debug logging
- Fix: assets — use quality=auto for ImageRouter API compatibility
- expand agent workflow in quick-start with step-by-step guide
v2.2.0
March 9, 2026
add favicon generation from logo source & 2 more features
- assets — add favicon generation from logo source
- assets — add generic batch image generation pipeline
- metagame — add reg_closed_splash_path branding key
- Fix: auth — fix waitlist button dark-mode styling and add reg-closed splash
v2.1.0
March 8, 2026
Spells & Abilities — Full Magic System
- Spellbook system — characters can learn, equip, and cast spells with stat requirements (INT, WIS, level)
- Spell hotbar — equip up to 4 spells for quick casting from the character sheet
- Energy cost and cooldown mechanics — each spell drains energy and enters cooldown after use
- Spell effects — healing (energy restore) and stat buff spells that create timed active buffs
- Narrator integration — equipped spells appear in the narrator’s context, informing combat and exploration
- Engine pipeline — new [SPELL_CAST] tag parsing tracks spell usage in gameplay narratives
- Spellbook modal — browse all spells, see requirement status, learn/equip/unequip from one place
- Factory updated — spell creator now includes cooldown duration field
- Feature branch workflow — merge_feature.sh script for cross-server development
v2.0.0
March 8, 2026
XRPG Engine — Portable Text RPG Baseline
- Engine rebranded as XRPG Engine — a portable text RPG framework for multi-instance deployment
- Instance-specific branding (splash art, favicons, web manifest, metadata) separated from engine code
- Smoke test script for deployment validation — checks Python, dependencies, modules, config, database, directories, and HTTP endpoints
- Full backup tooling with remote server transfer for safe data migration
- Documentation updated with instance setup guide and portability instructions
- Campaign content directory now instance-specific (gitignored)
v1.8.1
March 8, 2026
Spirit Wheel Fixes — Smooth Spin, Floating Controls & Rarity Bumpers
- Fixed spin animation “jump” — wheel now lands smoothly without snapping to a different angle
- Eliminated 404 console spam from three missing currency card background images
- Spin and Re-roll controls now float above the wheel as a semi-transparent overlay with frosted glass backdrop
- Controls fade out during spin and fade back in after collecting your prize
- Each wheel slice now shows a rarity-colored glow strip on its outer edge as a visual bumper
v1.8.0
March 8, 2026
UI Polish Sprint — Art-Backed Cards & Light Mode Fix
- Light mode art visibility fixed across all pages — card backgrounds now use higher opacity and cool-blue hue shift
- Character creation wizard overhauled: honorifics and body types upgraded from plain pills to art-backed icon cards
- Race, class, and religion cards now feature atmospheric background art per option
- Random Soul button redesigned with premium Cinzel typography, art backdrop, and glow animation
- Review step stat cells now show per-stat art backgrounds (strength fire, dexterity wind, etc.)
- Shop “Current Tier” badge redesigned with frosted glass overlay, art layer, and ACTIVE corner ribbon
- Home Base currency bar replaced with premium 3-column card grid featuring animated icon circles
- Soul Energy icon pulses with flame animation, Spins icon wobbles, Crystals icon shimmers
- 45 new art assets added to generation script: races, classes, religions, body types, honorifics, and home base currency
- Image generation requires ImageRouter API key in Admin > Config (no code fix for 503 errors)
v1.7.0
March 7, 2026
Spirit Wheel & Home Base Visual Overhaul
- Spirit Wheel rewritten: background images now correctly match their slice labels (fixed 90° coordinate offset bug)
- Wheel reduced to 4 slices for clearer prize visibility
- Background images positioned with direct trigonometry instead of canvas rotation
- Circular spirit portraits with rarity-colored borders on each slice
- Winning slice highlighted with bright rarity-colored glow after spin
- Win modal redesigned as factory-style 3D card with spin animation and particle effects
- Rare Spirits Showcase: 3D card flip transitions with Vanilla Tilt, ghost effects, and pulsing rarity glow
- Won items now dimmed but still visible (not invisible)
- Home Base data loading now retries on server errors
- Per-slice error isolation prevents one bad slice from breaking the wheel
v1.6.0
March 7, 2026
Battle Arena Visual Overhaul & Town Square Enhancement
- Battle modal redesigned with hero banner, 3D perspective victory/defeat banners, and generated arena artwork
- Victory banner features golden glow animation with laurel crown imagery
- Defeat banner shows dramatic ashes artwork with pulsing red atmosphere
- Rewards section enhanced with treasure chest background art
- Arena close button upgraded to a styled "Leave Arena" action bar with portal art
- PvP challenge confirmation now uses a decorated modal with VS screen, combatant avatars, and arena backdrop instead of browser confirm()
- Town Square player cards show campaign background images, equipped item thumbnails with rarity borders, and race/class identity
- Public profile modal gets campaign hero banner, enlarged avatars, and race/class/campaign badges
- Profile Send Message and Inbox buttons upgraded to enhanced styled buttons with background art
- Challenge to Battle button features forge-glow backdrop and gradient hover effects
- Inbox conversations now display partner character avatars, level badges, and race/class info
- PvP chronicler polling extended to 15 attempts with friendlier fallback message
- PvP error handling improved: silent exception logging, user-friendly error messages
v1.5.1
March 7, 2026
UI Polish & Identity Portraits
- Character portrait generation now uses full identity (race, class, body type, religion) for richer results
- Save Identity now offers instant portrait regeneration after saving
- Save Identity error handling improved with specific messages for timeouts, session expiry, and rate limits
- Account page buttons upgraded with enhanced styling (Save, Remove, Add Passkey)
- Shop buttons enhanced with glass effects, 3D depth, and background art
- Subscribe, Buy, and Claim Daily Reward buttons now feature subtle pulse animations
- Current Tier badge gets a glowing animation
- Inbox messages now show player avatars inline with chat-bubble styling
- Past campaign history cards now display campaign background images
- New CSS components: glass buttons, save/danger button variants, enhanced inventory tabs, message bubbles
v1.5.0
March 7, 2026
Launch Readiness: Security, Player Cap & Tier Control
- Stripe payment endpoints hardened with rate limiting (checkout, cancel, balance)
- Player registration cap with configurable max players and mailing list gate
- Player-controlled model tiers: own-key users choose Free/Mid/Pro for text and image
- Service Keys "Tell Me More" modal explaining encryption, bonuses, and tier control
- Shop "Current" tier button redesigned with styled badge
- Admin image log thumbnail 404 fix with fallback handler
- Admin dashboard: Max Players config, colored tier dot indicators
- v1.1–v1.3 progress tracker audit and verification
v1.4.0
March 7, 2026
Polish, Fabrication & Battle Unification
- Home Base nav link with auto-redirect to active character
- Character Sheet now shows equipped Tulpas with growth boost summary
- Town Square cards display equipped Tulpa icons with rarity-colored borders
- Batch Tulpa generation: admin can LLM-generate themed batches of Tulpa templates
- Tulpa image generation endpoint for admin Factory
- Location fabrication: narrator can create new connected locations on-the-fly via [NEW_LOCATION] tag
- Fabricated locations auto-spawn enemies in non-safe areas
- Unified battle modal: shared component used by both PvP Arena and PvE combat
- PvE combat encounters now show animated battle modal with HP bars and rounds
- Player defeat displays red-themed defeat modal with penalty breakdown
- Battle modal extracted into reusable include (battle_modal.html + battle-modal.js)
v1.3.0
March 7, 2026
Tulpa Home Base & Gacha Wheel
- Tulpa Home Base: equip powerful spirits trapped in household objects for stat growth multipliers and passive bonuses
- Spinning gacha wheel with canvas animation — 8 slices, server-side resolution, rarity-weighted drops
- 5 rarity tiers from hilariously lame commons (“Regular Couch”) to legendary artifacts (“The Void’s End Table”)
- Merge system: combine 5 duplicate Tulpas to level up (max level 5 “Full Possession”)
- Set bonuses: collect matching pieces (Tal Rasha, Hearthstone) for growth multipliers
- Home Base slots: start with 3, unlock more at levels 5 and 10, or purchase extras
- Tulpa growth boosts multiply stat gains during gameplay — stacks with identity growth mods
- Tulpa passive stats included in Power Level calculation (weighted 1.5x)
- Level-up stat bonuses now factor in Tulpa growth boosts
- Pity system: soft pity at 50 spins, hard pity at 100, legendary guarantee at 200
- 30+ seed Tulpa templates including 10 lame commons, 2 themed sets, and standalone pieces
- Tulpas tab in Factory with CRUD, seed button, and set management
- 7 new achievements: Home Sweet Home, Interior Decorator, Collector, Spirit Binder, Full Possession, Set Collector, Lucky Spin
- Wheel costs 1 Soul Point (1,000 Soul Energy) per spin, reroll costs 500 SE or 50 crystals
v1.2.0
March 7, 2026
Stripe Integration & Premium Currency
- Stripe payment integration for subscriptions and one-time purchases
- 4 subscription tiers: Free, Adventurer ($4.99), Hero ($9.99), Legend ($19.99) with model access, token limits, and energy regen bonuses
- Crystal premium currency: 5 purchase tiers from $0.99 to $49.99 with first-purchase 2x bonus
- Monthly Card: $4.99 for 30 days of 60 crystals/day (1,800 total value)
- Crystal Shop: spend crystals on energy potions, gold packs, character passes, wheel tokens, and wheel refreshes
- Soul Energy free gacha currency earned through gameplay (chat, PvP, level-ups, achievements)
- Daily login rewards with streak bonuses at days 7, 14, and 30
- Soul Point conversion: 1,000 Soul Energy = 1 Soul Point = 1 wheel spin
- Daily Soul Energy cap of 1,500 from free play
- Payments tab in admin dashboard: Stripe key management, price ID configuration, diagnostics
- Shop page with subscription management, crystal packages, and item shop
- Webhook-based payment processing with signature verification
- All Stripe keys encrypted in database (same Fernet pattern as OpenRouter)
v1.1.0
March 7, 2026
Security Audit, Hardening & Refactor
- Security audit: auth error messages replaced with generic responses to prevent information leakage
- Path traversal protection on avatar deletion with
is_relative_to()validation - Systemd service hardened:
ProtectSystem=strict,NoNewPrivileges=true,PrivateTmp=true, restricted write paths - Journal log rotation configured: 500MB max, 30-day retention
- N+1 query fix on character sheet — eager-loads item templates with
selectinload - N+1 query fix on Town Square — eager-loads equipped item templates
- Game engine refactored:
process_player_message()split into 6 focused sub-functions - Backup system enhanced: schema-only dumps, 30 data + 10 schema backup retention
- Backup cron wrapper for automated 6-hour backup scheduling
- Schema dump automation:
just schema-dumprecipe, auto-dump on deploy - Security audit findings documented in
docs/security-audit.md - Backup strategy documented in
docs/backup-strategy.md
v1.0.0
March 7, 2026
Character Identity & Destiny
- Character identity system: pronouns, honorifics, body type, race, class, and religion — each with presets and custom options
- Multi-step character creation wizard with 5 themed steps (Name, Identity, Heritage, Faith, Backstory)
- "Give me a Random Soul" button — generates a coherent identity via the narrator
- AI-generated character summaries: the narrator knows your race, class, and pronouns
- Stat scaling based on identity — race/class choices influence base stats and growth rates
- Destiny card on character sheet shows your stat profile with a narrative explanation
- Identity editing on character sheet with rate limiting (3 changes per day)
- Narrator uses correct pronouns and character summaries in all game sessions
- PvP battle chronicles reference character identity, race, and class
- Growth modifiers affect stat gains from gameplay actions and level-ups
- History text area for character background (1500 characters)
- Existing characters unaffected — all identity fields are optional
v0.9.1
March 6, 2026
PvP Battle Experience Overhaul
- Dramatic animated battle reveal: phased VS screen with avatars, staggered round-by-round display, and slam-in result banner
- Dice visualization on every round — colored badges showing roll number and band (Critical Hit!, Glancing Blow, LEGENDARY Strike!, etc.)
- Enhanced HP bars: 10px tall with numeric HP text, color shifts from green to orange to red as health drops
- Separated achievements: only your own earned achievements display after battle, not your opponent's
- Richer battle chronicles: 3-5 paragraph narratives referencing combatant backgrounds, equipment, fighting styles, and key moments
- Summary polling: "The chronicler is recording..." placeholder with automatic refresh until the chronicle arrives
- Character sheet arena history now lazy-loads full battle detail on expand with dice badges, hit labels, and HP bars
- Avatars shown on VS screen in battle modal with accent-bordered circular frames
- Combatant character profiles (bio, stats, equipment, titles) sent to the chronicle writer for richer narratives
v0.9.0
March 6, 2026
PvP Arena, Power Level & Expanded Achievements
- PvP Arena: challenge other players from Town Square — instant multi-round battles with simultaneous attacks
- Power Level: composite meta-stat combining all stats, equipment, buffs, titles, and level progression
- Power level badges shown on Town Square cards, character sheets, play session HUD, and profile modals
- Battle engine: up to 10 rounds of simultaneous combat using scene scoring for hit variance
- Battle rewards: winners and losers both earn XP, gold, and stat bonuses — underdogs get extra XP
- Battle chronicles: each fight generates a narrative summary written by the realm's chronicler
- Challenge safeguards: 500 energy cost, 10-minute cooldown, 6/day limit, level gap protection
- Win probability display before challenging — know your odds
- Arena Record section on character sheet: W/L/D stats, win streak, battle history with round-by-round details
- Battle result modal with round-by-round HP bars, damage, rewards, and achievement notifications
- 10 new PvP achievements: Arena Initiate, First Victory, Giant Slayer, Iron Defender, and more
- 6 new progression achievements: Wordsmith, Chronicler, Penny Pincher, Moneybags, Dragon's Hoard
- Token milestone tracking: achievement triggers fire when cumulative narrative tokens hit thresholds
- Gold milestone tracking: achievement triggers fire when gold accumulates past thresholds
- New PvP titles with stat bonuses: Gladiator, Victor, Arena Veteran, Arena Legend, Giant Slayer, Iron Wall
- New progression titles: Wordsmith, Chronicler, Merchant Prince, Dragon's Hoard
v0.8.0
March 6, 2026
Combat & Encounters
- Enemy NPCs at locations are injected into narrator context — the narrator now knows what monsters lurk nearby
- Combat advantage system: stat-weighted comparison factors your gear, level, and stats against the enemy
- Enemy defeat rewards: XP bonus, gold, and loot table rolls when you slay a foe
- NPC loot tables: each enemy can drop typed and raritied items based on configured drop chances
- Enemy fabrication: non-town locations without enemies automatically spawn thematic foes via the narrator engine
- Equipment stats now factor into combat advantage calculations
- Defeat mechanics: losing a fight zeroes energy, costs 15% gold, and triggers a recovery state
- Recovery state clears after one turn with narrative context for the narrator
- Enemy defeated badges in chat show skull icon, name, level, XP and gold earned
- Player defeat banner shows lost gold and energy depletion
- Combat XP bonus displayed in narrator message footer
- Session tracks defeated enemies to prevent re-fighting cleared foes
v0.7.0
March 6, 2026
Help Chat, Direct Messaging, Gold Drops & Engine Hardening
- Game Guide help chat accessible from every page — get tips and rules without leaving your session
- Player-to-player direct messaging with inbox, unread badges, and blocking
- Quick message button on Town Square character profiles
- Gold drops from gameplay scaled by action type, scene score, and character level
- Deterministic loot pool for common and uncommon items (no extra generation calls)
- Input validation: prompt injection detection, god-mode blocking, gibberish filtering
- Narrator now presents 2–3 action choices after each response
- Token limits rebalanced (800/1200/1800 by tier)
- Backstory context limited to first 2 turns with a 4-exchange history window
v0.6.9
March 5, 2026
Town Square Overhaul, Titles & Leveling Rewards
- Town Square now shows calculated stats (base + equipment + buffs + title bonuses) instead of raw base values
- Clickable character cards open a public profile modal with full stats, XP progress, and equipped items
- XP progress bars added to town square, character sheet, and play session HUD
- Title adorning system: equip earned titles for passive stat boosts shown on character sheet and stat grid
- Level-up stat rewards: stats now grow on level up based on your build direction (+2.1 total distributed)
- Title achievements for all levels 1–10 (Newcomer, Apprentice, Initiate, Journeyman, Seasoned, Adept, Expert, Master, Champion, Veteran)
- Image generation costs now captured from model pricing when not returned in API response
v0.6.8
March 5, 2026
Avatar on Creation, Town Square & Social Roadmap
- Avatar upload and generation now available during character creation — drag-and-drop or generate a portrait before your character enters the world
- Town Square page: browse the 100 most recently active characters with stats, titles, and campaign status
- Preview avatar endpoint generates portraits without needing a character ID first
- Castle icon in nav bar links to the Town Square for quick access
- Social & Community section added to the roadmap with planned direct messaging features
v0.6.7
March 5, 2026
Ring Slots, Live Feedback & Icon Safety
- Ring equipping now uses the empty slot: if ring_1 is occupied and ring_2 is free, new rings go to ring_2
- Equip/unequip from inventory modal now shows success/error feedback and switches to Equipment tab
- Invalid Lucide icon names (from LLM fabrication) are now caught at render time — falls back to generic icon
- Fixed stored “ring” icon references in activity logs and chat history
- Fabricator icon whitelist now validates icons before saving to prevent future invalid references
- Buff stat bonuses now display on character sheet with purple indicators
- Consumable use shows energy gained and buff details in feedback alert
- Energy overflow glow now pulses on the bar itself instead of the container
v0.6.6
March 5, 2026
Item Fabrication Fix & FLUX Default
- Fixed fabricated items being unusable: items with stats now always get an equip slot assigned
- Improved fabricator prompt: removed misc/spell_scroll types, LLM must assign a slot for every equippable item
- Post-processing normalization: infers slot from item name keywords (torch → offhand, shard → necklace, etc.)
- Consumables with energy restore can now be used regardless of item type classification
- Equip slot shown on inventory cards, item popups, and character sheet everywhere
- Switched default image model from SDXL Turbo (broken) to FLUX 1 Schnell
- Scene score fate roll badge now visible on narrator messages during gameplay
- Item images use contain-fit instead of cover-crop — full artwork shown without clipping
v0.6.5
March 5, 2026
Image Generation Overhaul
- Super admin image generation: 5-second cooldown (down from 30s) and 200/day limit
- Model tier selector for super admins: choose Free, Standard, or Premium illustration engines
- Multi-model fallback: if a model fails, silently tries up to 4 alternatives before showing an error
- User-friendly error messages: technical API errors are now translated to helpful descriptions
- Cooldown countdown modal with animated ring — shows exact seconds remaining
- Rate limit responses return 429 with structured countdown data instead of generic errors
- Admin image generation log browser with search, status/model filters, and pagination
- All image prompts now explicitly forbid text/letters in generated artwork
v0.6.4
March 5, 2026
Mail Gateway & Inbox Fixes
- Fixed SSL certificate coverage for mail gateway API — outbound sends and inbox fetches now work reliably
- Added sender display name support: emails show “Tulpa” instead of a bare address
- Inbound webhook now captures attachment metadata (name, type, size) for received emails
- Inbox list shows status badges (sent/received/failed) and attachment indicators
- Message detail view displays sender name, attachment list, and error details for failed sends
- Compose form auto-switches to outbound inbox after sending so you can confirm delivery
v0.6.3
March 4, 2026
Item Popups, Tooltips & Image Generation
- Click any item anywhere (character sheet, inventory, equipment) to see a rich detail popup
- Diablo II–style hover tooltips on desktop: item details follow your cursor
- Item image generation via ImageRouter: generate unique artwork for any item
- Regenerate images for items that already have one
- Item images shown inline on equipment slots, inventory list, and modal cards
- Live image updates: generated artwork instantly appears on all visible thumbnails without page reload
- All generated images automatically converted to WebP for space efficiency
- Consumables (potions, drinks) now visible in character sheet inventory section
- Chronicler’s Band now properly displays LCK and Narrative Detail bonuses
- Template stat boosts (word_count_bonus, LCK) merged into item display everywhere
- Popup close button redesigned with solid background for visibility over item art
- ImageRouter API integration hardened (correct endpoint, error handling, default model)
v0.6.2
March 4, 2026
Mail System & Password Recovery
- Mail gateway integration with gamingworld.uk for sending and receiving email
- Admin mail tab: inbox viewer (inbound/outbound), compose with sender selection, subscriber list
- Encrypted mail API key storage (same Fernet pattern as OpenRouter key)
- Mailing list signup on landing page with rate-limited subscribe endpoint
- Account page: recovery email input and mailing list toggle
- Password reset via email: forgot passphrase flow with secure token-based reset links
- Unsubscribe page with one-click email removal
- Contact emails added: support@gamingworld.uk and info@gamingworld.uk
- Footer updated with contact link; legal pages now reference support email
v0.6.1
March 4, 2026
Mechanics Page, SEO & Legal
- Game Mechanics page with full system documentation across 13 sections
- Landing page hero redesign with full-bleed background image overlay
- Open Graph, Twitter Card, JSON-LD structured data, and canonical URLs
- XML sitemap at
/sitemap.xml - Terms of Service and Privacy Policy pages
- Footer reorganized with game links and legal link sections
v0.6.0
March 4, 2026
Scene Scoring, Model Tiers & Engine Hardening
- Scene Scoring system: every action gets a 1–100 fate roll that shapes the narrative outcome
- Luck stat now influences fate rolls with a conservative bonus system
- Score bands (Catastrophic to Legendary) displayed as colored badges on narrator messages
- Legendary rolls guarantee loot drops; catastrophic rolls risk item damage
- Stat gains now scale with scene score (0.5x on catastrophic, 2x on legendary)
- Chronicler’s Band: new uncommon starter ring (+50 word count, +0.5 LCK)
- Word count bonus system: equipped items can increase narrator response length
- Model tiers: Free, Freemium, and Premium tiers for text and image generation
- Admin user management now shows tier dropdowns instead of a single Paid toggle
- Token limit scales by tier: 1200 (free), 1800 (mid), 2500 (premium)
- Cost tracking: estimated costs per model shown in admin usage dashboard
- Truncation fix: responses no longer cut off mid-sentence (was 800, now 1200+ tokens)
- Truncation detection: graceful “the tale continues” marker if response hits token limit
- Item repair system: broken items can be repaired at 50% of value
- Account page: service key inputs now use proper theme styling
- Scene score pre-computation: the engine decides outcomes before the narrator writes
v0.5.0
March 4, 2026
Diablo-Style Loot & Item System
- Item affix system: 30 prefixes and 31 suffixes that roll onto items (e.g. “Blazing Sword of the Titan”)
- Item stat scaling by character level (8% per level) and rarity multipliers (1.0x–4.5x)
- Luck (LCK) added as visible 7th stat — affects rarity rolls and stat roll quality
- Master item roller pipeline: rarity → level scaling → stat rolling → affix rolling → pricing
- Consumable items with energy restore (overflow past max allowed) and temporary buff effects
- Buff system: time-based and energy-budget buffs with lazy expiry checks
- Equipment buffs that can break gear when energy budget is exceeded
- Refreshing Drink consumable granted each time you join a campaign
- Auto-equip system: new items automatically equip if they’re an upgrade (toggle in inventory)
- Inventory modal with four tabs: Items, Equipment, Buffs, and Activity Log
- Rarity-colored item cards with stat tooltips and equip/unequip/consume actions
- Equipment paper-doll layout showing all 10 slots with rarity borders
- Active buff bar with countdown timers and energy budget tracking
- Activity log tracking all item events (purchases, equips, buff expiry, gear breaks)
- Merchant system: daily rotating stock of 12 items, weighted by rarity
- Buy from merchant (1.5x markup) and sell items back (40% buyback)
- Factory enhanced: stat boost editors, stat range editors, consumable effect builder, lore text, unique items
- Fabricator now delegates to the item roller for proper scaling and affix generation
v0.4.3
March 4, 2026
Campaign History & Character Sheet Upgrades
- Campaign history section on character sheet with session summaries and aggregated stats
- Active campaign card with quick-resume and withdraw buttons
- Read-only chat log viewer for past campaign sessions
- Expandable past session cards showing XP earned, items found, and stat gains
- Energy regeneration rate displayed under the energy bar (with bonus indicator for own API keys)
- Real-time energy tick now uses effective regen rate including bonuses
v0.4.2
March 4, 2026
Passive Energy Recovery
- Characters now passively recover energy over time while offline
- Recovery rate: 100 energy per minute (full recharge in ~10 minutes from empty)
- Energy recalculated on character sheet view, gameplay session start, and API access
v0.4.1
March 4, 2026
Chat & Stat Card Polish
- Fixed chat scroll jumping when the narrator starts writing
- Narrator responses now display with proper paragraph spacing
- Redesigned stat cards: big number shows total (base + equipment), green tint when boosted
- Equipment bonuses shown as badge in stat card upper-right corner
- Gameplay progress (fractional stat gains) displayed as a bar at card bottom
- All stat cards maintain consistent height regardless of bonuses
- Enemy and encounter system design documented for next phase
v0.4.0
March 4, 2026
Factory, Achievements & Campaign Builder
- Achievement system with 15 seed definitions across 5 rarity tiers (common to legendary)
- Achievements wired into game pipeline: level ups, stat thresholds, item fabrication, campaign joins
- Character creation, avatar upload, and equipping all slots trigger achievements
- Achievement toast notifications with rarity-colored animations (slide-in, auto-dismiss)
- Achievements section on character profile with earned dates and title rewards
- Tutorial chain via achievement sequence (Born → Face of Legend → First Step → Battle Ready)
- Title rewards granted from achievements, displayed on character cards
- Secret achievements that only reveal when earned
- Factory page: admin workshop for building the game world
- Campaign builder: create campaigns with setting, quest, themes, and background images
- Styled image uploads across all factory forms (click or drag-and-drop with live preview)
- Location, NPC, and scenario editors with inline add forms
- Item template and spell creators with rarity tiers and stat requirements
- Achievement editor for defining custom triggers and rewards
- Factory stats dashboard showing counts across all content types
v0.3.2
March 4, 2026
Equipment System
- Equip and unequip items from your character sheet
- Equipment slots show actual item names, rarity borders, and unequip buttons
- Inventory items display an Equip button for equippable gear
- Stat cards show equipment bonus indicators (+STR, +DEX, etc.)
- Ring items auto-assign to an open ring slot
- The narrator now knows what you have equipped and references it in gameplay
v0.3.1
March 4, 2026
Fabrication, Fixes & Admin Upgrades
- Item fabricator service for generating equipment with rolled stats
- Starter item kit granted when joining a campaign (sword, armor, shield, cloak, potion)
- Admin: click any user to view their characters with full stats, equipment, and campaign info
- Token usage tracking now properly records to admin usage dashboard
- Fixed character sheet crash (stat bar rendering error)
- Fixed gameplay narrator model (updated from retired free model)
v0.3.0
March 4, 2026
Characters, Campaigns & Gameplay
- Character creation with name, backstory, and starting stats
- Character sheet page with stats, equipment slots, energy bar, and resources
- Character management on account page (list, create, view)
- Three starter campaigns: The Hollowed Crypt, The Merchant Road, The Starfall Isles
- Campaign browser with session joining and withdrawal
- Gameplay chat interface with narrator/player message styling
- Game engine pipeline: intent extraction, fate check, world state assembly, response generation
- OpenRouter integration for narrator responses
- Fractional stat gains from actions (STR, DEX, CON, INT, WIS, CHA)
- Energy accounting per action based on token usage
- Character-limit scaling with level (200 base + 10 per level)
- Token tracking per message with model attribution
- Chat history and session replay
- XP gain and level-up system (100 XP per level)
- Play link in navigation bar for logged-in users
- Fixed CSP connect-src for Lucide source map loading
v0.2.0
March 3, 2026
Security, Polish & Roadmap
- Fixed admin dashboard stats loading (parenthesis bug)
- Added rate limiting on auth endpoints (slowapi)
- Security headers middleware (CSP, HSTS, X-Frame-Options, X-Content-Type-Options)
- Database password moved out of source code
- Inactive user sessions now properly rejected
- Login no longer reveals whether a username exists
- Lucide icons throughout nav bar, admin tabs, account sections, and stat cards
- Card background icon system for subtle watermark effects
- Public roadmap page with progress tracking and architecture overview
- Removed unused config constant
v0.1.0
March 3, 2026
Foundation
- Project scaffolding and server infrastructure
- Landing page with dark and light themes
- Database schema for users, characters, campaigns, items, spells, and chat
- Passkey authentication (register, login, manage devices)
- Account page with passkey management
- SSL and domain configuration