Files
dotfiles/claude/memory/session-2026-04-09-l1-audit.md
T
David F GliddenandClaude Opus 4.8 3f9a89b00c chore(memory): Basic Memory trial begins — sync normalization baseline (283 files)
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>
2026-06-06 09:52:17 +02:00

94 lines
7.1 KiB
Markdown

---
name: Session 2026-04-09/10 evening — L1 full pipeline audit, systemic fixes roadmap
description: Comprehensive L1 audit (4 parallel agents), 8 issues filed, Effect-TS
adoption proposed as substrate. Research folder established. Full diagnostic-to-engineering-roadmap
for Seb.
type: project
originSessionId: 662625c1-73a8-4f3d-a7f1-4ed16a33864c
permalink: claude-memory/session-2026-04-09-l1-audit
---
## What we did
### Research folder established
Created `CapableMind-AI/docs/thinking/David/research/` for external project studies. Updated routing table in `thinking/David/CLAUDE.md`. Memory saved for future sessions.
### External landscape research
- **GitHub trending survey** — evaluated 10 trending projects for CapableMind relevance
- **Hermes Agent study** (`2026-04-09-hermes-agent-study.md`) — trajectory-to-training pipeline, skill architecture (conditional activation), memory manager (provider plugin with single-provider constraint). Key insight: trajectory capture as training byproduct.
- **MemPalace study** (`2026-04-08-mempalace-study.md`) — operational assessment of our installed tool. 96.6% recall with vector-only search validates BMF's logchain philosophy. No governance layer, no developmental model — BMF goes beyond it. KG is empty (0 entities).
### L1 recall path audit
- **Recall path audit** (`2026-04-09-l1-recall-path-audit.md`) — full code trace of query entry → results. Corrected 3 stale assumptions from PENDING-5: query router already has intent-based fast paths, classification confidence already threaded through (Amendment 61), stub embeddings already blocked (#15 fix). Real problems: Ollama query SPOF, BM25 broken in SurrealDB, normalization aggressive.
- Filed **#124** (Ollama silent recall failure), **#125** (BM25 broken), **#126** (normalization)
### L1 pipeline landscape
- **Pipeline landscape** (`2026-04-09-l1-pipeline-landscape.md`) — surveyed tools for each problem category:
- **LanceDB** recommended for vector storage (embedded Rust/Node, Tantivy FTS, no compaction stalls)
- **@huggingface/transformers** recommended for in-process embedding (eliminates Ollama SPOF)
- **p-queue** recommended for dispatch backpressure (later superseded by Effect structured concurrency)
- Graphiti (temporal fact invalidation pattern), Mem0 (conflict resolution), XState (state machines) noted as study-only
### Full pipeline audit (4 parallel agents)
- **Full audit** (`2026-04-09-l1-full-pipeline-audit.md`) — most significant work of the session. Four agents read the entire codebase in parallel:
1. **March findings verification**: 13/27 fixed, 5 partially fixed, 9 improved with logging. Fire-and-forget 22→19.
2. **Write path**: Logchain solid, classification never drops events, module isolation works. HIGH: vector battery skip loses events permanently, entity module swallows all pipeline errors.
3. **Replay/bootstrap/infra**: CRITICAL: modules report `ready` during replay (setReadyPartial/setReady are dead code, coverage annotations never wired). Frozen latency baseline still not fixed. Bug D (idle stall) IS fixed via activity lease.
4. **Module internals**: Temporal query errors silently return empty. Training graduation still fire-and-forget. ~75 bare catch blocks, ~15 architecturally significant. In-memory state loss universal (anomaly: 14-day gap after restart).
- Filed **#133** (CRITICAL: readiness lie), **#134** (entity error swallowing), **#135** (temporal query silent failure), **#136** (vector battery skip)
### Systemic fixes roadmap
- **Systemic fixes** (`2026-04-10-l1-systemic-fixes.md`) — THE document for Seb. Maps every finding to a systemic solution:
- **Effect-TS** as substrate: typed errors, structured concurrency, Layers for DI, supervised fibers, built-in tracing. Adopted because team is scaling — do it once correctly. Strangler-fig adoption over 4 weeks.
- **Position-based readiness**: derived from stream position, not asserted. No new deps.
- **better-sqlite3 snapshots**: module state survives restart. Already in dep tree.
- **LanceDB + transformers.js**: decouple vector from SurrealDB, embedding from Ollama.
## What we decided — and why
1. **Research folder in thinking/David/research/** — David is doing increasing landscape scanning. Needs a permanent discoverable home, not ephemeral session notes.
2. **Effect-TS over neverthrow** — Initially recommended neverthrow (simpler, solves only error handling). David pushed back: "We are a two person team TODAY, but we are ramping this up to scale." The prime directive demands doing it once. Effect solves errors + concurrency + DI + tracing + resource lifecycle in one framework. neverthrow would mean adopting a second tool later. Effect is the right long-term bet despite higher upfront cost.
3. **LanceDB over sqlite-vec** — LanceDB has built-in Tantivy FTS (real BM25), Arrow-based columnar storage (no compaction), native Node.js bindings. sqlite-vec is simpler but caps at ~100K vectors and needs separate FTS5. Given scaling intent, LanceDB is proportionate.
4. **Full audit before proposing fixes** — David asked "what's your confidence?" on the recall diagnosis. I admitted it was based on stale PENDING-5 data. David insisted on thorough audit first. The audit corrected multiple stale assumptions and found the CRITICAL readiness lie that wasn't visible from the recall path alone.
## What's unresolved
- **None of the 8 filed issues have responses from Seb yet** — all filed today, Seb is active but busy with other priorities (Amendment 62 / BetterBridge)
- **DN-RET-02 practitioner questions** — 5 questions about score memorization under performance conditions, still unanswered by steward
- **Effect-TS adoption needs Seb's buy-in** — this is a foundational change to HIS codebase. The document makes the case but the conversation hasn't happened.
- **MemPalace KG empty** (0 entities, 0 triples) — decision pending on whether to populate
- **ARC + chamber-library pushes** still blocked on Gitea
- **External Auditor response** pending
## Next actions
1. **Discuss systemic fixes with Seb** — bring the consolidated document. Effect-TS adoption is the biggest conversation.
2. **Respond to External Auditor** — assessment pending, what enters record, whether HOLD triggered
3. **Answer DN-RET-02 practitioner questions** — score memorization, crowding, re-learning
4. **Push ARC + chamber-library** when Gitea is resolved
5. **Continue /audit of vault inbox** — 16 files remain
## Commits this session
- `487503e` — research folder, recall path audit, MemPalace + Hermes Agent studies
- `d1d4b16` — same (rebased after pull)
- `3088868` — L1 pipeline landscape
- `c35f621` — L1 full pipeline audit
- `ce60b4c` — L1 systemic fixes roadmap
## Issues filed this session
| # | Title | Severity |
|---|-------|----------|
| #124 | Ollama silent recall failure | HIGH |
| #125 | BM25 scoring broken | MEDIUM |
| #126 | Normalization aggressiveness | LOW |
| #133 | Module readiness lie | CRITICAL |
| #134 | Entity error swallowing | HIGH |
| #135 | Temporal query silent failure | HIGH |
| #136 | Vector battery skip | HIGH |
## No Thistleweld observations this session