MemForge: Portable, agent-neutral persistent memory format for AI coding agents (v0.9.0)
MemForge v0.9.0: portable, agent-neutral persistent memory format for coding agents. This deposit anchors the v0.9.0 ship state (reference-CLI package 0.9.0; spec snapshot spec/VERSION 0.7.0). The bundle ships the spec snapshot plus the full reference-CLI artifacts (CHANGELOG, README, license, examples/). What v0.9.0 adds v0.9.0 is a minor release: write-boundary hardening. It is additive and backward-compatible. There is no new required frontmatter field, and every well-formed pre-0.7.0 folder remains well-formed under 0.7.0 readers. - memory-validate, the syntax-aware write-boundary gate. A new agent-neutral operation an adapter invokes before accepting or committing a memory write, so a malformed file is rejected at the write boundary instead of surfacing later as an audit failure. The HARD check (always fails the gate): the frontmatter parses as a YAML mapping, the recurring unquoted-colon-in-a-value break, now named as integrity invariant 27. The SOFT checks (advisory, fail only under a strict flag): the MEMORY.md pointer and line caps, the required v0.4 fields, and the tier and status enums. It is read-only, runs on a single file or a batch, and shares its parser and its caps and enums with memory-audit so the two can never disagree. Before this release the only such gate was Claude-Code-specific; memory-validate is the portable replacement every adapter wires once (a git pre-commit hook is the universal form). - An audit-waiver mechanism. memory-audit now honors an explicit, recorded allowlist at .memforge/audit-waivers.yaml that suppresses immutable historical commit-log findings (for example a migration-era status-to-superseded transition predating the commit-prefix convention) so a genuinely clean corpus audits to zero. Waivers are reported, never silent (the audit prints how many findings were waived and which commits), and the loader is fail-closed: a missing, unreadable, malformed, non-mapping, or non-list-shaped waiver file yields an empty waiver set so genuine violations still fire. - Single-sourced structural caps. The MEMORY.md pointer-byte and line caps (both 180) now live in one module that the audit, validate, and index-generation operations all import, closing a prior drift where the cap was defined independently in two places. - Spec 0.6.3 to 0.7.0. New integrity invariant 27 (a recognized frontmatter fence must parse as a YAML mapping; an empty block is the empty mapping; an unclosed or absent fence is invariant 1's concern). New sections: the write-validation operation (operation contract plus post-conditions) and the audit-waiver file format (with normative reported, fail-closed, minimum-SHA-length, and trust-boundary semantics). Invariant 27 only restates the parse requirement already implicit in invariant 1, so no existing well-formed folder is retroactively invalidated. Release-rigor framing v0.9.0 ran an internal cross-family review panel pre-tag: an architect and an adversarial critic on one model family, a threat-modeler on another, over the spec delta and the new code surface. The panel did substantive work. The threat-modeler caught two correctness-and-security MAJORs in the waiver loader (a malformed scalar value crashed the audit instead of failing closed; a non-date cutoff value over-waived all superseded-transition findings via string comparison). The adversarial critic caught a BLOCKER (the validate gate was over-strict on an empty or degenerate frontmatter fence, a backward-compatibility regression versus the lenient parser). All three were fixed with regression tests before tag, and a re-review on the fixed code confirmed convergence. One minor finding (an unbounded file read on a local CLI) was documented and carried. This is an internal review pass; it is NOT a substitute for independent red-teaming, third-party pentest, or formal security audit. No external security audit has been performed on this release. Reference implementation (PyPI package ildan-memforge==0.9.0) - The public command surface adds one operation, memory-validate; existing commands are unchanged.- 555 tests pass on the CI matrix (ubuntu, macos, windows across Python 3.10 / 3.11 / 3.12); 37 GPG-gated tests skip without secret material.- The release tag is signed and ships a CycloneDX SBOM, with a pip-audit supply-chain gate in CI. Bundle contents - SPEC.md (spec_version 0.7.0)- VERSION (spec version file; 0.7.0)- taxonomy.yaml- v0.9.0-known-limitations.md (living-doc snapshot at v0.9.0)- CHANGELOG.md (full history through v0.9.0)- LICENSE (Apache-2.0)- README.md- examples/ drop-in scripts (commit-msg hook bash plus PowerShell, auto-commit watcher bash plus PowerShell, recall synonyms example, WebSocket scaffold) Bundle SHA-256 (v0.9.0-bundle.zip): 8cbbb5ce9a63a04cddb9a967350a1d14195746fe0a0aef225a51c5b81f5e7280 Defensive-publication context This is one of three timestamped anchors for the MemForge spec text and reference tooling (Channel 1: Software Heritage SWHID; Channel 2: this Zenodo deposit; Channel 3: GitHub release tags). The concept DOI 10.5281/zenodo.20113963 always resolves to the latest archived version. This version mints a fresh Zenodo version under that concept record. Install pip install ildan-memforge Source code plus spec history https://github.com/ildan-ai/memforge https://github.com/ildan-ai/memforge/releases/tag/v0.9.0 License: Apache-2.0
Publication Details
- Journal
- Zenodo (CERN European Organization for Nuclear Research)
- Published
- 2026-06-28
- DOI
- https://doi.org/10.5281/zenodo.20999236
- Primary Topic
- Artificial Intelligence in Games
- Type
- article
- Field-Weighted Citation Impact
- 0.00