CLAUDE.md said ZeroClaw "imports this as a Cargo feature (clawhdf5 feature flag)" and uses clawhdf5 as its memory backend; the agent crate called itself the "ZeroClaw agent memory HDF5 backend"; the migrator claimed to read "the ZeroClaw layout". Checked on 2026-09-25 against ZeroClaw v0.8.5 (its latest release), the osobh/zeroclaw fork (on v0.8.5) and both histories back to February 2026: - no `clawhdf5` feature, dependency or memory backend has ever existed in ZeroClaw; its backends are sqlite, lucid, postgres, qdrant, markdown and none, behind its own `Memory` trait; - ZeroClaw's SQLite schema is a single `memories` table (id, key, content, category, embedding, created_at, updated_at); the migrator's memory_chunks/sessions/entities/relations layout never existed in ZeroClaw, so it cannot read a ZeroClaw database. Decision: withdraw the claims (as with OpenClaw); clawhdf5 is a standalone library with no framework integration. The migrator's default layout is documented as its own. ZEROCLAW_VERSION keeps its name and value (it is the persisted `edgehdf5_version` writer tag) with a doc comment saying it is unrelated to ZeroClaw. Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
1.5 KiB
clawhdf5-migrate
CLI tool to migrate a SQLite agent-memory database in the memory_chunks / sessions / entities / relations layout (table and
column names are configurable) to a
clawhdf5-agent store. This is not
ZeroClaw's schema — ZeroClaw keeps memories in a single memories table and
does not use clawhdf5.
The output is written through clawhdf5-agent's own API, so it opens with
HDF5Memory::open and is searchable immediately: memory records, sessions and
the knowledge graph (entities and relations) are carried over.
Installation
cargo install clawhdf5-migrate
Usage
clawhdf5-migrate --sqlite agent.db --hdf5 agent.h5 --agent-id my-agent
Embeddings are stored as float16 (the library default for new stores); pass
--f32 for full precision. Every embedding must have the same dimension
(the first row's, or --embedding-dim, which a source with no memory records
requires); rows are never truncated, and the whole source is checked before an
existing output store is replaced. --incremental adds only new rows to an
existing store of the same dimension and carries over changes to rows'
deleted flags, --skip-deleted leaves out tombstoned rows, and --dry-run
only counts.
See clawhdf5-migrate --help for every option.
License
MIT