- Fix arrow selection line count calculation (overcounted by 1 due to
trailing newline, causing progressive line truncation on each redraw)
- Replace sync Loreline bridge with queue-based async pattern to avoid
"Cannot wait on monitors" WASM deadlock
- Add bounded input buffer (8 keys, DropOldest) to prevent held-key
accumulation
- Set Spectre.Console Profile.Height on all AnsiConsole.Create calls to
prevent PlatformNotSupportedException on Console.WindowHeight
- Add explicit Loreline.dll reference + TrimmerRootAssembly for WASM
- Use MSBuild CopyGameContent target instead of Content/Link for static
file serving in Blazor WASM
- Add WASM guards for file I/O in ContentRegistry, LocalizationManager,
AdventureEngine
- Enforce min 120x30 terminal dimensions in xterm.js
- Add Playwright E2E tests (6 tests: page load, language selection,
full flow, multi-box progression, extended play, adventure)
Compile the game to WebAssembly so it runs entirely client-side in the browser.
Uses xterm.js for terminal emulation and Spectre.Console off-screen rendering
for full ANSI output fidelity. Saves use localStorage. CI deploys to itch.io
via Butler on push to main.
- Fix LootTable.GuaranteedRolls type (int -> List<string>) to match JSON schema
- Fix BoxEngine guaranteed rolls to iterate item IDs directly
- Fix BoxEngine resource condition evaluation for "any" targetId
- Make ItemDefinition.DescriptionKey optional
- Fix font meta item nameKeys to use proper localization keys
- Add 43 xUnit content validation tests (deserialization, cross-refs, localization)
- Add self-contained single-file publish via publish.ps1
- Update README with distribute and test sections