跳到主內容

Theme / v15.10.0

Claude-Mem

Claude Code 持久化記憶系統

基礎觀念

v15.7.0:refresh 留在你的 agent、最新 Haiku 與安全強化

v15.7.0(2026-10-30 發布)修復 My Work 自動 refresh 被拒答案時跳往下一個 agent、造成隱藏 codex exec --ephemeral 執行的問題(#5189/#5190);note-taker 預設改用永遠解析到最新 Haiku 的 alias(#5195);背景重建合併與 worker 日誌修剪;並大幅強化安全——執行檔探索、https 安裝、跨源寫入防護、scrypt 金鑰雜湊與 redaction 擴大。附互動測驗與檢查清單。

概述

v15.7.0 於 2026-10-30 18:18 UTC 發布(台灣時間 2026-10-31 02:18)。本版主軸有四:

  1. My Work 的 refresh 留在你的 agent(#5190):被拒答案不再讓整個 refresh 跳到下一個登入的 agent——這正是 #5189 通報、會在裝有 Codex 的機器上觸發隱藏 codex exec --ephemeral 執行的問題。
  2. Note-taker 永遠使用最新 Haiku(#5195):預設模型從釘住的 Haiku 4.5 ID 改為 Claude Code 的 haiku alias。
  3. My Work 與 worker 的穩定性:背景重建合併、Work View 等資料庫啟動、worker 日誌修剪。
  4. 大幅安全強化:執行檔探索、安裝來源、worker 端點、Postgres 金鑰與 redaction。

My Work:refresh 留在你的 agent(#5190)

問題背景(#5189)

官方原文描述原本的行為:「When My Work’s automatic refresh got an answer from Claude Code that claude-mem refused (most often a review over 1,200 characters), the whole refresh moved on to the next logged-in agent.」

也就是說:當 My Work 的自動刷新從 Claude Code 拿到一個 claude-mem 拒絕的答案(最常見是超過 1,200 字元的 review)時,整個 refresh 會轉往下一個登入的 agent。

後果在裝有 Codex 的機器上尤其嚴重:「that meant hidden codex exec --ephemeral runs on the owner’s ChatGPT account, even with CLAUDE_MEM_PROVIDER=claude」——即使你明確設定 CLAUDE_MEM_PROVIDER=claude,工作仍會以隱藏的 codex exec --ephemeral 在你的 ChatGPT 帳號上執行。官方數字:四天約 230 次執行。

新行為

  • 被拒答案現在會終止該 agent 上的該次 refresh:refresh 停在給出答案的那個 agent 上,不會再跳給別的 agent。
  • 下一次排程執行會再試同一個 agent,並沿用既有的 failure backoff(失敗退避)。
  • 完全無法執行的 agent(未登入、crash)仍會把 run 交給下一個——修復只針對「agent 有給答案但被拒」的情況。

Feedback 按鈕

My Work header 的 Star 按鈕旁新增 Feedback 按鈕,點擊後開啟簡短的 “My Work feedback” issue 表單。

Note-taker 永遠使用最新 Haiku(#5195)

note-taker 的預設模型改為 Claude Code 的 haiku alias——它永遠解析到最新的 Haiku,不再是釘住的 Haiku 4.5 ID。三個重點:

  • 已存設定自動遷移:仍帶著出廠釘選 ID 的設定,升級時會移到 alias。
  • 自己輸入的模型不受影響:只有「從未改過預設」的安裝會被移動。
  • 成為政策:repo 的 CLAUDE.md 現在明言——永不把有日期的 model ID 當作預設(never pin a dated model ID as a default)。

My Work 與 worker 的穩定性

  • 背景重建合併(coalesced):activity 驅動的 My Work 背景重建會被合併——開啟中的 My Work 頁面不再於每次 database commit 時重建(#5133,減緩 #5124)。
  • Work View 等資料庫就緒:Work View 會等 database 完成啟動後才建置(#5157)。
  • 串流中斷後對齊:viewer 的處理狀態會在串流中斷(stream gap)後重新對齊(#5139)。
  • 日誌修剪:每日 worker log 超過 CLAUDE_MEM_LOG_RETENTION_DAYS(預設 30 天;設 0 為永久保留)即被修剪;今天與昨天的檔案永遠保留(#5186)。

Projects

  • 命名環境的明確繼承:父 Git repository 內的命名環境(named environments)可以宣告明確繼承(explicit inheritance),無關的父專案記憶不再洩漏進其 context(#5022)。
  • Oh My Pi:將暫時性(transient)專案記憶保留在 model context 中(#5183)。
  • Claude Duet:支援 capture 與 recall(#5188)。

Media:image-aware observations 第一階段(預設關閉)

本版加入 image-aware observations 的第一階段(#4341):

  • 有界的媒體契約(bounded media contracts) 與 lazy 載入的 Sharp 0.35.5 轉換器,附大小(size)、像素(pixel)與期限(deadline)限制。
  • 兩個開關 CLAUDE_MEM_MEDIA_CAPTURE_ENABLED 與 CLAUDE_MEM_MEDIA_INFERENCE_ENABLED 預設皆為 false——不安裝媒體功能,行為不變。

Security 強化

範圍 內容 PR
執行檔探索 絕不查看當前目錄(current directory) #5148
安裝 安裝器 URL 一律 https;Bun 從 owner 控制的目錄執行 #5149
Worker 端點 拒絕跨源(cross-origin)瀏覽器寫入 session endpoints 與 POST /api/memory/ingest #5162、#5161
Postgres API keys 以加鹽 scrypt 雜湊儲存;所有 sslmode 皆被遵守 #5160、#5152
檔案寫入 atomic writes 改用 exclusive-create 的隨機暫存名稱 #5151
標籤與閘門 private tags 在 caps 之前先剝除;Hermes 的最後一輪加上閘門 #5150
Redaction 涵蓋 GitLab、Hugging Face 與 npm tokens #5174
Redaction URL credentials 中的密碼 #5173
Redaction 本地 redaction 開啟時,inbound sync 文字也被處理 #5171

修復精選

  • Hook stdin:在完整時即被框化(framed),不再等待 EOF(#5126)。
  • EPIPE:已關閉 session 的 EPIPE 不再記為 fatal(#5177)。
  • Windows Codex:sandbox 拒絕附帶說明(#5140)。
  • OpenAI-compatible provider:從帶文字碼的 200 error envelope 讀取 HTTP status(#5191)。
  • SessionStart:memory-use block 計入預算、不含 TeamBrain(#5181)。
  • 資料目錄:CLAUDE_MEM_DATA_DIR 開頭的 ~ 會被展開(#5179)。
  • 日誌讀取:log tail 只讀取完整行(#5166)。
  • Chroma:過濾後的 fallback 收窄至 SQLite row ids(#5154)。
隨堂測驗

v15.7.0 之前,My Work 自動 refresh 遇到 Claude Code 給出被 claude-mem 拒絕的答案(如超過 1,200 字元的 review)時,會發生什麼?

💡 想先看個提示?

問題不在重試,而在「換人做」——而且換到的可能是你沒同意的 provider。

隨堂測驗

v15.7.0 起,note-taker 的預設模型是什麼?

💡 想先看個提示?

關鍵字是 alias(別名)而非固定 ID。

動手升級檢查清單

升級 v15.7.0:動手檢查清單

逐項勾選,確認你已完成升級必要的步驟(進度會保存在此瀏覽器)

0 / 7

延伸閱讀