Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015jYS1tpR4P4NBxui4FSgfv
9.2 KiB
name, description, metadata
| name | description | metadata | ||||||
|---|---|---|---|---|---|---|---|---|
| project-mempalace-winddown | 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. |
|
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 = 84drift-patterntriples (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)
- Stop feeding it — disable the Stop/PreCompact hooks that fire
diary_write/add_drawer/kg_add(cheap, reversible;mempalace hooks/ settings). - Drop the dependency — remove the
mempalaceMCP server from the Claude Code config so it stops loading + quarantining drift every wake. - Rewire skills to files — ✓ DONE 2026-07-07 (steward-directed).
/wake-up§2.b → files-layer reconstruction (recentsession-*.mdtrajectory +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 toknowledge-graph.jsonl(soft-invalidate viavalid_to), §8 template updated. No livemempalace_*calls remain; typography palace KEPT; both skills carry provenance notes; recorded in the skill-harvest register. - 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 3MEMPALACE_*env vars from~/.claude/settings.json. Re-validated. Backup: scratchpadmempalace-decommission-backups-20260708/settings.json.bak(settings.json is NOT dotfiles-tracked — backup is the rollback). - Item 2 (MCP server) DONE: removed the
mempalaceblock from~/.claude.jsonmcpServers(it pointed at palace-memory). NowmcpServers = {plane}; 0mempalace-mcprefs; JSON re-validated. Backup:.../.claude.json.bak. Typography palace is CLI-accessed (not via this server) → unaffected; the mempalace install + venv at~/_Dev/mempalaceKEPT 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~/.mempalacenow 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 insettings.local.json(harmless without the server); the CMthinking/README.mdindex 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):
- What MemPalace is (the idea close to ours) + what we ran (~4 mo, ~88k drawers, session substrate alongside a files layer).
- 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.
- 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.
- 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).
- 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).
- 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.