--- name: Session 2026-04-07 — v0.62.0 replay overnight description: BMF v0.62.0 replay running overnight in Oviedo, Thistleweld flagged allSettled error swallowing type: project permalink: 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:4b` to `~/.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) and `com.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) 1. **Levenshtein NONE ghost**: `name_lower` computed 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. 2. **Promise.allSettled swallowing errors**: replay-coordinator.js ~line 318 uses `Promise.allSettled` across 11 modules. Errors caught but potentially silently dropped. "Eleven modules, one swallower. Silent failures scale fast." 3. **Hardcoded model string**: `qwen2.5:7b` default scattered across bootstrap.ts and tiered-models.ts — wants a config layer. ### State when left - BMF PID running via `com.capablemind.bmf` launchd (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: `hasRealResourceMonitor` guard 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 ### 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