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>
8.3 KiB
name, description, type, originSessionId, permalink
| name | description | type | originSessionId | permalink |
|---|---|---|---|---|
| L1 recall-fix focused session plan (H2 first, [HARDENING], branch+PR strategy) | Concrete plan for a single focused session to fix one of the April 19 H-issues on a branch and submit as PR to bring Seb relief rather than load. H2 chosen first as most empirically diagnosable. Self-contained for pickup across context clears. | project | a5411fd1-4a96-43e7-aa1a-1a50d8951a8f | claude-memory/project-l1-recall-fix-session-plan |
Context: April 19 baseline (~/_Dev/CapableMind-AI/docs/thinking/David/l1-reliability/l1-recall-quality-baseline-2026-04-19.md) identified 4 H-issues + an architectural finding (honest-degradation invariant violated at design level). Recent BetterMemories.io commits show team widened toward circles/BBF/perf — none of the 4 H-issues directly addressed. Today's mempalace mass-dilution finding (2026-05-13) gave empirical confirmation that this class of failure is real and won't resolve itself. Steward proposed steward+Claude-Code attempt fix on a branch + PR, sparing Seb the design load (Peter likely pressing him on other priorities).
Workstream
- Repo:
~/_Dev/BetterMemories.io(L1 runtime, GitHub source of truth: skemantix/BetterMemories.io) - Owners: Steward + Claude Code (Seb out of loop until PR review)
- Governance level: [HARDENING] — addresses class of failure, not just instance. Requires PENDING.md before any code.
- Duration: Single focused half-day (4–5 hours), ONE H-issue end-to-end.
Pre-session reading (30 min, no code)
~/CLAUDE.md— refresh governance~/REVIEWED.md— REVIEWED-18 (Observation-Recall Coupling) and REVIEWED-19 (Epistemic Integrity) both authorize work in this direction~/PENDING.md— confirm no existing entry covers this~/_Dev/CapableMind-AI/docs/thinking/David/l1-reliability/l1-recall-quality-baseline-2026-04-19.md(the audit)~/_Dev/CapableMind-AI/docs/thinking/David/l1-reliability/l1-deep-audit-plan-2026-04-19.md(diagnostic plan)~/_Dev/CapableMind-AI/docs/thinking/David/l1-reliability/l1-ingestion-forensic-2026-04-19.md(ingestion side)~/_Dev/CapableMind-AI/docs/thinking/David/l1-reliability/lessons-from-mempalace-upgrade-2026-05-04.md(recent context)~/.claude/projects/-Users-davidglidden/memory/project-L1-retrieval-architecture-lessons.md(today's synthesis)
H-issue selection: H2 first
H2 (vector returns 0 on known content) chosen because:
- Most empirically diagnosable: "ingest known content, query for it, expect non-zero" is unambiguous
- Test reproduces in isolation (no temporal/entity/working-memory state needed)
- Fix surface bounded (vector module only)
- Success criterion clean: vector returns > 0 results for substrate-present content
- Reveals architectural drift early — if H2 fix is structural, we stop and propose architectural [PROPOSAL]
- Becomes template for H1/H3/H4
Investigation phase (60–90 min)
Confirm H2 is still broken in current main:
git -C ~/_Dev/BetterMemories.io log --since="2026-04-19" -- src/modules/vector/— has the vector module been touched?- Read
src/modules/vector/implementation — embedding, indexing, query construction - Read vector tests (
src/modules/vector/__tests__/) — what's currently tested? - Reproduce H2 locally:
npm testbaseline passes (sanity)- Compose minimal reproduction script: ingest one known document → query for term in it → observe vector module's return
- Capture: stack trace if error, returned result set if empty, embedding state, index state
- Cross-reference April 19 audit's specific H2 evidence
Output: short investigation note for PENDING-N entry with reproduction evidence.
Proposal phase (30 min)
Write ~/PENDING.md entry:
## PENDING-N — Fix H2: vector recall returns 0 on known content
Date: YYYY-MM-DD
Tag: [HARDENING]
Summary: Vector module returns 0 results for queries on substrate-present content; reproduced empirically in current main.
Rationale: Per April 19 audit, vector recall correctness is broken. Single-module, scoped. First of four April 19 H-issues. Establishes pattern for subsequent fixes.
Options: [2–3 fix shapes from investigation]
Recommendation: [preferred + reasoning]
Files affected: src/modules/vector/*, tests in same dir, spec amendment in capablemind/docs/thinking/David/
Awaiting: Steward authorization.
Steward + Claude.app review. AUTHORIZED → proceed. DEFERRED → close session, surface what changed mind. REJECTED → stop, don't revisit without new steward input.
Implementation phase (90–120 min, only if AUTHORIZED)
- Spec amendment first: write
capablemind/docs/thinking/David/l1-reliability/h2-vector-recall-amendment-YYYY-MM-DD.mdarticulating design intent the fix delivers on - Branch:
fix/h2-vector-recall-correctnessfrom main - Test first: write failing test that reproduces H2 (red on main)
- Fix: minimal code change to pass the test
- Full suite:
npm test— confirm no regressions across ~2,300 tests - Type/lint:
npm run check,npm run lint - Commit: conventional-commits style —
fix: vector recall returns results for substrate-present content (#N)— body references PENDING-N and [HARDENING] tag - Push branch to origin
PR phase (15 min)
Title: fix: vector recall returns results for known content (#N) (under 70 chars, conventional commits)
Body:
- Summary (bullets, why-not-what)
- Reproduction (exact commands + before/after output)
- Test plan (checklist)
- What was NOT changed (explicit: H1, H3, H4 still open; architectural honest-degradation invariant still violated)
- Known limitations (honest about scope)
- References REVIEWED-18/19 if applicable
- References PENDING-N
Tag commits with REVIEWED-N once steward authorizes.
Success criteria
- Failing test passes
- No regressions in existing ~2,300 test suite
- PR description honest about what's NOT solved
- PR mergeable in 30 min of Seb's attention (NOT a working session)
- PENDING-N marked complete in
~/PENDING.md - Session-log entry: pulling thread, drift patterns, what's next for H1/H3/H4
Non-convergence check
Per CLAUDE.md prime directive: this session must produce something useful even if Seb doesn't merge for weeks.
- The amendment doc, PENDING-N entry, and proven-reproducible test all stand on their own
- The branch + PR is a proposal, not a dependency
- Nothing in this session relies on a future step to be meaningful
Drift to watch for
- Scope creep: "while we're in here, let's also fix H3" — DO NOT. One issue per PR. The whole point of the strategy is bringing relief to Seb's review load, not load.
- Spec drift: if the fix requires spec change, propose amendment first, don't lock the code in
- Test minimalism: write the failing test for THIS bug, not a comprehensive vector-module test suite
- Contamination problem (per CLAUDE.md): if the fix doesn't make the failing test pass, don't accept "close enough" — find the actual root cause. The contamination directive predicts the executor will rationalize partial fixes; override that default.
- Architectural temptation: April 19 also identified an honest-degradation-violated-at-design-level finding. That is bigger than H2 and is out of scope for this session. Tag it [PROPOSAL] in a separate future PENDING entry.
Pickup notes for future-Claude or steward
- Read this file first; it's self-contained
- DO NOT touch code before the pre-session reading is complete
- DO NOT skip the PENDING-N proposal step — the loop is load-bearing per CLAUDE.md
- The whole strategy is: small, scoped, mergeable. If you find yourself wanting to ship more, pull back and write another PENDING for the next one.
- After H2 lands or rejects, the same template applies to H1 (entity confidence clobber), H3 (temporal fallthrough), H4 (working memory injection at 0.9). Each its own PENDING, its own PR.
Connection to today's mempalace finding
The mempalace mass-dilution discovery (2026-05-13) is the empirical case for why this work matters now. Mempalace and L1 are architecturally different (single-modal vs multi-modal-with-RRF), but the class of failure — "module reports healthy while recall is silently broken" — is what April 19 named. Today's experiment turned theory into evidence. Carry that evidence into the PENDING-N proposal as motivation.