跳到主內容

Theme / v0.12.1

Codebase Memory

程式碼記憶與知識圖譜 MCP

基礎觀念

v0.12.0:CBM Lens、文件入圖與 Smart CI

🟡 中階|掌握 codebase-memory v0.12.0 的四大主軸:CBM Lens Beta(給人的圖譜介面)、文件與 ADR/圖表/OpenAPI 加入圖譜、detect_changes 的測試影響選擇(Smart CI)、基礎設施即程式碼連結;含索引格式 1→2 的升級注意、互動測驗與檢查清單。

概述

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(原本用 PowerShell Select-String)。
  • uninstall -y 保留專案索引(加 --delete-indexes 才刪);detect_changes 預設 base 改為 origin/HEAD。
  • Terraform/Ansible 檔變更觸發完整重新索引;cross-repo linking 需重跑。

隨堂測驗

隨堂測驗

Smart CI 的 detect_changes(scope: tests)在證據不足時會怎麼回答?

💡 想先看個提示?

官方設計原則是「絕不靜默縮小範圍」。

動手升級檢查清單

升級 v0.12.0:動手檢查清單

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

0 / 5

延伸閱讀