跳到主內容

Theme / v3.11.0

MemPalace

本地優先的 AI 記憶宮殿

Changelog

版本更新紀錄

收錄 MemPalace 的版本變遷軌跡。每條紀錄以舊值→新值呈現,舊值以紅線劃掉但保留可見,方便對照改動軌跡。

當前記錄版本

v3.11.0

查看上游所有 Release ↗
  1. v3.11.0

    已同步2026-10-14
    • 2026-11-06 查核:上游最新 release 仍為 v3.11.0(2026-10-14 發布),其後無新版本。
    • 版本定位:v3.10.0→v3.11.0(2026-10-14 發布,79 個 merged PRs)。主軸:palace audit 與引導修復、EmbeddingGemma 2 opt-in embedder 與 embedder identity、原生媒體檢索、大型 palace 效能。安裝 pip install -U mempalace==3.11.0。
    • palace audit 與引導修復(#2576):mempalace audit 對五層(rooms/wings/tunnels/hallways/KG)評分,支援 --json、--fail-under(可進 cron/CI),read-only、可對服役中 palace 執行;引導修復:mempalace instructions audit、rooms propose/apply、wings split(machine-level transcript wing → per-project wing)、tunnels propose/prune、hallways --rebuild/--prune-spellings、kg normalize——全部 dry run 直到 --yes,中斷可續;LLM 步驟預設本地 endpoint、需 --accept-external-llm。
    • EmbeddingGemma 2 opt-in embedder(#2694/#2717):embedding_model: embeddinggemma2 + mempalace[embeddinggemma2] 或 [multimodal];Python 3.10+/PyTorch;CUDA/MPS/CPU;768/512/256/128 維;CUDA OOM 自動半 batch。原生媒體檢索:內建 media source adapter 把原始檔 embed 進獨立 mempalace_assets collection,opt-in 的 CLI/MCP media search 回傳 typed local asset references(file-level 檢索為實驗性)。
    • embedder identity(#2717,修 #2709):每個 palace 記錄建立它的 embedder,所有寫入路徑在 mismatch 時 fail closed;repair rebuild-index 與 --mode from-sqlite 重建後再次記錄;MCP 拒絕退回 Chroma 預設 embedder。既有 palace 不 opt-in 就不受影響;未知 embedding_model 保 MiniLM fallback,近似名稱拒絕。
    • 升級注意:①升級後首次對話 mine 會 re-mine——exchange chunker 不再丟文字(#2591),3.11 之前的 conversation drawers 視為 stale 重新 chunk+embed(百萬 drawers 約 40 分~3 小時;可 mempalace mine <dir> --mode convos --limit 200 分批;中斷可續)。②palace 拒絕以不同 embedding model 開啟——訊息教你把 embedding_model 設回原模型或 repair rebuild-index 重嵌。
    • 效能:SQLite 後端 metadata-only 更新約 6000 倍快;狀態/搜尋/wake-up 在大型 palace 保持回應(count caches 不再過期即丟:8-12 秒 → 約 1ms @360k drawers;MCP server 不再每次呼叫重載向量索引;wake-up 從 SQLite 讀;mining 不再二次方 paging,#2593);Diary/單 drawer 查詢讀 SQLite(#2650)。
    • 安全、移除與修正:ChromaDB telemetry 明確停用(GHSA-8h77);Pillow 12.3.0(Python 3.10+;3.9 停在 11.3.0 有未修 advisory)與 chromadb 1.5.9;SECURITY.md 警告勿暴露 Chroma HTTP server;read-only MCP 工具標 annotations.readOnlyHint(#2610/#2640);移除 EntityRegistry.research()/confirm_research()(無人使用的 opt-in Wikipedia lookup;wiki_cache 仍被 lookup() 讀;GHSA-mrj5)。修正:mempalace_reconnect 等 mine(10 秒後 MineInProgress);SQLite 讀取保 Chroma 鎖;event_list/event_wait 不因 from_agent 遮蔽他人請求(#2616);sync --apply 不刪仍在磁碟的 drawers(#2368/#2564);stdio MCP servers 保持回應(#2534/#2555/#2557);mempalace.yml 接受;.al/.ps1 開採;case-only 改名套用。
    • 既有使用者影響:預設行為不變(新 embedder 與媒體檢索皆 opt-in);升級後首次 mine 會 re-mine 對話 drawers(大 palace 需規劃時段);以非預設 embedding model 建立的 palace 升級前先確認 embedding_model 設定。
    • 學習重點:「palace 記錄自己的 embedder 並在 mismatch 時 fail closed」是資料層的身分契約——同一向量空間混用兩個 embedder 會靜默毀掉檢索品質,寧可拒開也要守住。
    上游 Release Notes ↗
  2. v3.10.0

    舊版本2026-09-16
    • 2026-10-13 查核:上游最新 release 仍為 v3.10.0(2026-09-16 發布),其後無新版本。
    • 版本定位:v3.9.0→v3.10.0,官方主題「lighter ways in for agents」。核心是三件事:mempalace-light-mcp(3 工具 MCP server + Palace Query Language)、host:harness:project 身分的 shared-brain rules、以及可選 native exact-vector search;新安裝遵循 XDG,並修復一條靜默寫入丟失路徑。
    • mempalace-light-mcp:3 工具 MCP server 與 Palace Query Language(#2412):palace_query、palace_exec 與 palace_coordinate 以一行 PQL 字串(如 FIND "oauth" IN backend/auth LIMIT 5)或結構化 dict 涵蓋搜尋、taxonomy、KG、graph、diary、drawers、mining、tunnels 與 RFC 003 協調,schema 約為 45 工具完整版的四分之一(10.6 KB vs 41.6 KB)。寫入走相同 sanitizing handlers,drawer 文字維持 verbatim;--read-only 拒絕 palace_exec/palace_coordinate。註冊方式:claude mcp add mempalace-light -- mempalace-light-mcp(與完整版並存,不是取代)。
    • rules 改採 host:harness:project 身分(#2508):mempalace rules 改用 --host、--harness、--project(穩定小寫 tokens)取代 --agent,並可指定 --mcp full|light 選擇工具面。logstream watch --agent 的 state file 預設 ~/.mempalace/watch/<agent>.json,Windows 身分不需私有路徑。
    • 可選 native exact-vector search:Standalone native vector CLI 與可選 wheels——GitHub releases 附 native wheels 與平台執行檔;CLI 接受 JSON embedding vectors(--vector 或 stdin),不嵌入文字、不需 Python。Native extension 載入為 collection-scoped、釋放 GIL,本地與外部寫入都會失效化 native cache;複雜 filter 與無 native extension 時 fallback 回 Python。NumPy top-k 快取向量範數、在排序前 partition 距離。
    • 唯讀搜尋不再與 writer lease 競爭:searcher.py 與 _open_search_collection 以 read_only=True 開啟 collection,以 SQLite WAL reader mode 連線、不嘗試 schema 初始化或 writer lease 鎖,CLI 與 agent 搜尋可與背景 MCP server 或寫入並行。
    • 組態遵循 XDG Base Directory Specification(#148):解析順序為 $MEMPALACE_CONFIG_DIR → 既有 ~/.mempalace(含 config.json / people_map.json / palace/chroma.sqlite3)→ $XDG_CONFIG_HOME/mempalace → ~/.config/mempalace;既有安裝維持 ~/.mempalace,palace_path 預設 <config_dir>/palace。
    • 其他新能力:CLI 寫入遵循 daemon write-routing policy(MEMPALACE_CLI_WRITE_ROUTING 或 write_routing.cli,預設 direct 不變);pgvector fleet 可透過 pgvector_shared_namespace 跨機器共用同一組 tables;hybrid-rank 權重可調(vector/BM25 預設 0.6/0.4);drawers 追蹤 last_modified;搜尋結果標明日期來源(content_date_source:filename/frontmatter/body/mtime/unknown);mempalace_kg_timeline 支援分頁;logstream 無 cursor 時預設回最新事件;新增 DeepSeek Harness plugin(.dsh-plugin/)。
    • 移除 / Breaking Change:無 palace 格式或 CLI 主指令 breaking;規則引擎的 --agent 參數由三元身分取代,自動化腳本若使用舊參數需更新。
    • 既有使用者影響:既有安裝目錄不變;想省 schema 記憶體的 agent 可加掛 light server;用 --agent 的腳本需遷移到 --host/--harness/--project。
    • 學習重點:「同一後座、兩個工具面」是 token 經濟學實作——45 工具的 schema 每 session 都要全額載入,PQL 把它壓到四分之一且不改寫入路徑;「read_only=True 開連線」則示範了 WAL 模式下讀寫並行的正確姿勢。
    上游 Release Notes ↗
  3. v3.9.0

    舊版本2026-08-31
    • 版本定位:v3.8.0→v3.9.0,官方主題是「one hub for every agent」。重點不是新增更多記憶格式,而是讓多代理共用同一個 live Hub,降低重複索引記憶體與協作成本。
    • 新增功能:健康 Hub 存在時,mempalace search 可直接重用既有 palace collection;官方案例中 4.99M-vector palace 的兩個 direct CLI searches 約佔 18.6 GB private RSS,共用 Hub 可避免每個 CLI 再載入一份大型 HNSW。filters、ranking、authentication、config negotiation 與安全 fallback 仍保留。
    • 新增協作能力:guided setup skill 可建立 private / shared-brain 環境、產生 canonical rules、分配 fleet identity 並檢查 logstream;task 建立會記錄 immutable base commit 與完整 definition of done。logstream 另新增 topic routing 與 reverse pagination,方便依主題或 newest-first 追協作事件。
    • 行為改變:Hub read 由單一 exclusive dispatch lock 改成 writer-preferring shared read lock,mutation 仍維持 exclusive;公開的 similarity 改回 raw vector score,而 closet boost 只影響 effective ranking。這表示「顯示的相似度」與「最後排序分數」概念被更清楚分離。
    • 更新機制:新增 opt-in release awareness,agent 可顯示 cached update state 並準備精確升級方案,但不會 blocking、自動安裝或偷偷開啟 network check;這是很典型的安全更新設計:提醒與執行分離。
    • 完整性修正:無法讀取的 config 不會被覆寫;寫入盡量 atomic 且保留 symlink;drawer update/delete 會清理 stale closet;running Hub 可 mine 單一 conversation file;不存在的 SQLite 不再被誤報為 clean。
    • 效能 / 資源:Qdrant bounded read 不再掃整個 collection;EmbeddingGemma sub-batch size 可調小支援記憶體較小的環境;新增 C / C++ source mining、sqlite_exact cross-handle cache invalidation 與 filtered-id lookup。
    • 移除 / Breaking Change:v3.9.0 沒有宣告 palace 格式、CLI 主指令或 storage schema 的強制 breaking migration;主要改變是 search 會優先共用健康 Hub,以及協作流程多了新的可選能力。
    • 既有使用者影響:單機直接搜尋仍可用;有常駐 Hub 或多 agent fleet 的使用者升級收益最大。若原先用 memory/RSS 估算每個 CLI 都會載一份 index,升級後容量規劃應改以「共享 Hub + 薄 client」思考。
    • 學習重點 / 建議用法:v3.9.0 是「共享狀態服務取代每程序複製大型索引」的實例。對 RAG、向量資料庫或工業自動化多服務架構都值得借鏡:讀取可共享、寫入要序列化,且 health / auth / fallback 必須一起設計。
    上游 Release Notes ↗
  4. v3.8.0

    舊版本2026-08-23
    • v3.7.1→v3.8.0:版本欄位更新為 v3.8.0(2026-08-23 發布,正式版);主題為大型 palace 效能、MCP proxy 瘦身與可喚醒代理協調。
    • Chroma metadata 讀取跳過 vector index:list_drawers 與 tunnel 讀取改直接查詢 Chroma 的 SQLite metadata、把 filter 下推 SQL,只 hydrate 要求的 preview;1.7 GB / 165k-drawer palace 上 wing-scoped list_drawers(limit=20) 從 2.31 s / 1148 MB peak RSS 降到 0.01 s / 86 MB(#2314)。
    • sqlite_exact 常見讀取不再走訪整座 palace:live 167k-drawer / 166k-closet palace 上 mempalace_status 從 6997 ms 降到 1045 ms、warm mempalace_search 從 6364 ms 降到 210-1600 ms;vector ranking 批次快取、top-k 文件延後 hydrate、equality filter 以 SQL 分頁,並為 wing/room/hall 新增 indexed generated columns 而不必改寫 1.6 GB embedding table(#2308/#2311/#2313)。
    • 長駐 Chroma server 不再因自身寫入重建 client:連續八次搜尋的 RSS 由 951 MB → 3522 MB 收斂為 940 MB → 965 MB;被替換的 client 會關閉,真正的外部資料庫變更仍觸發 rebuild(#2307)。
    • Hub-proxied MCP session 改為薄層:plain stdio proxy 只載入 forwarding path,僅在需要 local fallback 時 lazy load 完整 server;proxied session 約 17 MB,import weight 約 80 MB 降到 24 MB,50-agent fleet 估省約 3.9 GB(#2312)。
    • logstream watch 提供可喚醒代理的持久 wake-up loop:擁有 cursor 推進、重複 type filter、agent self-exclusion、persistent state files、idle exit 與 NDJSON follow mode;monitoring protocol 同步文件化 safe resume cursor 規則,以 since_event_id 而非時間戳作為 resumable high-water mark(#2315)。
    • sync --apply 不再誤刪讀不到來源的 drawers:刪除改要求 corroboration(palace 同目錄仍看得到來源 regular file 才可移除),無法證實者落入新的 unresolved bucket,永不 prune 並比照 removal 回報,避免掛載 volume 暫時離線時整座 palace 被清空(#2320)。
    • 完整性與維運修正:EmbeddingGemma 在 Apple Silicon CoreML auto-selection 下不再存入 NaN/零向量,每個向量使用前檢查 finite、非零 norm(#2283);FTS5 auto-heal 重建 index 前先驗證 content table(#2279);mesh status 跨 transport 一致,hub 發布 token-free last-known-good estate snapshot(#2309);sweep/init/split 處理 filesystem edge cases(#2244);published containers 加上 provenance 與 SBOM attestations(#2097)。
    上游 Release Notes ↗
  5. v3.7.1

    舊版本2026-08-14
    • version 欄位更新為 v3.7.1(2026-08-14 發布,正式版);為 v3.7.0 之後的完整性與重連修正補丁(post-3.7.0 integrity patch)。
    • Mine 不再被 named pipe 卡死:mine/sweep/init/compress/split 的讀取改帶 O_NONBLOCK,讓「拒絕非 regular file」的型別檢查可以執行;發現 FIFO 會印 SKIP: <name> (not a regular file) 並跳過(#2221)。
    • Project re-mine 完整性:process_file 以 chunk_total 標記批次提交,source_mtime 與內容共用同一次 fstat,失敗的 stale-drawer purge 中止該檔;mid-file upsert 失敗會先刪除該來源的部分 drawers 再 re-raise,讓下次 mine 重試而非永久跳過(#2088/#2122/#2151)。
    • Conversation mine 完整性:convo drawers 同樣標記 chunk_total,失敗時刪除部分 drawers,prefetch_mined_set 跳過未完成群組(#2183)。
    • Chroma 重連清掉舊快取:peer 或 rebuild 變更 chroma.sqlite3 後,mcp_server._get_client 與 ChromaBackend._client 會先清除 chromadb 的 path-keyed SharedSystemClient cache 再重開,避免 HNSW index 倒退(#2002/#2026/#2028/#2032)。
    • MCP 在 SIGTERM/SIGHUP 釋放 writer lease:main() 安裝 handler 改走 sys.exit,讓既有 atexit 釋放路徑在 SSH 斷線或 container/systemd stop 時仍執行(#2205)。
    上游 Release Notes ↗
  6. v3.7.0

    舊版本2026-08-10
    • version 欄位更新為 v3.7.0;新增本機 append-only agent logstream,可交接任務、artifact 與 patch。
    • secure remote serving, temporal facts, and resilient recovery:新增 mempalace serve secure-by-default 遠端/團隊伺服器路徑(TLS 1.2+、bearer token、--read-only)與 opt-in Milvus storage backend。
    • Atomic knowledge-graph fact replacement:supersede() / mempalace_kg_supersede 在同一個 instant 關閉舊 fact、開啟繼承者;temporal queries 採 half-open intervals,date-only fact 保留 whole-day 語意(#1913)。
    • Conversation chronology preserved:drawers 保留 transcript 時戳為 authored_at、exact hybrid-score ties 偏好近期內容、idempotent dry-run-first backfill 可更新既有 palace 而不重新 embed(#1890/#1891)。
    • Mined sessions populate the associative graph:precision-biased structural extractor 記錄 code symbols、URL、paths 為 drawer entities,新增 mempalace hallways CLI(#1894/#1895)。
    • Per-project mining exclusions(exclude_patterns,#1213/#1953)、LaTeX .tex/.bib coverage(#1901)。
    • Chroma recovery 區分 derived-index damage vs data loss;SQLite recovery bounded、atomic、honest(repair --mode from-sqlite 結束前需 PRAGMA quick_check 清BOSS)。
    • 本機檔案型 palace 改為 process-lifetime 單一 writer;搜尋支援 since/before date window,並可選 OpenAI-compatible embeddings。
    上游 Release Notes ↗

圖例

  • 當前版本 本站現在記錄的版本
  • 舊版本 已被取代,保留作歷史對照
  • 已同步 與上游 release 對齊
  • 僅上游變動 上游 main 有 commit,但未發佈新版