Basic Memory v0.21.6 first sync over the live memory dir (steward-authorized live-dir trial, Option A 2026-06-06): adds permalink: to frontmatter, refolds long YAML description lines, strips final newlines. Bodies untouched — verified via full diff classification. From this commit forward, any diff in claude/memory shows only what Basic Memory or the session writes. Trial design: MemPalace untouched as incumbent; git status check on this dir at every wrap; end-of-day evaluation (recall quality, sync robustness, rebuild-from-files, malformed-file behavior). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
72 lines
4.2 KiB
Markdown
72 lines
4.2 KiB
Markdown
---
|
|
name: CapableMind L1 Detailed State
|
|
description: Technical details about BMF deployment, issues, and architecture on David's
|
|
machine
|
|
type: project
|
|
permalink: claude-memory/bmf-details
|
|
---
|
|
|
|
# CapableMind L1 — Technical Details
|
|
|
|
**Last updated:** 2026-04-08
|
|
|
|
## Current State
|
|
|
|
- **Version**: v0.62.0 (main, tag `v0.62.0`). 65 commits since v0.61.0.
|
|
- **Instance**: `mindfabric-00`. Data: `~/.capablemind/data/mindfabric-00/`
|
|
- **Replay**: Phase 1 (571 events) completed fast (~80/min). Phase 2 (21,955 events) running at ~14 events/min. ETA ~26 hours from 2026-04-07 evening. Local patch applied to replay-coordinator.ts (resource guard, counter, logging).
|
|
- **Summarizer**: wired with qwen3.5:4b (student-only, no teacher)
|
|
- **Snapshots**: working (Amendment 53) — but stale snapshots must be cleared after repair (replay-coordinator restores cursor from snapshot, skips events)
|
|
- **launchd**: `com.capablemind.bmf` (KeepAlive: true). Secondary `com.capablemind.bettermemories` was a zombie — booted out.
|
|
|
|
## Replay Stability (v0.62.0)
|
|
|
|
Major improvements by Seb (c073dca):
|
|
- **DEFINE EVENT triggers disabled during replay** — eliminates 20-30x write amplification per event (entity, temporal, preference triggers)
|
|
- **HNSW vector index dropped during replay, rebuilt in bulk after** — was 328x write ratio
|
|
- **Concurrency cap**: semaphore limits to 4 parallel ops (was ~112)
|
|
- **Batch size**: 16→4. Circuit breaker: 5→8 threshold, 30s→120s reset. CPU pause: 0.80→0.65.
|
|
- **Post-replay reconciliation**: temporal coverage recount, entity mention reconciliation after triggers restored
|
|
- Result: 1300% CPU → 30% CPU. Replay now viable.
|
|
|
|
**Issue #120** (Phase 2 stuck): resource-pause infinite loop. Local fix applied. 7 additional findings in the issue.
|
|
|
|
## Recent Amendments (from Seb, since v0.61.0)
|
|
|
|
- **Amendment 58** — Observe Quality Gate (full synthesis)
|
|
- **Amendment 59** — Inference Scaffolding via TSDoc (413 source files)
|
|
- **Amendment 60** — Observation-Recall Coupling (David's branch merged)
|
|
- **Amendment 61** — Epistemic Integrity: confidence floor (I-CF), confidence ceiling (I-CC), earned confidence type, dual bloom filter (understood vs degraded), source_classification_confidence on all storage modules, confidence-weighted recall ranking, epistemic health reporting, regression tests
|
|
- SurrealKV deadlock fix, entity extraction overhaul, weighted RRF fusion
|
|
- `skipDispatch` architecture: raw observations go to logchain only, summaries dispatched to modules
|
|
- Circle knowledge routing (Amendments 55/55A/55B/56), circle interaction tools
|
|
|
|
## Architecture Notes
|
|
|
|
- **skipDispatch**: Connector observations use `skipDispatch: true` — logchain only. The summarizer produces high-quality summaries that flow through the full pipeline. Without summarizer, vector stays empty.
|
|
- **factory_reprocess**: Re-dispatches existing logchain entries through the pipeline. Resumable (tracks `reprocess_last_seq`).
|
|
- **Model name matching**: `buildSharedLocalProvider` checks `startsWith` on model name prefix. Default `qwen2.5:7b` — must set `BM_LOCAL_MODEL` if using a different model.
|
|
|
|
## Deployment Architecture
|
|
|
|
- **Claude Code** connects via HTTP (`~/.mcp.json` → streamable-http → `http://localhost:3011/mcp`)
|
|
- **Claude Desktop** owns the MCP stdio process (provides sampling/teacher) — but API key commented out
|
|
- **Hooks** need HTTP: even with stdio MCP, hooks talk to port 3011
|
|
|
|
## Ollama Models on Disk (verified 2026-04-05)
|
|
|
|
- `qwen3.5:4b` — active summarizer model
|
|
- `mxbai-embed-large` — embedding model
|
|
- `cm-david:v2` — LoRA fine-tune, **produces garbage** (trained on v0.48.0 era data)
|
|
- `cm-keystone-ranking` (3 versions) — suspect, same training era
|
|
|
|
## Open Issues (on GitHub)
|
|
|
|
- **#120 — Phase 2 replay infinite resource-pause loop** — local patch applied, running
|
|
- **#87 — Replay findings** — entity Levenshtein + bloom monitoring gaps
|
|
- **#118 — Snapshot manifest crash safety** — CLOSED (v0.62.0)
|
|
- **#88 — Temporal upsert race** — CLOSED (v0.62.0)
|
|
- **#78 — SIGILL crash** — CLOSED (v0.61.0)
|
|
- #24 — Teacher transport wired before MCP capabilities known (open)
|
|
- #64 — Recall query starvation during active ingestion
|
|
- #65 — Compound failure pattern for bulk ingestion on laptop |