Reality check & status¶
This page answers one question: what is actually shipped, and how quickly can you verify it yourself?
Legend
- DONE — works locally and deterministically (no network required unless stated)
- PARTIAL — shipped, but optional/experimental and/or depends on external services
- ROADMAP — planned; not shipped yet
Quick reality check (verifiable in ~60s)¶
1) Install deps (from a fresh clone)¶
uv sync --locked
uv run --python 3.13 --frozen -- python -m openclaw_mem --help
Note: this repo defines the
openclaw-memconsole entrypoint, souv run openclaw-mem ...is supported after dependency install (uv sync --locked). The docs useuv run --python 3.13 --frozen -- python -m openclaw_mem ...as the most explicit source-checkout form.
2) Local DB smoke test (no OpenClaw required)¶
DB=/tmp/openclaw-mem-realitycheck.sqlite
uv run --python 3.13 --frozen -- python -m openclaw_mem init --db "$DB" --json
cat > /tmp/openclaw-mem-sample.jsonl <<'JSONL'
{"ts":"2026-02-12T08:10:00Z","kind":"tool","tool_name":"web_search","summary":"searched docs status markers","detail":{"query":"status markers DONE PARTIAL ROADMAP"}}
{"ts":"2026-02-12T08:11:00Z","kind":"note","summary":"Docs updated","detail":{"path":"README.md"}}
JSONL
uv run --python 3.13 --frozen -- python -m openclaw_mem --db "$DB" --json ingest --file /tmp/openclaw-mem-sample.jsonl
uv run --python 3.13 --frozen -- python -m openclaw_mem recall "Docs" --db "$DB" --mode auto --json
uv run --python 3.13 --frozen -- python -m openclaw_mem pack --db "$DB" --query "Docs status" --trace --json
uv run --python 3.13 --frozen -- python -m openclaw_mem curate scan --target memory --db "$DB" --json
uv run --python 3.13 --frozen -- python -m openclaw_mem db info --db "$DB" --json
Expected output shape (minimal):
initreturnsopenclaw-mem.init.v1plus config/capability evidence.ingestreturns something like:{ "inserted": 2, "ids": [1,2] }recallreports the selected/fallback lane and returns attributable results.packreturns bounded items, citations, composite score evidence, and a trace.curate scanis review-only and emits governed candidates without applying a mutation.db inforeports schema, FTS, taxonomy/lifecycle distributions, embeddings, and optional sqlite-vec posture.
3) Engine receipt debug smoke (local-only, no memory text)¶
node --experimental-transform-types tools/mem-engine-receipts-debug.mjs
Expected:
- prints one synthetic recall lifecycle receipt (openclaw-mem-engine.recall.receipt.v1)
- prints one synthetic autoCapture lifecycle receipt (openclaw-mem-engine.autoCapture.receipt.v1)
- payload contains IDs/scores/counts only (no memory content text)
Status map (operator view)¶
Core (local, deterministic) — DONE¶
- SQLite ledger + FTS5
- JSON receipts (
--json) - Progressive recall:
ingest → search → timeline → get - Context pack command (
pack) with fail-open baseline behavior - Primary
recallrouter across lexical/vector/hybrid/graph lanes - Six-state lifecycle, eight-kind taxonomy, pack quotas, composite scoring, citation-only use tracking, and reversible soft archive
- Exact sqlite-vec → NumPy → Python vector fallback chain with explicit receipts
- Deterministic graph-preflight pack integration:
pack --use-graph=off|auto|onwith traceable trigger/probe receipts - Pack decision surfaces (
trust_policy, graphprovenance_policy,policy_surface,lifecycle_shadow) with bounded trace receipts - Deterministic triage for automation (
triage --mode heartbeat|cron-errors|tasks)
Quality layers — PARTIAL¶
- Embeddings + vector search (
embed,vsearch) — API and optional local FastEmbed providers are supported; missing optional providers degrade explicitly - Hybrid retrieval (
hybrid) — shipped; optional rerank/network providers remain opt-in - AI compression (
summarize) — requires an API key - Graph query plane (
graph topology-refresh,graph query ...,graph health, drift/provenance checks) — shipped foundation; deeper integrations still evolving - Graph semantic match v0 (
graph match "<idea/query>") — shipped local-first idea → project slice with explanation paths; deeper typed graph automation still evolving - Graph-assisted search first slice (
search --graph --graph-path <graph.json>) — shipped opt-in; default off, fail-open to lexical-only, deterministic blended ranking withrank_componentstrace - Graph-aware pack ranking (
pack --graph-aware) — shipped opt-in trace lane; default off, fail-open, zero-write - Topology writer (
graph render topology) — shipped generated review surface (Markdown summary + Mermaid view + drift report); generated docs are review-only, not source of truth - Graph fact guard pilot (
graph fact propose|guard) — shipped advisory-only pre-edit guard; proposals require source refs, stale/superseded facts are excluded from current guard truth - Recommendation-only optimization observers (
optimize review,optimize consolidation-review) — shipped in the current release scope; now include recent-use-aware decay protection plus bounded importance-drift spot checks while still proposing only and never mutating stored memories - Dual-language fields (
--text-en, EN embedding table) — shipped, still evolving - Episodic event capture/ingest/query lane — shipped foundation; operator flows still evolving
- Episodic verbatim semantic lane (
episodes embed,episodes search --mode hybrid|vector) — shipped first production slice; still operator-driven and read-only
OpenClaw integration — PARTIAL¶
- Auto-capture plugin (
extensions/openclaw-mem) — captures tool results to JSONL - Backend-aware annotations (records backend + memory tool actions for observability)
- Gateway-assisted semantic recall (Route A):
index+semantic— depends on OpenClaw gateway +memory_search - Host bridge envelopes (
bridge status|recall|store) — per-operation versioned JSON envelopes (openclaw-mem-engine.bridge.<op>.v1); recall is read-only, store performs a canonical write only with explicit operator approval - Unified installer/doctor adapters for Claude Code, Codex, OpenClaw, generic, Gemini CLI, Cursor, and Windsurf
- MCP
mem_recall/mem_packequivalence plus read-only graph tools
Near-term roadmap — ROADMAP¶
- Graph roadmap depth: richer typed-entity wiring + deeper operator queries/autonomy on top of the shipped query plane
- Topology seed automation (
topology-seed) so curated graph truth is easier to bootstrap and maintain - Consolidate/promotion/dissent workflows on top of v2 lifecycle and scoring evidence
Graphic Memory compiled synthesis — PARTIAL¶
graph synth compile— compile a reusable synthesis card from explicit refs or query-preflight selectiongraph synth stale— deterministic stale check (source digest + query-selection drift)graph lint— deterministic health checks for stale cards / missing source metadata / unreferenced capture rows- Graph preflight preference for fresh synthesis cards when they cover multiple selected raw refs
- Graph pack preference for fresh synthesis cards when explicit refs are covered by a fresh synthesis card
- Main
pack --use-graphnow records graph-consumption receipts and elides raw L1 lines already covered by preferred synthesis cards in the combined graph-aware bundle cmd_hybridnow prefers fresh synthesis cards in top results when they cover multiple high-ranked raw hits, and emits graph-consumption receipts on the synthetic resultsearchnow prefers fresh synthesis cards in top results when multiple matched raw hits are covered by the same card, with graph-consumption receipts on the synthetic resultgraph synth refreshnow replays the old card’s selection, emits a fresh replacement card, and marks the old card assupersededwith asuperseded_byreceiptgraph lintnow reports deterministic coverage pressure /candidateCardSuggestionsusing scope + repeated-keyword clusters, not just scope-only groupinggraph synth stale/graph lintnow surface deterministic review + contradiction-keyword signals from newly selected refs- Optional Markdown materialization during compile (
--write-md)