MemForge: Portable, agent-neutral persistent memory format for AI coding agents (v0.9.2)
MemForge v0.9.2: portable, agent-neutral persistent memory format for coding agents. This deposit anchors the v0.9.2 ship state (reference-CLI package 0.9.2; spec snapshot spec/VERSION 0.8.0, a minor bump from 0.7.0). The bundle ships the spec snapshot plus the full reference-CLI artifacts (CHANGELOG, README, license, examples/). What v0.9.2 fixes v0.9.2 closes the second class of the silent memory loss that v0.9.1 began on, and carries the spec change that makes the new check normative rather than an implementation opinion. Spec 0.7.0 to 0.8.0, a minor bump, naming integrity invariant 28: a rollup README reaches every sibling it hides. Minor rather than patch because a folder that was well-formed under 0.7.x can be non-conformant under 0.8.0. That is the correct SemVer classification for a new hard requirement, and it follows the v0.4.0 precedent in this series. v0.9.1 made a rollup subfolder with no README.md a violation. That check cannot see a subfolder whose README exists but omits a sibling. Invariants 7 and 8 govern the MEMORY.md index, and by the Rollup subfolders section a detail file is deliberately absent from that index, so the rollup README is a detail file's only path to a reader. A README that omits a sibling leaves that memory exactly as unreachable as a parentless subfolder does, and the audit reported clean. Three new integrity violations: rollup README incomplete (siblings with no pointer), rollup README dangling pointer (a pointer resolving to nothing anywhere in the folder), and rollup README unreadable. The third fails closed on purpose: a check whose entire purpose is finding gaps must never report clean merely because it could not look. Conformance is decided by comparing the pointer set against the sibling set in both directions, never by comparing counts. A duplicate pointer alongside an omission yields equal counts while a memory is still lost, so a count-based check passes while the loss is real. Both directions are reported and the specific member names are always given in full. The pointer set is closed to exactly two forms, a wikilink and a markdown inline link whose target ends in .md, and pointers are read from prose only: fenced code blocks, inline code spans, and HTML comments are excluded before extraction. An open pointer set would let two conforming implementations disagree about the same folder, which a binary audit must never permit, and a link inside a documentation example is not a membership claim. Release-rigor framing The release gate did substantive work on this one, and the record is worth stating plainly. The audit check had already been reviewed and merged before the release checklist ran. The checklist then found that it raised an integrity violation with no spec invariant behind it, which would have failed folders that were fully spec-conformant. That is what the spec delta in this release exists to correct. The architect voice caught the version bump misfiled as a patch, and caught that leaving pointer syntax unconstrained would make the check non-deterministic across implementations. The adversarial critic caught that links inside fenced blocks, code spans, and HTML comments were unspecified, which was latent rather than live but would have let two conforming implementations disagree. The threat-model pass caught the most consequential defect: an unreadable README was silently skipped, so making one unreadable suppressed every finding for that subfolder. Two panel findings were refuted with evidence rather than accepted. A claim that the bump should be larger rested on the premise that the prior spec accepted the now-removed pointer form; it did not, because the prior spec had no rollup-coverage invariant at all. A claim that an embedded NUL byte in a pointer would raise an exception was checked directly and does not, and this code never opens a pointer target, so the defensive guard written against that premise was removed rather than kept as dead code. Two items are deferred and documented rather than hidden: a time-of-check-to-time-of-use window between the symlink guard and the read, and an unbounded read on a very large README. Both are pre-existing patterns shared with the sibling check shipped in v0.9.1, and both are bounded by the audit running as the folder's own owner. Reference implementation (PyPI package ildan-memforge==0.9.2) Twelve new regression tests cover the closed pointer set, prose-only extraction, both gap directions, the duplicate-pointer-masks-omission case that defeats count-based checking, the fail-closed unreadable README, and an end-to-end pass through the audit entry point. Full suite 580 tests. Bundle contents SPEC.md (spec_version 0.8.0) VERSION taxonomy.yaml v0.9.2-known-limitations.md (living-doc snapshot at v0.9.2) CHANGELOG.md (full history through v0.9.2) README.md LICENSE (Apache-2.0) 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.2-bundle.zip): 2453ad974e7c53dc03b697f93c55bda27793669f5b45ec862c66ae810f1b914d 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. Software Heritage identifiers for this release: release: swh:1:rel:cd00fb306481cf6e6cc52b0446b21131185b5ab6 revision: swh:1:rev:0514f6cb05b914b584442e919f010222be0a4cc7 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.2 License: Apache-2.0
Institutions
- Fidal (FR)
Publication Details
- Journal
- Zenodo (CERN European Organization for Nuclear Research)
- Published
- 2026-07-30
- DOI
- https://doi.org/10.5281/zenodo.21700690
- Primary Topic
- Artificial Intelligence in Games
- Type
- article
- Field-Weighted Citation Impact
- 0.00