Releases: jasona/gameweaver
Releases · jasona/gameweaver
Release list
v1.9.6
What's New
Pluggable Persistence Adapter
- New
PersistenceAdapterinterface decouples storage from the filesystem - FilesystemAdapter (default) preserves all existing behavior with atomic writes and backups
- SupabaseAdapter stores data in PostgreSQL with Supabase Storage for images
- New data efuns:
saveData,loadData,dataExists,deleteData,listDataKeys - All 11 daemons migrated from
efuns.readFile/writeFileto the new data efuns - Configure via
PERSISTENCE_ADAPTER=filesystem|supabaseenvironment variable
Prompt Template System
- Centralized, customizable prompt templates for all AI features
- Templates support
{{variable}}substitution and{{#if}}conditional blocks - New Prompts Daemon wraps the driver's PromptManager for mudlib access
- New
promptsadmin command to list, view, edit, and reset templates - AI commands (
aidescribe,airoom,ainpc,ailore) refactored to useprompts.render()
Configurable Game Theme
- New
game.themeconfig setting (default:"fantasy") - Automatically injected as
{{gameTheme}}into all 22+ prompt templates - Change genre across all AI content with
config game.theme cyberpunk
AI Worldbuilding (ailore command)
ailore bootstrap <name> [desc]— generates one lore entry per category (8 total) with progress streamingailore expand <category> [theme]— generates 2-4 entries in a specific categoryailore fullstory— weaves all lore into a long-form narrative saved asworld:fullstorylore clearsubcommand to remove all lore entries with confirmation
Graceful Shutdown
- SIGINT/SIGTERM now saves all active players before exiting
- Configurable timeout via
SHUTDOWN_TIMEOUT_MS(default 15s)
Documentation
- Streamlined root README with feature highlights and link to full docs
- New
docs/README.mdtable of contents organizing all 65+ doc files - Updated
commands.md,daemons.md,ai-integration.md,lore-system.md,deployment.md - New
persistence-adapter.mdwith full adapter pattern documentation - Expanded environment variables reference in deployment guide
Full Changelog
v1.9.4
Highlights
This release improves early profession gameplay and fixes multiple gathering interaction issues.
Gameplay Improvements
- Improved gathering flow across mining, herbalism, fishing, logging, and skinning.
- Updated profession checks/messages so failed actions are clearer and progression-gated correctly.
- Added beginner-friendly traversal practice content for movement-based professions.
Content Additions
- Added profession starter support content, including access to starting tools.
- Added/updated profession station placement in appropriate town locations.
- Expanded related world content to support profession onboarding and progression.
Fixes
- Fixed gather/mine/skin command matching issues that blocked valid actions.
- Fixed resource/material handling issues that caused incorrect item behavior and presentation.
- Fixed several profession/resource node interaction edge cases.
v1.9.2
Post-release Hotfix (2026-02-14)
- fixed Coolify/production startup failure where the driver could not resolve mudlib imports like
/app/mudlib/std/object.jsfrommudlib/master.ts - updated runtime start command to execute the built driver via
tsx(tsx dist/driver/index.js) so mudlib TypeScript module resolution works correctly in deployment - moved tag
v1.9.2to include this hotfix commit onmain(8348f87)
MudForge v1.9.2 Release Overview
v1.9.2 focuses on gameplay progression polish, release quality hardening, and operational signal-to-noise improvements. This release ships new profession gathering routes in-world, improves guild progression linkage, and tightens platform reliability with logging and protocol safeguards.
Highlights
Professions and World Content
- Added moderate-density profession resource nodes across thematic Valdoria locations:
- forest routes for mining, herbalism, logging, and fishing progression
- dungeon corridor early mining support
- harbor high-tier coastal fishing access
- This expands practical gather loops for solo progression and improves profession route continuity.
Progression Improvements
- Successful guild skill usage now awards guild XP, improving alignment between active skill play and guild advancement pacing.
Reliability and Operations
- Fixed heartbeat delay logging to measure per-tick scheduling delay instead of cumulative drift.
- Reduced reset daemon log spam while preserving useful periodic/meaningful reset telemetry.
- Hardened image payload normalization and protocol size handling for safer client/server message flow.
Client, Protocol, and Documentation
- Added/updated protocol and system documentation for easier onboarding and maintenance:
- core gameplay/lifecycle documentation
- server-to-client GUI protocol documentation
- Included lint/TypeScript cleanup so CI
npm run lintchecks pass consistently.
Release Management
- Bumped game version metadata to
1.9.2usingscripts/bump-version.js.
Included Commits Since v1.9.1
d3ad530Bump game version to 1.9.21edba7dFix lint configuration and cleanup TypeScript warningsc12faedAdd profession resource nodes to thematic Valdoria roomsa0655f3Award guild XP from successful guild skill usage95b7cfcFix heartbeat delay logging and reduce reset log spamffc47c8Harden v2.0 release readiness across security, reliability, and operations00d18cfDocument core gameplay and lifecycle systems for new adopters4ff297dDocument server-to-client GUI protocol messagesf3996b1Harden image payload normalization and protocol size guardsdbb2e0dAuto-add NPC name tokens as IDs83fedd3Fix remove command map handling for GUI unequip
Verification
- CI lint gate fixed and passing (
npm run lint) - TypeScript checks passing (
npm run typecheck) - Manual verification performed for added resource-node room initialization paths
v1.9
What's Changed
New Features
- First-run setup wizard and admin setup command
- Newbie tutorial system ("The Conscription") — guided war camp walkthrough teaching basic commands
- Reconnection GUI overlay replacing terminal text spam
- Loading spinners for equipment slots, GIF panel, and GUI images
- Indexed item selection for look, eat, drink, wear, wield, open, close, equip, remove (e.g.,
look sword 2) - Queue-based equipment image loading (one-by-one per heartbeat)
- Propagated configured game values throughout codebase
Bug Fixes
- Room onEnter/onLeave lifecycle hooks now fire correctly from direction commands (game-wide fix)
- Corpse decay timers now actually start (were never being called)
- Bury command supports indexed selection (
bury corpse 2) andbury all - Train command restored (was shadowed by advance command alias)
- NPC name generation in area builder fixed for merchant/trainer/petMerchant subclasses
- Dead NPCs no longer block targeting of live ones after kill
- Flee/wimpy shows direction name instead of array index
- Score modal updates live while healing (sitting/sleeping)
- Ferry schedule resilient to async errors
- Equipment images load correctly when browser tab is hidden
- Graphical launcher reloads properly on reconnect
Full Changelog: v1.8...v1.9
v1.8
What's Changed
- Refactored core dependency cycles and added audit gates with CI workflow
- Implemented type-safety audit remediations across mudlib and driver
- Fixed equipment image streaming and avatar/equipment fallback rendering
- Enforced mudlib sandbox boundaries and permission layering
- Fixed sound backlog when browser tab is hidden
- Updated bump-version script to show current version when no arg supplied
- Fixed package-lock.json sync with package.json (missing @openai/codex)
Full Changelog: v1.7.27...v1.8
v1.7.26
What's New
- World map modal: Click "W" in the map panel to open a fullscreen modal compositing all explored areas with cross-area connections and area labels
- Login fix: Map, stats, and equipment data now sent immediately on login
- Quest panel: Fills remaining right sidebar space properly
v1.7.25
What's New
- Day/night cycle: Accelerated in-game time (1 real hour = 24 game hours) with outdoor room lighting
- Sky panel widget: SVG sky scene in right sidebar with sun/moon arcs, animated gradients, and stars
- Command fix: Resolve command name collisions using player's command paths
v1.7.24
Bug Fixes
- Fix race condition in SharedWorker verification causing random disconnects
- Fix equipment sidebar not updating from delta stats messages
- Fix dead NPCs not being removed from room immediately on death
Features
- Add concurrency control to image generation and parallelize modal image fetching
- Add builder
healcommand to fully restore target HP and MP - Add
userscommand for quick online player list
Refactoring
- Centralize duplicated utilities (capitalize, findItem, parseArgs, type guards) across mudlib, reducing ~350 lines of redundant code
- Add type marker efuns (
isWeapon,isArmor,isVehicle,isPet,isPlayer,isNPC) following theisLivingpattern - Move
isLivingto efun and remove local definitions - Extract
unequipIfNeededandparseArgsto shared utility modules
v1.7.23
Protocol routing and STATS delta compression
E-3: Centralize Protocol Routing
- Moved TIME_ACK and VISIBILITY handling from connection layer into driver's
onPlayerInput() - All protocol message dispatch now centralized in one method
- Added
setTabVisible()andsendTimePong()public methods on Connection
E-4: STATS Delta Compression
- Server tracks last-sent stats and sends only changed fields as
type: 'delta' - Full snapshot every 10th send; deltas in between
- No message sent when nothing changed (idle players)
- ~92% bandwidth reduction for combat HP/MP updates, 100% for idle
v1.7.22
WebSocket Resilience & Efficiency
Resilience
- Fix SharedWorker crash recovery bug that prevented reconnection when worker died while appearing connected
- Remove hard cap on reconnect attempts — indefinite retry with exponential backoff up to 5 min
- Add sleep/wake drift detection in SharedWorker for faster recovery after laptop lid close/open
- Add mobile visibility-based stale connection detection (non-SharedWorker path)
- Align session token TTL with runtime disconnect timeout configuration
Efficiency
- Extract shared protocol parser — eliminates ~300 lines of duplicated parsing code across two client files
- Create shared protocol type definitions used by both server and client (single source of truth)
- Enable perMessageDeflate WebSocket compression (60-80% reduction for JSON messages >128 bytes)
- Standardize VISIBILITY prefix to use
\x00[VISIBILITY]like all other protocol messages
Bandwidth
- Separate equipment images from STATS messages (~500KB/min savings per player)
- Send combat portraits only once per target, not every round (~100KB/round savings)