docs: withdraw the ZeroClaw integration claims
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]>
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
//! ZeroClaw agent memory HDF5 backend.
|
||||
//! Agent memory stored in a single HDF5 file.
|
||||
//!
|
||||
//! Provides persistent memory storage for AI agents using HDF5 files.
|
||||
//! All data is cached in-memory for fast access and flushed to disk
|
||||
|
||||
@@ -15,6 +15,9 @@ use crate::session::SessionCache;
|
||||
use crate::wal::WalMark;
|
||||
|
||||
pub const SCHEMA_VERSION: &str = "1.0";
|
||||
/// Writer-version tag stored in `/meta` as `edgehdf5_version`. Kept for file
|
||||
/// compatibility; despite the name it has nothing to do with ZeroClaw, which
|
||||
/// does not use clawhdf5.
|
||||
pub const ZEROCLAW_VERSION: &str = "0.8.0";
|
||||
|
||||
/// `/meta` attributes holding the [`WalMark`] of the WAL prefix already folded
|
||||
|
||||
@@ -3,8 +3,11 @@
|
||||
[](https://crates.io/crates/clawhdf5-migrate)
|
||||
[](https://docs.rs/clawhdf5-migrate)
|
||||
|
||||
CLI tool to migrate SQLite agent memory databases (the ZeroClaw layout) to a
|
||||
[clawhdf5-agent](https://crates.io/crates/clawhdf5-agent) store.
|
||||
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](https://crates.io/crates/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
|
||||
|
||||
@@ -12,7 +12,8 @@ use validate::ValidationSummary;
|
||||
|
||||
type BoxErr = Box<dyn std::error::Error>;
|
||||
|
||||
/// Migrate ZeroClaw agent memory from SQLite to a clawhdf5-agent store.
|
||||
/// Migrate agent memory from SQLite (memory_chunks / sessions / entities /
|
||||
/// relations tables) to a clawhdf5-agent store.
|
||||
///
|
||||
/// The output is an ordinary agent store: open it with
|
||||
/// `HDF5Memory::open` (or `clawhdf5-cli --path <store> ...`).
|
||||
@@ -270,7 +271,7 @@ mod tests {
|
||||
use std::path::PathBuf;
|
||||
use tempfile::TempDir;
|
||||
|
||||
/// Create a test SQLite database with the ZeroClaw schema.
|
||||
/// Create a test SQLite database with the default migration layout.
|
||||
fn create_test_db(dir: &TempDir) -> String {
|
||||
let db_path = dir.path().join("test.db");
|
||||
let path_str = db_path.to_str().unwrap().to_string();
|
||||
|
||||
@@ -43,7 +43,7 @@ pub struct Relation {
|
||||
pub timestamp: f64,
|
||||
}
|
||||
|
||||
/// All data read from a ZeroClaw SQLite database.
|
||||
/// All data read from a source SQLite database.
|
||||
#[derive(Debug)]
|
||||
pub struct SqliteData {
|
||||
pub chunks: Vec<MemoryChunk>,
|
||||
@@ -63,7 +63,9 @@ pub struct TableSchema {
|
||||
|
||||
/// Configurable mapping from a SQLite layout to the migration's data model.
|
||||
///
|
||||
/// Defaults to the ZeroClaw schema; the CLI can override the table names so the
|
||||
/// Defaults to the `memory_chunks` / `sessions` / `entities` / `relations`
|
||||
/// layout (not ZeroClaw's schema, despite what earlier docs said); the CLI can
|
||||
/// override the table names so the
|
||||
/// tool can migrate databases whose tables are named differently. Column names
|
||||
/// (and order) are part of the config too, so a library caller can remap them.
|
||||
#[derive(Debug, Clone)]
|
||||
@@ -190,7 +192,7 @@ fn blob_to_f32(blob: &[u8]) -> Vec<f32> {
|
||||
.collect()
|
||||
}
|
||||
|
||||
/// Read all data from a ZeroClaw SQLite database.
|
||||
/// Read all data from a source SQLite database.
|
||||
///
|
||||
/// If `skip_deleted` is true, rows with `deleted=1` are excluded from chunks.
|
||||
/// If `embedding_dim` is `None`, auto-detect from the first row (0 when there
|
||||
|
||||
Reference in New Issue
Block a user