Avatar for the raymondj99 user
raymondj99
openmemory
BlogDocsChangelog

Performance History

Latest Results

fix(embed): extract macOS ONNX Runtime tarballs (`./` prefix) (#24) `openmemory model download` shipped in v0.3.2 with bundled ONNX Runtime install. The tar extractor matched entries by string prefix against `<archive_root>/lib/`, but macOS ONNX Runtime tarballs prefix every entry with `./` while Linux ones do not, so on macOS the matcher dropped every entry. The install dir ended up empty, `ensure_dylib_symlink` then wrote a broken `libonnxruntime.dylib` symlink, and the post-check fired with `extraction completed but ...libonnxruntime.1.20.0.dylib is missing`. `extract_lib_subtree` now strips a leading `./` from each entry before comparing the prefix. `ensure_dylib_symlink` switches its "already installed?" check from `Path::exists` (which follows symlinks and reports false for a broken one) to `Path::symlink_metadata`, so a broken symlink left over from a prior failed run no longer poisons retries with EEXIST. Two new tests build synthetic tarballs that mirror the upstream Linux and macOS layouts (real versioned dylib + unversioned symlink in `lib/`, unrelated entry in `include/`) and assert that both extract correctly and the include subtree is skipped. A third test pre-seeds a broken symlink and confirms `ensure_dylib_symlink` is a no-op rather than a hard error. Verified end-to-end on macOS by running `openmemory model download` into a clean home directory: 25 MB versioned dylib, dSYM, and unversioned symlink all land under `<home>/runtime/onnxruntime-osx-arm64-1.20.0/lib/`. Linux remains unaffected because the new matcher is a strict superset of the old (strip `./` if present, otherwise leave the path unchanged); the new Linux-style test guards against regression. Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
main
1 day ago
fix(embed): extract macOS ONNX Runtime tarballs (`./` prefix) `openmemory model download` shipped in v0.3.2 with bundled ONNX Runtime install. The tar extractor matched entries by string prefix against `<archive_root>/lib/`, but macOS ONNX Runtime tarballs prefix every entry with `./` while Linux ones do not, so on macOS the matcher dropped every entry. The install dir ended up empty, `ensure_dylib_symlink` then wrote a broken `libonnxruntime.dylib` symlink, and the post-check fired with `extraction completed but ...libonnxruntime.1.20.0.dylib is missing`. `extract_lib_subtree` now strips a leading `./` from each entry before comparing the prefix. `ensure_dylib_symlink` switches its "already installed?" check from `Path::exists` (which follows symlinks and reports false for a broken one) to `Path::symlink_metadata`, so a broken symlink left over from a prior failed run no longer poisons retries with EEXIST. Two new tests build synthetic tarballs that mirror the upstream Linux and macOS layouts (real versioned dylib + unversioned symlink in `lib/`, unrelated entry in `include/`) and assert that both extract correctly and the include subtree is skipped. A third test pre-seeds a broken symlink and confirms `ensure_dylib_symlink` is a no-op rather than a hard error. Verified end-to-end on macOS by running `openmemory model download` into a clean home directory: 25 MB versioned dylib, dSYM, and unversioned symlink all land under `<home>/runtime/onnxruntime-osx-arm64-1.20.0/lib/`. Linux remains unaffected because the new matcher is a strict superset of the old (strip `./` if present, otherwise leave the path unchanged); the new Linux-style test guards against regression. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
fix/macos-ort-extraction
1 day ago
chore(release): v0.4.0 (#22) Two new MCP tools that close the post-hoc curator gap, plus a documentation fix on the `openmemory_remember` idempotency contract. * `openmemory_add_relation` attaches a relation between two existing entities resolved by `(name, type)`. Previously the only way to add an edge was through `openmemory_remember`, which forced callers to write a dummy observation just to attach a relation. `supersedes` / `clarifies` / `depends_on` curator flows now have a first-class surface. Missing entities surface as typed `-32004` errors rather than being silently created. * `openmemory_promote_observation` moves an observation between `memory_tier` values (`episodic` <-> `semantic` <-> `procedural`) without rewriting content. Enables the episodic-on-write, promote-on-consolidation lifecycle the curator policy assumes. Unknown or tombstoned ids return `{ modified: false }` rather than erroring. * `openmemory_remember`'s tool description now spells out the append-only contract: observations are NEVER deduplicated at write time; run `openmemory_consolidate` for periodic dedup, or `openmemory_recall` the proposed title first to skip the write on a high-scoring hit. Relations follow the same contract. Workspace test count: 591 pass / 0 fail. The `MemoryStore::add_relation` and `MemoryStore::set_observation_memory_tier` methods back the two new tools; their input validation rejects empty relation types, self-loop edges, and missing observation ids with typed errors. Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
main
3 days ago
chore(release): v0.4.0 Two new MCP tools that close the post-hoc curator gap, plus a documentation fix on the `openmemory_remember` idempotency contract. * `openmemory_add_relation` attaches a relation between two existing entities resolved by `(name, type)`. Previously the only way to add an edge was through `openmemory_remember`, which forced callers to write a dummy observation just to attach a relation. `supersedes` / `clarifies` / `depends_on` curator flows now have a first-class surface. Missing entities surface as typed `-32004` errors rather than being silently created. * `openmemory_promote_observation` moves an observation between `memory_tier` values (`episodic` <-> `semantic` <-> `procedural`) without rewriting content. Enables the episodic-on-write, promote-on-consolidation lifecycle the curator policy assumes. Unknown or tombstoned ids return `{ modified: false }` rather than erroring. * `openmemory_remember`'s tool description now spells out the append-only contract: observations are NEVER deduplicated at write time; run `openmemory_consolidate` for periodic dedup, or `openmemory_recall` the proposed title first to skip the write on a high-scoring hit. Relations follow the same contract. Workspace test count: 591 pass / 0 fail. The `MemoryStore::add_relation` and `MemoryStore::set_observation_memory_tier` methods back the two new tools; their input validation rejects empty relation types, self-loop edges, and missing observation ids with typed errors. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
chore/release-v0.4.0
3 days ago

Latest Branches

CodSpeed Performance Gauge
0%
fix(embed): extract macOS ONNX Runtime tarballs (`./` prefix)#24
1 day ago
3b21e25
fix/macos-ort-extraction
CodSpeed Performance Gauge
0%
CodSpeed Performance Gauge
0%
3 days ago
e84d506
chore/release-v0.4.0
© 2026 CodSpeed Technology
Home Terms Privacy Docs