Theme / v3.9.0

MemPalace

本地優先的 AI 記憶宮殿

Changelog

版本更新紀錄

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

當前記錄版本

v3.9.0

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

    當前版本2026-08-31
    • 版本定位v3.8.0v3.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 ↗
  2. v3.8.0

    舊版本2026-08-23
    • v3.7.1v3.8.0:版本欄位更新為 v3.8.0(2026-08-23 發布,正式版);主題為大型 palace 效能、MCP proxy 瘦身與可喚醒代理協調。
    • Chroma metadata 讀取跳過 vector indexlist_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 ↗
  3. 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_filechunk_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_clientChromaBackend._client 會先清除 chromadb 的 path-keyed SharedSystemClient cache 再重開,避免 HNSW index 倒退(#2002/#2026/#2028/#2032)。
    • MCP 在 SIGTERM/SIGHUP 釋放 writer leasemain() 安裝 handler 改走 sys.exit,讓既有 atexit 釋放路徑在 SSH 斷線或 container/systemd stop 時仍執行(#2205)。
    上游 Release Notes ↗
  4. 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 replacementsupersede() / 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,但未發佈新版