Files
dotfiles/claude/memory/project-mempalace-winddown.md
T

55 lines
9.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
name: project-mempalace-winddown
description: "Decision (steward, evidenced, 2026-07-07): wind down the palace-memory MemPalace instance and rewire wake/wrap to the files layer. Execution deferred to a fresh session. KG already exported + secured. Typography palace KEPT, untouched."
metadata:
node_type: memory
type: project
originSessionId: 9f112d92-72f5-434e-8b7f-cde0e80da021
---
# MemPalace wind-down — palace-memory
**Decision (steward, 2026-07-07):** wind down the `palace-memory` MemPalace MCP instance. It is the unaffiliated stopgap ([[mempalace-is-unaffiliated-stopgap]]); BMF/CapableMind is the destined replacement. Execute the rewrites **fresh/rested**, not at the tail of the long 2026-07-07 session.
## Why (evidenced — full detail in `session-ledger-2026-07-07.md`)
Independent audit of 46 sessions: MemPalace's **search + KG are NOT load-bearing** for palace-memory — confirmatory/redundant. Three convergent tests: (a) `find_tunnels`/`traverse` used **0× ever**; 27/31 `kg_query` = a byte-identical wake ritual; genuine reach ~0.43/session, declining to ~0.07 in July; (b) 5/5 distinctive search payloads found verbatim in the Markdown; **zero** transcript statements credit search/KG with file-absent content; (c) write:read ≈ 7:1; 437 entities all type 'unknown'. Heaviest use (06-30 clasp) returned a **stale claim the files corrected**. Confidence: counts 0.93, verdict 0.82. Cost of keeping: HNSW↔sqlite drift (#1665/#1589) fired live at the 07-07 wake — silent-bad-recall class, **no safe repair path**; install is an editable fork ahead 5/behind ~300.
## DONE (2026-07-07 — no-regret, reversible)
- **KG exported + secured:** `memory/knowledge-graph.jsonl` (329 triples) + `memory/knowledge-graph-entities.jsonl` (437), all JSON-validated. Git-tracked (dotfiles, dual-remote) → strictly more durable than the SQLite KG. Highest-value slice = 84 `drift-pattern` triples (most already mirrored in feedback-memory files).
- **Verified backup:** `~/.mempalace/palace-memory.pre-rebuild-bak-20260707-1230` (chroma 88,159 + KG). Keep until wind-down verified complete.
- Throwaway partial re-embed dir removed.
## STAGED PLAN (execute fresh)
1. **Stop feeding it** — disable the Stop/PreCompact hooks that fire `diary_write`/`add_drawer`/`kg_add` (cheap, reversible; `mempalace hooks` / settings).
2. **Drop the dependency** — remove the `mempalace` MCP server from the Claude Code config so it stops loading + quarantining drift every wake.
3. **Rewire skills to files** — **✓ DONE 2026-07-07** (steward-directed). `/wake-up` §2.b → files-layer reconstruction (recent `session-*.md` trajectory + `grep drift-pattern knowledge-graph.jsonl`), §2.e upgrade-check retired, §5 constraints inverted (files primary); `/wrap-up` §4 → the session file IS the record, §5 → append JSONL triples to `knowledge-graph.jsonl` (soft-invalidate via `valid_to`), §8 template updated. No live `mempalace_*` calls remain; typography palace KEPT; both skills carry provenance notes; recorded in the skill-harvest register.
4. **Cold-archive** the backed-up palace; delete the live churning one after verification.
## EXECUTED — 2026-07-08 (items 1, 2, 4 — all reversible; hard deletion deferred)
- **Item 1 (hooks) DONE:** removed the Stop (`mempal_save_hook.sh`) + PreCompact (`mempal_precompact_hook.sh`) hooks and the 3 `MEMPALACE_*` env vars from `~/.claude/settings.json`. Re-validated. Backup: scratchpad `mempalace-decommission-backups-20260708/settings.json.bak` (settings.json is NOT dotfiles-tracked — backup is the rollback).
- **Item 2 (MCP server) DONE:** removed the `mempalace` block from `~/.claude.json` `mcpServers` (it pointed at palace-memory). Now `mcpServers = {plane}`; 0 `mempalace-mcp` refs; JSON re-validated. Backup: `.../.claude.json.bak`. Typography palace is CLI-accessed (not via this server) → unaffected; the mempalace install + venv at `~/_Dev/mempalace` KEPT for the typography CLI.
- **Item 4 (cold-archive) DONE (reversible move):** `palace-memory` (838M) + `palace-memory.pre-rebuild-bak-20260707-1230` (824M) → `~/.mempalace/_decommissioned-palace-memory-20260708/` (1.7G) + README. **Hard deletion DEFERRED** to explicit steward confirm (reclaims ~1.66 GB). Root-level shared config + other palaces (`palace`, `palace-vault`, typography ×2) left untouched.
- **This session:** mempalace MCP tools remain loaded (server process still live this session); from the next post-clear session there are no mempalace hooks and no mempalace server. An old Stop hook, if still cached this session, errors harmlessly.
- **Item 4 EXTENDED → external cold storage (2026-07-08, steward-directed):** all dead instances relocated OFF the internal disk to `/Volumes/Temp storage 2020/_dev/mempalace decommission/` (3.1G; rsync rc=0 + exact file-count match per dir, sources removed after verify): `_decommissioned-palace-memory-20260708` (palace-memory + its backup), `palace-vault`, `palace`, `archive-chamber-library-2026-04-30`. Internal `~/.mempalace` now holds ONLY the typography palace + its backup + root-level shared config. → the earlier "1.66 GB hard delete" is moot (moved, not copied; the external copy IS the cold archive).
- **BMF lessons report → DONE 2026-07-08:** `~/_Dev/CapableMind-AI/docs/thinking/David/l1-reliability/mempalace-decommission-report-for-bmf-2026-07-08.md` — closing chapter of the substrate-failure inquiry; mapped to Logchain-as-truth (#1) / honest-degradation (#4) / PENDING-16 (observation-recall) / PENDING-17 (epistemic integrity).
- **Still owed (minor):** optional tidy of the inert `mcp__mempalace__*` allow-entries in `settings.local.json` (harmless without the server); the CM `thinking/README.md` index row for the report + its eventual commit (steward — shared repo w/ Seb).
## PRESERVE — do NOT touch
- **Typography palace** (`~/.mempalace/palace-chamber-typography`, queried via CLI for ARC type work, [[reference-typography-palace-cli]]) — SEPARATE instance, genuinely used, KEEP as-is. The audit verdict is palace-memory ONLY. Do **not** do a global embedder flip (would break it, 1024-dim/bge-m3).
- The exported drift-patterns — wire wake to read them.
## BMF lessons report — DONE 2026-07-08 (`mempalace-decommission-report-for-bmf-2026-07-08.md`)
**Framing (steward's own):** MemPalace was a long experiment — stopgap AND *reconnaissance*: a substrate close to our own vision, run to see **from the inside** how others approach the AI-memory problem. The report harvests everything of value **FOR BMF** (CapableMind L1, the real replacement), not a mere obituary.
**Home:** `~/_Dev/CapableMind-AI/docs/thinking/David/l1-reliability/mempalace-decommission-report-for-bmf-2026-07-07.md` — build ON `substrate-failure-lessons-2026-06-07.md`, do not duplicate.
**Sources to gather (fast):** substrate-failure-lessons-2026-06-07.md + sibling l1-reliability post-mortems (recall-quality-baseline, ingestion-forensic, deep-audit-plan); MemPalace's own `~/_Dev/mempalace/CLAUDE.md` design principles; THIS session's forensics (`session-ledger-2026-07-07.md` + the audit verdict); PENDING-16 (observation-recall coupling) + PENDING-17 (epistemic integrity) = BMF design intent to map to; the MemPalace feedback memories.
**Drafted outline (my synthesis this session — fill this in):**
1. *What MemPalace is* (the idea close to ours) + *what we ran* (~4 mo, ~88k drawers, session substrate alongside a files layer).
2. *Verdict — delivered vs aspirational:* search+KG NOT load-bearing (audit: ~0.43 reach/session→~0.07; graph features 0×; write:read 7:1); value **migrated to files**; the "cheap context / 100% recall" promise vs the fragile reality.
3. *Failure modes → BMF lessons:* HNSW↔sqlite drift, no safe repair → index must be **rebuildable from an authoritative store** + drift **detectable/auto-healed** (validates L1 logchain-as-truth); silent-degradation-quarantine → **honest degradation** (constitutional constraint #4 — MemPalace = case study of the violation); repair-SIGSEGV → **recovery is the most-tested path**; heavy embedder + global-config lock-in + 21h re-embed → **swappable/deterministic-re-embed-from-source, per-collection**; write:read 7:1 bloat → **validates PENDING-16 observation-recall coupling**; fork-maintenance (300 behind) → **own the stack**.
4. *Ideas worth carrying:* verbatim storage; **temporal-validity KG** (valid_from/to, invalidate); hooks-driven zero-token background ingestion; cross-session **diary/continuity**; local-first/privacy-by-architecture; a scannable compressed index (AAAK) — concept worth evaluating. **Decorative-not-load-bearing** (avoid): the wing/room/drawer loci metaphor (wing-filter broken, entities all type 'unknown', graph-traverse never used).
5. *THE deep lesson — files-authoritative convergence:* value migrated to git-versioned Markdown; the durable substrate should **BE** the verifiable/versioned layer, with vector/graph a **rebuildable-from-truth index, not the primary store.** Maps to L1 logchain-as-truth + PENDING-17 (don't launder uncertainty).
6. *Decommission record:* KG exported ✓; typography palace kept; backup retained.
## Moot now
- The 3.3.6→3.5.0 fork-rebase / embeddinggemma-vs-bge-m3 question is **moot for palace-memory** (we're leaving it). Typography stays on bge-m3 as-is unless separately revisited.