Skip to content

v3.1.1 - the audited content milestone, hardened

Latest

Choose a tag to compare

@sadhaka sadhaka released this 12 Jun 16:36
· 9 commits to main since this release

The audited content milestone, hardened — five release-audit rounds closed by hand.

Builds on v3.1.0 and locks it down:

  • Ruleset AST v2 — deterministic homebrew as DATA: a strict closed-grammar interpreter, byte-identical across TypeScript / Python / Rust, NFC-guarded at every name boundary.
  • 5e Action Pack — event-sourced spell slots + concentration + the RAW condition table, all replay-stable.
  • Forge-proof persistence — the signed .loom bundle gains a v3 length-prefixed signature + ownership-binding digest, so a save cannot be re-pointed at another world or truncated undetected (rejected on all three surfaces).
  • delve-mini headless proof — a full multi-room run reconstructed from the tape, the TileMap stage folded into the fingerprint.

Hardening (audit rounds 4–8, hand-closed): NFC parity on the seal, every seed digest, and the AST name guard across all three surfaces; the bundle-binding fork shut everywhere; every version surface (package.json, the TS constant, both pyproject/Cargo pairs, the runtime constants) now test-locked to one string so a future bump that misses a file fails CI before it can reach a tag.

4,270 tests pass. Published to npm (loom-engine), PyPI (loom-engine-rpg + loom-engine-native), and crates.io (core crates 0.1.2). Determinism gate green across TS, Python, and Rust at the same commit.