From 5df68788ba86a1bcc7581855afd97ceec6cb6b37 Mon Sep 17 00:00:00 2001 From: Krivoblotsky Date: Mon, 14 Sep 2026 00:10:11 +0300 Subject: [PATCH] =?UTF-8?q?release:=200.2.0=20=E2=80=94=20the=20mem=20comm?= =?UTF-8?q?and=20line=20ships=20on=20PyPI?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit pyproject + __version__ → 0.2.0; CHANGELOG [Unreleased] → [0.2.0] (TransferTextAdapter, mem CLI, InMemoryStore, README demo GIF; __version__ fix). 0.1.2 shipped the SDK only — this is the release the README's 'pip install portable-memory && mem paste' refers to. Co-Authored-By: Claude Fable 5.1 --- CHANGELOG.md | 14 +++++++++++--- portable_memory/__init__.py | 2 +- pyproject.toml | 2 +- 3 files changed, 13 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 956b069..b7dea7e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,8 +6,15 @@ independent of the on-disk **format** version (`format` in the manifest). ## [Unreleased] +## [0.2.0] - 2026-09-14 + +`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`** (`portable_memory/adapters/transfer.py`) — parses the pasted memory-transfer text that ChatGPT, Claude, and Gemini exchange today (the standard export prompt's `[date saved, if available] - memory content` entries in a code block; @@ -26,8 +33,8 @@ independent of the on-disk **format** version (`format` in the manifest). ### Fixed -- `portable_memory.__version__` had drifted to `0.1.0`; it now tracks `pyproject.toml` - and a test enforces it. +- `portable_memory.__version__` had drifted to `0.1.0` (the 0.1.2 wheel reports it); it + now tracks `pyproject.toml` and a test enforces it. ## [0.1.2] - 2026-09-13 @@ -88,6 +95,7 @@ to match the Swift SDK's release of the same day. - **Untrusted-input hardening** — path-traversal + symlink-escape rejection, unlisted-file rejection, and a per-file size bound (`MemLimits`). -[Unreleased]: https://github.com/MacPaw/portable-memory/compare/0.1.2...HEAD +[Unreleased]: https://github.com/MacPaw/portable-memory/compare/0.2.0...HEAD +[0.2.0]: https://github.com/MacPaw/portable-memory/compare/0.1.2...0.2.0 [0.1.2]: https://github.com/MacPaw/portable-memory/compare/0.1.1...0.1.2 [0.1.1]: https://github.com/MacPaw/portable-memory/releases/tag/0.1.1 diff --git a/portable_memory/__init__.py b/portable_memory/__init__.py index d2274a4..069d6ca 100644 --- a/portable_memory/__init__.py +++ b/portable_memory/__init__.py @@ -47,7 +47,7 @@ ) from .tombstone import DerivedRefs, PortableAuditRecord, Tombstone, TombstoneOp -__version__ = "0.1.2" +__version__ = "0.2.0" # Logic modules. from .store import PortableMemoryStore, StoreInfo # noqa: E402 diff --git a/pyproject.toml b/pyproject.toml index c6954e4..1940dce 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "hatchling.build" [project] name = "portable-memory" -version = "0.1.2" +version = "0.2.0" description = "Portable Memory — open, vendor-neutral .mem format for AI memory. Export, import/merge, verify, and provably delete AI memory across vendors (Python reference SDK)." readme = "README.md" requires-python = ">=3.10"