跳到主內容

Theme / v15.10.0

Claude-Mem

Claude Code 持久化記憶系統

基礎觀念

v13.37.0~v13.39.0:Marketplace 事故修復、Hooks 直呼與 PostCompact

🟡 中階|掌握 v13.37.0~v13.39.0 三個 release 的重點:v13.36.1 marketplace 衝突標記事故的修復與 CI 防線、hooks 改 exec form 直呼 claude-mem(Windows 不再閃 console)、launcher 本機編譯與 fail open,以及 Codex subagent 壓縮後恢復記憶 timeline 的 PostCompact hook。

概述

claude-mem 在 2026-10-13 一天內發布三個 release:v13.37.0 修復 v13.36.1 的 marketplace 更新事故、v13.38.0 讓 hooks 以 exec form 直呼 claude-mem(#4345)、v13.39.0 以新的 PostCompact hook 恢復 Codex subagent 壓縮後的記憶 timeline(#4733)。

v13.37.0:marketplace 事故修復

問題

13.36.1 發布後合併的變更,把帶著 git stash conflict markers 的構建產物 commit 進 plugin 檔案。plugin 從 main 安裝,自動更新的裝置在同一個 13.36.1 版號下拿到這些壞檔——worker 以 Unexpected << 失敗、mcp-search 關閉連線、記憶擷取停止。npm 版 claude-mem@13.36.1 先發布、不受影響。

修復與防線

  • CI 現在會先檢查 committed plugin files(merge-conflict markers + node --check)。
  • Worker startup 改為等待 locked database:13.36.0 的 schema-writer check 在 busy timeout 設定前執行,1ms 內以 database is locked 失敗且兩次失敗不重啟——現在會等鎖。
  • CLAUDE_MEM_QUOTA_FALLBACK_PROVIDER 預設改為 claude(涵蓋 rate-limited/over-capacity/down/回重複批次;設 off 可等待 provider)。
  • 曾為 13.35.0 關閉 auto-update 釘版的使用者,請重開 autoUpdate 並重啟。

v13.38.0:hooks 直呼 claude-mem

每個 Claude Code hook 改用 exec form("command": "claude-mem", "args": [...])、不經 shell:

  • Windows 消除每次工具呼叫閃 console 視窗搶焦點的問題(#3605 等)。
  • npx claude-mem install/update 在本機編譯 launcher:mac/Linux ~/.local/bin/claude-mem、Windows %LOCALAPPDATA%\claude-mem\bin\claude-mem.exe(並加 PATH);marketplace 安裝會自我修復 launcher。
  • Launcher 掛掉時 fail open:印一行 claude-mem: <reason>, continuing without memory,不阻斷工作。
  • exec form hooks 需 Claude Code 2.1.139+(install/doctor 對舊版警告);PATH 剛加入時,首次 session 後需從新終端機重啟 Claude Code。

另含 16 項社群修正:observer 對拒絕 thinking 參數的 gateway 重試一次(CLAUDE_MEM_OBSERVER_THINKING 文件化)、worker 大 repo 不再卡(git 指令不阻擋 event loop)、CLAUDE_MEM_LLM_STREAM_IDLE_TIMEOUT_MS、CLAUDE_MEM_DISABLE_SUMMARY=1(headless/唯讀)、mode prompts 驗證(使用者 mode 不得遮蔽內建)、Chroma 同記憶寫入序列化、IPv6 主機加括號等。

v13.39.0:PostCompact 與 Codex subagent

問題

Codex 不對 subagent threads 送 SessionStart,壓縮過的 subagent 一直拿不到記憶 timeline。

解法

新 PostCompact hook 以 session_id + agent_id 標記壓縮過的 thread;該 thread 下一個 PostToolUse 記錄 observation 並一次性回傳 timeline as additionalContext;SessionStart 清除標記(root thread 不會拿兩次)。共享 session-marker file 的檔案處理同時支撐 Codex compaction gate 與 Kimi context gate。

既有使用者影響

  • Marketplace 安裝且停在壞掉的 13.36.1 者應立即升級。
  • Exec form hooks 需 Claude Code 2.1.139+。
  • Windows 使用者升級後 launcher 位於 %LOCALAPPDATA%\claude-mem\bin,首次需從新終端機重啟。

學習重點

「版號不變但內容變」是安裝自 main 的隱性風險——v13.37.0 的教訓是把構建產物檢查前移到 CI 的發布閘門;而 PostCompact 的「標記 → 下一個觸發點補償 → 清除」則是沒有專屬事件時,用既有 hook 生命週期組合出補償語意的範例。