跳到主內容

Theme / v1.6.2

Codegraph

程式碼知識圖譜工具

基礎觀念

v1.6.2:語言作用域解析、Windows 穩定性與背景 Server 可靠性

🟡 中階|v1.6.1 → v1.6.2 的升級重點:以各語言自身的名稱作用域解析呼叫與匯入、overload/super/遞迴正確解析、更多框架路由與 Windows 修正,以及為什麼必須重新索引。含互動測驗與升級檢查清單。

概述

Codegraph v1.6.2(2026-10-03 發布)延續 v1.6.1「更少錯誤連結」的主軸,把解析正確性從「代表性修正」推進到「每個語言都按自己的方式決定名稱屬於誰」。三大升級軸線:

  1. 語言作用域 (scoping) 解析:一個呼叫、import 或型別引用,現在以它所處語言的名稱作用域——imports、packages、namespaces 與所在 class——來解析,不再落到僅僅同名的不相關符號。
  2. Overload、super 與遞迴:呼叫到達引數符合的 overload;super 呼叫到達父類別方法;同名互call不再誤判為自我呼叫。
  3. Windows 與背景 server:無彈出視窗、無隨機 crash、更穩的連線與資源釋放。

新增一:以語言作用域解析名稱

v1.6.1 修正了一批「同名符號誤連」的代表性案例;v1.6.2 把這件事一般化:名稱的歸屬由語言的規則決定。

具體行為(release notes 原文):「A call, import or type now resolves the way its language scopes names — through imports, packages, namespaces and the class it is written in — so it stops landing on an unrelated symbol that only shares its name.」

涵蓋語言:TypeScript 與 JavaScript、Python、Java、Kotlin、Scala、C#、VB.NET、Swift、Objective-C、Go、Rust、C 與 C++、PHP、Ruby、Dart、Lua、R 等。直接受益的查詢是 callers、impact(影響範圍)與 codegraph_explore——答案更可信。

新增二:overload、super 與遞迴

三個常見的誤判模式被修正:

  • Overload 解析:一個呼叫會到達「引數符合」的那個 overload,而不是任意同名者
  • super 呼叫:到達父類別的方法,而非子類別自己
  • 遞迴誤判:一個方法呼叫另一個 overload、或另一個物件的同名方法,不再看起來像在呼叫自己
隨堂測驗

Java 類別中 `serialize(String s)` 與 `serialize(int n)` 兩個 overload 並存,`serialize(42)` 在 v1.6.2 會解析到哪裡?

💡 想先看個提示?

回想「overload its arguments fit」這句原文。

新增三:更多框架路由進入圖譜

在 v1.6.1 支援的 Next.js / React Router / Vue Router / SvelteKit 等之上,v1.6.2 新增:

  • Angular(含 Nx libraries)
  • Vue Router admin apps
  • Rails nested routes
  • Flask 的 add_url_rule
  • ASP.NET FastEndpoints
  • Play subprojects
  • Vapor closure routes
  • Expo Router API routes

兩個精緻化:NestJS 與 Laravel 的 route 以「請求實際路徑」命名;Spring 或 Laravel 測試以 URL 呼叫 route 時計為覆蓋該 route。

新增四:更多程式碼進入圖譜

  • Vue Options API components
  • Java 與 Kotlin 帶 body 的 enum constants
  • Flow-typed JavaScript
  • Kotlin infix 呼叫
  • React Native native views 與 events
  • Expo modules
  • tag-based CFML
  • Delphi .inc 檔案

Windows 與背景 server

Windows(release notes 原文標題:「no flashing windows, no random crashes」):

  • 背景 server 工作時不再彈出 console 視窗
  • 索引或關閉時偶發的 access-violation crash(exit code 3221225477)修復
  • codegraph upgrade 可在 agent session 正在使用 CodeGraph 時運作

背景 server:

  • 較新的 MCP clients(如 Antigravity)可再次連線
  • Claude Code 能看到 codegraph_status 的完整文字
  • 失去共用 server 的 session 會自行重連
  • 經 projectPath 查詢的專案在閒置 10 分鐘後釋放

索引完成性:

  • 大型 C/C++ 專案解析 references 不再 OOM
  • 單一 COBOL 檔不再卡住整個索引
  • codegraph sync 對多重定義的名稱保留每個 caller

隨堂總結測驗

隨堂測驗

小美的專案有大量 Kotlin overload。升級到 v1.6.2 且重新索引後,她發現 `callers` 查詢結果變了。最可能的解釋是?

💡 想先看個提示?

「結果改變」與「結果錯誤」是兩回事。

動手升級檢查清單

升級 v1.6.2:動手檢查清單

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

0 / 5

延伸閱讀

  • 官方 v1.6.2 release notes
  • 上一課:v161-navigation-and-call-conditions——v1.6.1 的導覽邊與 Flow 呼叫條件
  • 版本紀錄:本主題的 Changelog 頁有完整的 v1.6.2 條目