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>
3.1 KiB
3.1 KiB
name, description, type, permalink
| name | description | type | permalink |
|---|---|---|---|
| Session 2026-04-07 — v0.62.0 replay overnight | BMF v0.62.0 replay running overnight in Oviedo, Thistleweld flagged allSettled error swallowing | project | claude-memory/session-2026-04-07-replay |
BMF v0.62.0 — Replay Running Overnight
Date: 2026-04-07 (started ~23:10 UTC, 2026-04-06)
What happened
- Pulled Seb's v0.62.0 (3 commits on top of replay stability fix):
- c073dca: P0 replay stability — disable DEFINE EVENTs + HNSW during replay, concurrency cap (4), batch size 16→4, circuit breaker relaxed, CPU threshold 0.65, post-replay reconciliation
- 8dcbd5c: Temporal upsert race fix (#88), reconciliation datetime type fix
- 9ec4c39: Crash-safe snapshot manifest (#118), stale lock cleanup (#115), entity name_lower index (#87 P1-1), vector recency boost (#73), factory rules-only classification (#85)
- Added
BM_LOCAL_MODEL=qwen3.5:4bto~/.capablemind/env(was missing, defaulting to nonexistent qwen2.5:7b) - Ran
cm-ctl repair --yes— wiped 45 GB SurrealDB bloat - Snapshots survived repair — had to manually clear
~/.capablemind/data/mindfabric-00/snapshots/because replay coordinator was restoring cursor from stale snapshot, skipping all events - Two launchd agents:
com.capablemind.bmf(loaded) andcom.capablemind.bettermemories(was respawning, had to bootout) - Replay running: 571 Phase 1 events (last 7 days), ~80 events/min. Phase 2 backfill (~22K events) follows.
Thistleweld flags (audit tomorrow)
- Levenshtein NONE ghost:
name_lowercomputed field on entity table has no backfill for pre-migration records.string::distance::levenshtein(NONE, ...)throws. Non-blocking for replay (fresh DB), but will recur after replay populates entities. - Promise.allSettled swallowing errors: replay-coordinator.js ~line 318 uses
Promise.allSettledacross 11 modules. Errors caught but potentially silently dropped. "Eleven modules, one swallower. Silent failures scale fast." - Hardcoded model string:
qwen2.5:7bdefault scattered across bootstrap.ts and tiered-models.ts — wants a config layer.
State when left
- BMF PID running via
com.capablemind.bmflaunchd (KeepAlive: true) - SurrealDB: ~362 MB (clean after repair)
- Machine plugged in, Oviedo overnight
- Teacher OFF (no API key), summarizer wired (qwen3.5:4b student mode)
Issues filed
- #120 — Phase 2 infinite resource-pause loop + 7 diagnostic findings
- Fix:
hasRealResourceMonitorguard on Phase 2 resource check - Fix: replaced 22K-element throwaway array with counter
- Fix: added Phase 2 progress logging
- Findings: repair doesn't clear snapshots, allSettled swallows errors, name_lower backfill, persist cost climbing, tombstone unindexed scan
- Fix:
Patch applied locally
- Three changes to
replay-coordinator.ts(resource guard, counter, logging) - Built and running — Phase 2 processing 21,955 events at ~14 events/min
- ETA: ~26 hours (leave running overnight again)
Next check
- Verify Phase 2 completion
- Check afterReplay hooks fire (HNSW rebuild, event restoration, reconciliation)
- Check final SurrealDB size