Theme / v3.9.0
MemPalace
本地優先的 AI 記憶宮殿
Changelog
版本更新紀錄
收錄 MemPalace 的版本變遷軌跡。每條紀錄以舊值→新值呈現,舊值以紅線劃掉但保留可見,方便對照改動軌跡。
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_exactcross-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 必須一起設計。
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-scopedlist_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、warmmempalace_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 才可移除),無法證實者落入新的unresolvedbucket,永不 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)。
- v3.7.1→v3.8.0:版本欄位更新為
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-keyedSharedSystemClientcache 再重開,避免 HNSW index 倒退(#2002/#2026/#2028/#2032)。 - MCP 在 SIGTERM/SIGHUP 釋放 writer lease:
main()安裝 handler 改走sys.exit,讓既有atexit釋放路徑在 SSH 斷線或 container/systemd stop 時仍執行(#2205)。
- version 欄位更新為
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 servesecure-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 hallwaysCLI(#1894/#1895)。 - Per-project mining exclusions(
exclude_patterns,#1213/#1953)、LaTeX.tex/.bibcoverage(#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/beforedate window,並可選 OpenAI-compatible embeddings。
- version 欄位更新為
圖例
- 當前版本 本站現在記錄的版本
- 舊版本 已被取代,保留作歷史對照
- 已同步 與上游 release 對齊
- 僅上游變動 上游 main 有 commit,但未發佈新版