Theme / v0.9.56
Graphify
Codebase 知識圖譜
Changelog
版本更新紀錄
收錄 Graphify 的版本變遷軌跡。每條紀錄以舊值→新值呈現,舊值以紅線劃掉但保留可見,方便對照改動軌跡。
v0.9.56
當前版本2026-09-07- 版本定位:v0.9.53→v0.9.56,涵蓋 v0.9.54~v0.9.56。這三版以「graph 正確性、跨 repo 解析、Windows 穩定性與大型 TypeScript 效能」為主,對依賴 Graphify 做 impact analysis 的團隊比一般 UI 新功能更重要。
- 新增功能:
merge-graphs可在 receiver type 位於另一個 repo 時,對唯一且不歧義的 type + method 組合補出 member-call 關係;query scorer 也新增rationaletier,讓只存在 rationale 文字的節點有更好的搜尋召回。 - 語言模型新增 / 改善:Rust trait 的 signature-only 與 default-bodied methods 都會成為節點;JS/TS
@/project-root alias、Nodepackage.json imports的#subpath/ wildcard / conditions 能正確解析;Python imported type 與 named re-export / barrel / alias chain 更精準;Dart node/edge 補上source_location。 - 行為改變:與語言 builtin 同名的 member call(例如
.open、.get、.map)不再直接被當 builtin 略過,而是交由 cross-file resolution 判斷;MCPquery_graph從只有 incoming edges 的 leaf node 起查時改採 undirected traversal,因此「誰呼叫我」類問題能得到完整結果。 - 效能改善:TS import-type normalization 從 O(matches × ranges) 改為 sorted-index lookup,避免大型 mixed TypeScript file 長時間吃滿 CPU;source lookup、duplicate-edge 處理與 no-cluster basename disambiguation 也同步修正。
- 穩定性 / Windows:MCP
prs在 Windows 會 detach stdin 避免 stdio transport 卡死;atomic-write temp filename 改為 bounded,避免接近 Windows MAX_PATH / 255-char component limit 時失敗;rebuild watchdog timeout 會先殺掉 extraction workers,不再留下 orphan process。 - 資料完整性:
definition_file改為 scan-root relative canonical path,graph 可跨機器保持 byte-stable;.graphify_version、Obsidian vault 與graph.canvas採 atomic write;code-only watch rebuild 不會再清掉 pending semantic-update flag。 - 移除 / Breaking Change:v0.9.54~v0.9.56 沒有宣告 CLI removal;主要是 extractor 與 resolver 行為變得更正確。這類更新雖不屬 API breaking,但可能讓同一份 codebase 產生更多、或不同的 node/edge。
- 既有使用者影響:舊 graph 不會自動擁有新 extractor 能力;若你依賴 Rust trait、JS/TS alias、Python import 或跨 repo member-call 關係做分析,升級後應重新執行
graphify update或完整 rebuild,才能讓既有 graph 反映新版解析結果。 - 學習重點 / 建議用法:這版最適合拿來理解「知識圖譜工具的準確度不是只有 parser,而是 parser + symbol identity + cross-file resolution + incremental rebuild」;做 code intelligence 時,任何一層錯誤都可能產生看似合理、其實錯誤的 impact path。
v0.9.53
舊版本2026-08-30- v0.9.51→v0.9.53:涵蓋 v0.9.52 與 v0.9.53 兩個 patch。
- v0.9.53 為 cross-language inheritance release:JS
class X extends Y發出inherits邊(#1790);PHP interface / enum / trait 獨立為 class-like node 並保留 heritage(#1791);Scalatrait成為 class-like node,qualifiedextends/with解析到 tail type(#1792/#1794);Kotlin qualified supertype 解析到 tail type(#1793);C# interface 繼承 interface 歸類為inherits而非implements(#1817);Go interface type-set constraint 不再發出假的embeds邊(#1818)。 - v0.9.53 新增 Robot Framework 支援(
.robot/.resource,optional[robot]extra):suite / test case / user keyword、keyword-call 邊與 resource / library import,keyword 名稱大小寫 / 空白 / 底線不敏感比對(#3192)。 - v0.9.53 安全加固:chat-template control token 改按形式(
<|…|>、[INST]/[SYSTEM])defang,封住 attacker-chosen token(如<|eot_id|>)的 prompt-injection 缺口(#3183);git hook-guard 只在 executed position 偵測 search command,comment / quoted message 不再誤判(#3121)。 - v0.9.53 穩定性:
graphify watch/update在目標 node 仍以不同拼寫存活時保留 authored markdown link(#3190 後續,deleted-target gate 不放寬);semantic tier 未實際重萃取時不再默默丟失 semantic node,unverified per-source shrink 會武裝 shrink guard 並於下輪重新排入佇列(#3203);graphify install覆寫前先備份分歧的SKILL.md並輸出可操作警告(#3144)。 - v0.9.52 修正 code-only rebuild 時默默丟失指向 semantic-backed 文件的 Markdown link:
[[wikilink]]重指向目標檔的 representative node,不會復活已刪除目標(#3190);T-SQL 解析成 tree-sitter ERROR node 的 routine(CREATE OR ALTER、PROC簡寫、[dbo].[Get Widgets]括號名)以名稱回復,不因註解或 dynamic SQL 製造假節點(#3164);Razor@inject/@using走 scope-aware C# type resolver,跨檔定義可解析(#3187 部分修正,file-scoped-namespace bare inject 尚待後續)。 - v0.9.52 完成物件建立建模:PHP
new Foo()發出calls邊(namespaced name 取最後段,#3115),補齊 C#(#2998)與 TypeScript(#3135);field 型別宣告在祖先類別時可從子類解析,lookup 走繼承鏈且 cycle-safe(Java/C# per-file、Java/Objective-C cross-file,#3151);Obj-C field-to-type 表隨 node-id rewrite 重新 keying(#3150);TS type-only import(import type)不再製造假的 import cycle(#3123);import(...)作為 call type-argument 時先正規化,其後宣告不再被丟棄(#3185)。 - v0.9.52 其他:
graphify --help補列prs/provider指令與實際支援的 export 格式;MCPprs工具把真實失敗以 MCP error(isError)回報、get_node改用與get_neighbors相同的 tiered resolver;install --projecthook 改為 run time 解析的 baregraphify指令,不再 pin 絕對 interpreter 路徑。
v0.9.51
舊版本2026-08-28- v0.9.43→v0.9.51:涵蓋 v0.9.44 至 v0.9.51 八個 patch。
- v0.9.51 加固 incomplete-build shrink guard:chunk「hollow / 不可解析 / 缺 files」時保持武裝,靜默損失內容的 run 不再以更小的圖覆寫既有 graph(
--allow-partial仍可強制);extract --force --code-only真正全量重掃,不再留下過期 import / alias 解析。 - v0.9.49 / v0.9.50 強化
graphify merge-graphs:跨 repo 共享型別(同 fully-qualified namespace + name)發出same_type_as邊;community id 依輸入 offset,不再跨 repo 融合 community 0(原 id 保留於local_community);Rubysave與save!保持各自 node id。 - v0.9.46 / v0.9.47 穩定性:
post-checkouthook 在 HEAD 未變時跳過重建(git checkout -b不再全圖重建);慢檔 chunk timeout 改為 bisection;cache 以 symlink 身分 keying;graphify query把_當 token 分隔符。 - v0.9.44 新增
graphify hook install讀 committed.graphifyrc(viz_node_limit)烘焙進 git hooks,團隊共享;JS/TS inline / nested function expression 參數 shadow 修正;v0.9.48 大圖graphify update/label/cluster-only不再缺graph.html。
v0.9.43
舊版本2026-08-14- 本站此前的記錄版本,已升級至 v0.9.51。
- v0.9.41→v0.9.43:涵蓋 v0.9.42 與 v0.9.43 兩個 patch。
- v0.9.42 為 correctness / determinism / portability release:JS/TS
for...of/for...inloop binding shadow 不再製造假的indirect_call邊(#2685);Python 相對子套件 import 解析到套件__init__(#2688);FIFO/device 等 non-regular file 跳過,不再卡住 extraction(#2463)。 graphify update對 mtime tick 內「同長度重寫」的檔案會重新排入增量佇列(#2466);built_at_commit改取自被分析的 repo 而非 shell cwd(#2699);損毀的 semantic-cache 條目會重新萃取而非默默遺漏(#2683)。source_file統一 canonicalize 為 POSIX 路徑,Windows atomic write / install 加固(#2620/#2622);GRAPH_REPORT.md改用 portable basename(#2682);affected支援./-relative seed(#2707)。- v0.9.43 新增 OCaml 支援(
.ml/.mli,optional[ocaml]extra);修正跨檔 INFERREDuses邊錯綁 import 行旁所有 class 的問題(#2652)、巢狀具名 function declaration 不再懸空(#2653)、Bashsource兩種路徑形式與 wiki link 檔名逐字比對(#2596/#2597)。
v0.9.32
舊版本2026-08-10- 本站此前的記錄版本(correctness release),已升級至 v0.9.37。
v0.9.41
舊版本2026-08-10- v0.9.32→v0.9.41:跳過九個 patch(v0.9.33–v0.9.40)。
- v0.9.35 為 correctness release,重新啟用
build_merge的 shrink guard(修正 graphify update會把新加入.graphifyignore/--exclude的檔案從既有 graph 中移除(fail-closed- 修正 Java local class 與同名 external annotation(如本地
class Componentvs Spring@Component)合併為單一 node 的問題(#2504)。 callflow、query變為方向 / relation aware。- v0.9.41 的
graphify update不會以本次 extractor 失敗導致的縮小圖譜覆寫既有資料;語意節點新增rationale萃取。
圖例
- 當前版本 本站現在記錄的版本
- 舊版本 已被取代,保留作歷史對照
- 已同步 與上游 release 對齊
- 僅上游變動 上游 main 有 commit,但未發佈新版