概述
codebase-memory v0.12.0(2026-10-15 發布)官方稱之為「the biggest release of codebase-memory-mcp yet」——自 v0.11.0 起合併 231 個 PR(40 個來自社群)。四大主軸:CBM Lens Beta(給人的 code graph 介面)、文件加入圖譜、Smart CI(圖譜挑測試)、基礎設施即程式碼。
CBM Lens Beta:給人的圖譜介面
官方定位:「Until now the graph’s power reached people only through their agents. Lens is our new human interface.」——MCP 工具是 agent 的介面,Lens 則是你的介面:
codebase-memory-mcp --ui=true --port=9749
- 內建於 binary、只聽 loopback、原始碼檔保持唯讀,每個顯示的事實都標註出處。
- Explore:跟隨你正在讀的檔案或標記的原始碼,附圖譜與本地 Git 證據的影響摘要。
- Galaxy:搜尋節點/檔案/資料夾,按深度與邊型態展開出入關係。
- Architecture:repo 地圖、路由、熱點、系統結構。
- ADR:在瀏覽器中編輯專案決策文件(與
manage_adr共用)。 - Local chat:對選取的程式碼提問——推論在你的瀏覽器內執行(模型權重不隨附,需時從 Hugging Face 下載)。
文件加入圖譜
「Until now the graph stopped where the code stopped.」從 v0.12.0 起,doc comments、Markdown、reStructuredText、AsciiDoc、PDF、ADR、圖表與 OpenAPI specs 都是圖的一部分,且各自連到所談到的函式、型別與檔案——可以從文件走到它描述的確切程式碼,也可以從函式走回每個解釋它的頁面。
具體內容:
- Doc comments:17 種連結家族(Go doc links、Javadoc/KDoc、Rust intra-doc、PHPDoc
@see、Doxygen@ref等)成為MENTIONS邊;完整擷取率大幅提升(Go 35%→99.999%、C# 10%→99.8%)。 - 文件檔:Markdown sections、reST/Sphinx、AsciiDoc 與 PDF(每頁成一個可搜尋的
Section)連到它們指名的程式碼。 - ADR:成為帶狀態/日期/決策者的
ADR節點;「Supersedes ADR-3」產生SUPERSEDES邊。 - 圖表與 API specs:Mermaid、PlantUML、Graphviz、D2、draw.io、Excalidraw 成為
Diagram/DiagramElement節點;OpenAPI/Swagger 每個 operation 成為Route節點——與程式碼註冊的路由同一身分。
Smart CI:圖譜挑測試
detect_changes 新增 scope: "tests":從 merge base 到 HEAD 的變更播種圖譜、走訪所有依賴變更程式碼的節點(呼叫、引用、讀取、路由、header includes),命名路徑終點的測試與其原因。
官方的誠實承諾:「Missing or doubtful evidence never narrows the selection… An unparseable change, an unmapped test, or a reached test-runner main turns the answer into “run everything”, with the reason named.」codebase-memory-mcp 自己的 CI 是第一個使用者——PR 只跑其變更觸及的 test lanes。
另有 test-impact publish|select:把某 commit 的 frozen graph 與 per-test coverage map 打包成 bundle,PR 的選擇直接從 merge base 的 bundle 開始,不必從頭索引。
基礎設施即程式碼
Kubernetes manifests、Helm charts、Flux、Argo CD、Compose 檔、Dockerfiles 與部署用的 scripts/Makefiles/CI jobs 連成圖:trace_path 的 run 模式可走 Service → workload → Image → Dockerfile → 執行的程式(含容器的環境變數);deploy 模式追「誰部署誰」、topology 模式追「誰引用誰」。
升級注意(Breaking changes)
- 索引格式 1→2:升級後每個專案的第一次索引是完整重建(一次);重建前舊圖仍可回答,
index_status會指出索引早於 doc links。 - Qualified name 改變:C macro 成為
<module>.<NAME>#macro、Rust#[cfg]twins 合為一節點、Java/C#/Solidity class field 不再有重複的Variable節點——儲存的查詢與工具需更新。 - 邊的改變:process launches 從
CALLS改為SPAWNS;cross-language 名稱式CALLS移除。 - Windows
search_code統一行為:改為大小寫敏感、ERE 語法、跳過 binary(原本用 PowerShellSelect-String)。 uninstall -y保留專案索引(加--delete-indexes才刪);detect_changes預設 base 改為origin/HEAD。- Terraform/Ansible 檔變更觸發完整重新索引;cross-repo linking 需重跑。
隨堂測驗
Smart CI 的 detect_changes(scope: tests)在證據不足時會怎麼回答?
💡 想先看個提示?
官方設計原則是「絕不靜默縮小範圍」。
動手升級檢查清單
升級 v0.12.0:動手檢查清單
逐項勾選,確認你已完成升級必要的步驟(進度會保存在此瀏覽器)
延伸閱讀
- 官方 v0.12.0 release notes
- 前一課:
v0110-file-identity-and-lean-output——檔案身分、格式戳記與精簡輸出契約