Releases: MacPaw/portable-memory
Release list
0.3.0
Format 1.1.0: the manifest now says what the archive covers, in which scopes, and carries a single archive digest — and mem inspect shows it. Every 1.0 bundle remains valid.
Added
- Format 1.1.0 — four optional manifest fields (spec §3.1):
specURL,coverage({from, to}— earliest/latest episodeeventTime),scopes(sorted context ids the records reference) andbundleDigest(sha256 of the exactCHECKSUMSbytes — one hash for the whole archive; the validator recomputes it when present).MemCoverageis exported. mem inspectprints spec URL, coverage, scopes and archive digest.Conformance/fixtures/sample-1.1.mem— a format-1.1 cross-SDK fixture; both SDKs validate it, recompute its digest, import it, and re-export byte-identical streams. Tests: evidence-pack digest, incremental scopes, forward compatibility with unknown manifest keys, seeded coverage/scopes property tests.
Specification
- Spec v1.1 (§3.1 format-1.1 additions, §9 format history; §2/§10 state which layers are not yet normative).
- RFC-0001 Scopes & visibility (#11), RFC-0002
extfor all kinds (#13), RFC-0003 Provenance typing (#14) — open for comment inSpec/rfcs/until 2026-10-05, target format 1.2.
pip install portable-memory==0.3.0 · byte-interoperable with the Swift SDK 0.3.0 · full changelog: https://github.com/MacPaw/portable-memory/blob/main/CHANGELOG.md
0.2.0
pip install portable-memory now installs the mem command line — paste an assistant's memory export, get a verifiable .mem bundle, render it back for import anywhere. (0.1.2 shipped the SDK only.)
Added
- README "Try it in 60 seconds" with a demo GIF of the paste → validate → render flow.
TransferTextAdapter— parses the pasted memory-transfer text ChatGPT, Claude and Gemini exchange today (the standard export prompt's[date saved, if available] - memory contentcode block; tolerant of-/–/—/:separators, bullets, numbering, section headers, ISO and month-name dates, continuation lines, prose summaries) into deterministic, deduplicated episodes, and renders any episodes back to paste-ready text. Shared fixtureConformance/fixtures/transfer/pins byte-identical output with the Swift SDK.memcommand line:mem paste export.txt --out my.mem,mem ingest --from openai|claude|mem0|transfer,mem render my.mem [--fence] [--group],mem validate,mem inspect. Standard library only.InMemoryStore— a minimal public store for prototyping and the CLI.
Fixed
portable_memory.__version__(the 0.1.2 wheel reports0.1.0) now trackspyproject.toml; test-enforced.
Byte-interoperable with the Swift reference SDK 0.2.0. Full changelog: https://github.com/MacPaw/portable-memory/blob/main/CHANGELOG.md
0.1.2
First release published to PyPI: pip install portable-memory.
Added
- Paper citation — README callout and Citation section (BibTeX),
CITATION.cff, and a paper link in the spec header. Paper: https://research.macpaw.com/publications/portable-memory - PyPI packaging — project URLs, keywords/classifiers, and a Trusted-Publishing release workflow (publishes on GitHub release, no API token).
Fixed
- Package version alignment —
pyproject.tomldeclared0.1.0while the repo was tagged0.1.1; the package version now tracks the git tag and the workflow refuses to publish on mismatch.
Byte-interoperable with the Swift reference SDK 0.1.2.
Full changelog: https://github.com/MacPaw/portable-memory/blob/main/CHANGELOG.md
Release 0.1.1
What's Changed
- Python reference SDK — byte-interoperable with the Swift SDK by @Krivoblotsky in #1
- fix(codec): canonical number/UTC/strict-decode parity + conformance golden vectors by @Krivoblotsky in #2
- feat(adapters): OpenAI (ChatGPT export) + Claude (memory files) ingest adapters by @Krivoblotsky in #3
- test: coverage expansion — all-kinds round-trip, schema net, incremental, evidence pack, redact by @Krivoblotsky in #4
New Contributors
- @Krivoblotsky made their first contribution in #1
Full Changelog: https://github.com/MacPaw/portable-memory/commits/0.1.1