Skip to content

Releases: ZhaoBuyan/CodeAtlas

v1.5.0

Choose a tag to compare

@github-actions github-actions released this 20 Sep 13:37

新增

  • 成员级调用位置refs("方法名")refs("类型.成员") 会直接列出调用 / 访问的 文件:行(按名字匹配,声明行不算)。找不到位置时会说清是「没有」还是「这份图没有这类记录」。

  • overview 会指出这张图是不是旧的:被改过的文件点出来(只动时间戳的单独计数),图里有、磁盘上已经没了的也点出来;新增的文件不在覆盖范围里。

  • impact 单列「会被波及的测试文件」:改一个类型时,「要跑哪些测试」与「哪些生产代码要改」分开列出。测试文件按路径识别(test / tests / __tests__ 目录、.test. / .spec. / _test. / _spec.test_ 开头)。

  • 新增 exclude 参数(overview / search / refs / map / impact:传入要排除的路径(如 "tests/fixtures, vendor"),这些名字就从这一次调用的名单里去掉 —— 用完即弃,不落成设置。规则只有三条:多段项按连续段序列匹配、单段项匹配任意层级的目录段或文件名主干、大小写不敏感;不做通配。每次排除都会在名单后面写清排掉了多少;名单被整份排空时会写明是被排除的,不会显示成「0 个」。

  • 新增 symbol(name, neighbors: true):附带「被谁引用 / 引用了谁 / 相关测试文件」三行(各取前 5)。不带这个参数时,输出与以前完全一致。

修复

  • 同名歧义时跨文件引用被整条丢掉refs 会答「被谁引用:无」):现在会用引用方文件 import 的是哪个模块来消歧。
  • C# / Java / Kotlin 的引用证据分档整片塌成「仅同名」,连带 overview 的「被依赖最多」榜单失真:现在 import、同命名空间、同包,以及 C# / VB 的父命名空间都算有支撑。标签由 [import] 改为 [有支撑]
  • 顶层函数的调用位置拿不到(只给到引用方的声明行)。
  • 类型回答的位置段会把「同名成员的声明行」当成调用点(C# 的构造函数必然与类同名)。
  • 成员级查询此前答「找不到匹配的符号」search 的成员命中现在带上所属类型与引用次数。
  • 行数口径统一(「代码行」字样补齐)。

Full Changelog: v1.4.1...v1.5.0

v1.4.1

Choose a tag to compare

@github-actions github-actions released this 20 Sep 05:10

CodeAtlas v1.4.1

本版为修复版,没有新增功能。

修复

  • 修复「内构监控」不生效:启动器把 --watch 传给了位置参数那条命令(--watch 只在 scan 子命令里生效),
    因此该按钮自加入以来实际只做「扫描 + 起服务」,修改代码不会自动更新。现在启动器监控时走 scan
    实测(12 个文件的源码目录):修改一个文件后,新 bundle 落盘 0.3–1.6 秒,页面在下一次轮询(每 2.5 秒)内重绘,
    端到端约 1.5–4 秒
  • 修复成员"计了数却列不出来":取不到名字的成员此前只计入分档、不进入成员列表 —— 于是 symbol 显示
    「成员 field 7」却一条不列,map 的关键成员整块消失(C# 的字段与常量最明显)。现已补足名字提取的多层兜底
    (含「自定义类型的字段应取字段名、而非类型名」),且 分档与列表恒定一致,测试中加了全局断言。
  • symbol 的「共 N」改为真实总数(此前等于列表长度,两者一致时看不出问题);成员无法列出时会说明原因。
  • refs 抬头补上「共几次」:由「4 条边」改为「4 条边 · 共 11 次」,避免只看到条数而误判量级。
  • 跳过目录的排序:项目规则跳过的目录排在前并标注,默认跳过表命中的(.gitnode_modules 等)列在其后。
  • 启动器「扫描范围」的悬停提示不再指向不存在的选项名(改为直接写 .gitignore,与实际列表项一致)。

Full Changelog: v1.4.0...v1.4.1

v1.4.0

Choose a tag to compare

@github-actions github-actions released this 20 Sep 03:30

CodeAtlas v1.4.0

功能更新

  • 扫描范围:工具栏「语言」更名为「扫描范围」,列表末项新增「.gitignore」;勾选后依据项目自身的
    .gitignore 跳过文件,默认不勾选,命令行对应 --gitignore。支持读取各子目录内的 .gitignore
    规则作用范围与 git 一致(每份规则仅作用于其所在目录及其子目录)。
  • 自选跳过:新增 atlas.ignore(支持目录名、目录名/、通配符与 # 注释,位于扫描目标根目录时生效),
    用于按项目自定义跳过项。全部跳过项均记入扫描报告,并输出所读取的规则文件数量。
  • 引用次数:依赖边的权重由「是否存在」改为实际引用次数。地图连线改为每条引用绘制一条线
    (A 被 B、C 各引用 3 次时自 A 的中心引出 6 条),抬头显示「连线 N 根 = 引用次数」。
    symbolsearch 与检查器中的引用统计、依赖矩阵的浓淡均按引用次数计算。
  • 成员签名:成员条目新增参数表与返回类型(例:area(int, int): double),用于区分同名重载。
    语法树中无法提取时不作输出。
  • 跳过提示:网页顶部新增提示,显示默认规则与项目规则所跳过的目录数量,悬停可查看具体目录与规则来源。
  • 缩放与平移:支持滚轮缩放、右键拖动平移画布,并新增「回正」;选中模块时不再重置缩放倍率。

修复

  • 修复中文注释与名称溢出色块、内层分组标题带不应保留时仍保留、地图区域外右键弹出浏览器菜单、
    以及同名符号误归的问题。
  • 修复 C / C++ 成员名包含参数表内容的问题(shape_area(const Shape *s)shape_area)。
  • 修复英文界面扫描报告中混入中文文本的问题;修复 atlas serve 在找不到 bundle 时输出 Node 堆栈的问题。
  • 修复启动器无界面自检(--headless)的三处问题:失败时退出码为 0、参数错误导致崩溃、
    以及不自行退出(此前会等待超时约 10 分钟)。

Full Changelog: v1.3.1...v1.4.0

v1.3.1

Choose a tag to compare

@github-actions github-actions released this 19 Sep 17:47

CodeAtlas v1.3.1

这一版是「让图跟着你走」:改代码的时候,图自己会更新。

新增

内构快照 / 内构监控(启动器上那个双态按钮)
点一下从「内构快照」切到「内构监控」:之后你在编辑器里改代码,浏览器里那张图会自己增量更新
(只重新解析改动过的文件),按钮上还会显示「上次更新 HH:MM」。不用重扫全库,也不用刷新页面。

按 git 热度着色
按文件的 git 改动次数上色 —— 最近改得最多的地方一眼就亮。有未提交改动的文件带亮边框。

地图右下角「取消选中」
点一下清掉选中,右侧详情跟着清空;选中项也会从地址栏里去掉,分享链接就是干净的。

色块里多一行注释摘要
格子够大时,块里会直接印出该符号的注释说明。

修复

  • 同名误判不再和真引用混在一起refs 每条都标出证据强度(同文件 / import / 仅同名),
    overview 的热点榜改按「有证据的引用」排序。
  • 分节线不再被当成说明─ ━ ═ ▬ 这类框线以前会被抽成文档说明,现在不当作说明。
  • 鼠标停在模块名字上算命中该模块:以前文字会吃掉鼠标事件,悬停提示和点击都落到文字上、不落到模块。
  • 改了网页相关文件后,已打开的页面自己重载 —— 不用再按 F5。
  • 文案清理:去掉下拉里多余的解释,悬浮提示改成正式措辞。

下载

  • CodeAtlas.exe(推荐,免安装):双击即用,自带运行时,机器上没装 .NET 也能跑。
  • CodeAtlas-lite.exe(体积小):需要机器上已装 .NET 9 桌面运行时。

解压到任意文件夹,双击 exe;第一次点「扫描」,选你的项目目录,等它把图长出来。

更新

把新版 exe 覆盖掉旧的就行,不用卸载。启动器首次运行会把引擎释放到
%LocalAppData%\CodeAtlas\engine\<版本-包指纹>\,换了版本(或换了引擎包)它会自己重新释放一份,
并顺手清掉更早的那份 —— 不会拿旧引擎跑新代码。

(现在还没有「自动检查新版本」这回事:新版本就发在这一页,来这下就行。)
Full Changelog: v1.3.0...v1.3.1

v1.3.0

Choose a tag to compare

@github-actions github-actions released this 18 Sep 10:21

Code Atlas v1.3.0

把任意代码库扫成一份可读的地图:人在浏览器里翻,AI 通过 MCP 查(省 token、答案有出处)。本地优先,源码不出机器。

结果修正:两处会「静默少东西」的默认规则

  • packages/ 不再被当构建目录跳过:它是 pnpm / yarn workspaces / lerna / Nx / Turborepo 的源码根,
    以前扫这类 monorepo 会得到一张近乎空白的地图、而且不报错。实测一个真实的 Electron 项目:
    修前 4 文件 / 319 行 → 修后 217 文件 / 20,116 行
  • 机器生成的锁文件不再被当代码扫pnpm-lock.yaml / package-lock.json / yarn.lock / *.lock /
    go.sum / gradle.lockfile / .pnp.cjs … 以及 *.g.dart / *.snap / *.map。同样那个项目全选语言时,
    一个 pnpm-lock.yaml 曾吃掉整张图 97% 的「代码行」
  • 被跳过的目录会点名:扫描报告与 overview 里新增一行「跳过目录 node_modules 312 · dist 4 …」,
    免得「图里少了东西」只能靠猜。
  • 升级后新语言不再静默缺席:以前「全选」过的语言选择在新增语言后会漏掉新语言(实测:27 门的旧配置升级后
    看不到 .vue);现在会自动补上(打开一次语言窗口即生效)。

新语言:Vue(.vue

  • 只解析 <script> / <script setup>(模板与样式不参与),语法借 TSX —— 不引入 vue 语法包
  • 预处理逐字节对齐,所以行号 / 注释 / file:line 仍然指回 .vue 原文(CRLF 与跨行开始标签都验过)。

下载(两个 exe,功能一样)

  • CodeAtlas.exe —— 什么都不用装(内置 Node + 引擎 + 裁剪版 Java 运行时)
  • CodeAtlas-lite.exe —— 需要 .NET 9 桌面运行时 + Node.js

更新:换掉 exe 即可;引擎会按新指纹重新释放。

Full Changelog: v1.2.0...v1.3.0

v1.2.0

Choose a tag to compare

@github-actions github-actions released this 18 Sep 09:07

Code Atlas v1.2.0

把任意代码库扫成一份可读的地图:人在浏览器里翻,AI 通过 MCP 查(省 token、答案有出处)。本地优先,源码不出机器。

MCP 多了一个工具:list(按目录浏览)

  • list(path?, limit?):不传路径就列扫描根,传了就列那一层的目录 / 文件(文件数 · 类型数 · 行数)——
    还不知道任何名字时从这里起手,它给出的路径和文件名可以直接喂给 file() / search()
    以前 AI 面对陌生代码库只能靠猜名字。(工具数 8 → 9)
  • 没命中时会给「相近的有:…」(按路径段打分:开头 > 包含 > 子序列),不会把人带沟里。

顺手补强四处(都是「少一次往返 / 少一次误判」)

  • file 的类型清单现在印限定名(fqn)—— 从「这个文件」跳到「这个符号」不再断链;
  • overview 的解析异常不再只给数量,直接列出是哪几个文件路径(次数));
  • 每个工具结果末尾挂一条快照时间(UTC) —— 只调一个工具也能看出数据新不新;
  • symbol 新增 members= 参数(默认 40 / 上限 300),成员多时能一次取全。

说明与文档

  • 工具描述和说明书里写清了:JS / TS 顶层函数是 [function] 类型(不是成员,所以 scope="member" 搜不到);
    新扫描的 bundle 会自动热更新,但引擎代码更新需要重启服务进程
  • README / 使用说明:工具数 8 → 9、各工具的截断阈值、快照时间。

下载(两个 exe,功能一样)

  • CodeAtlas.exe —— 什么都不用装(内置 Node + 引擎 + 裁剪版 Java 运行时)
  • CodeAtlas-lite.exe —— 需要 .NET 9 桌面运行时 + Node.js

更新:换掉 exe 即可;引擎会按新指纹重新释放,旧目录自动清理。

v1.1.3

Choose a tag to compare

@github-actions github-actions released this 17 Sep 20:30

Code Atlas v1.1.3

把任意代码库扫成一份可读的地图:人在浏览器里翻,AI 通过 MCP 查(省 token、答案有出处)。本地优先,源码不出机器。

两个小补丁(都跟「看数据更省事」有关)

  • 搜索命中带一行说明search 的类型 / 成员命中后面会跟一句该符号的说明摘要(截到 80 字)——
    多数情况不用再为看一眼注释专门调 symbol,省一轮往返;要全文仍用 symbol
  • subgraph 每层的截断写明了:每层最多列 40 个符号(控 token),以前表头写的是全集数量,
    看着像「这层只有 40 个」;现在超限时写「第 2 层(前 40 / 共 49)」。

这一版也包含 v1.1.2 的全部内容

  • 多行 /// 说明块整块提取:以前只进图一行、甚至完全丢掉(以 </summary> 收尾的块会变成空壳);
    现在整块进来(实测一个 106 类型的 C# 项目:有说明的类型 81 → 104,无一条退化)。
    同一改法也覆盖其它「用连续行注释当说明」的语言(Rust 的 ///、Go / Ruby / PHP 的 // #)。
  • 「行数」三处口径写清楚了(整文件 / 类型区间 / 代码行)。

下载(两个 exe,功能一样)

  • CodeAtlas.exe —— 什么都不用装(内置 Node + 引擎 + 裁剪版 Java 运行时)
  • CodeAtlas-lite.exe —— 需要 .NET 9 桌面运行时 + Node.js

更新:换掉 exe 即可。

v1.1.2

Choose a tag to compare

@github-actions github-actions released this 17 Sep 20:21

Code Atlas v1.1.2

把任意代码库扫成一份可读的地图:人在浏览器里翻,AI 通过 MCP 查(省 token、答案有出处)。本地优先,源码不出机器。

这版修好「多行注释说明提取不全」

  • C# 的 /// 多行说明块以前只进图一行、甚至完全丢掉:语法树把 /// 的每一行各算一个独立注释节点,
    而提取时只取靠声明最近的那一行 —— 以 </summary> 收尾的块会变成空壳(界面显示「(源码里没有注释说明)」),
    末行有文字的块则被静默截成只剩最后一行。现在整块合并(XML 标签剥掉;中文标点 / 破折号后不补空格)。
    实测一个 106 类型的 C# 项目:有说明的类型 81 → 104,无一条退化。
    同一改法也覆盖其它「用连续行注释当说明」的语言(Rust 的 ///、Go / Ruby / PHP 的 // #)。

顺带把「行数」三处口径写清楚(数字都对,之前只是没标)

  • file = 整文件行数、类型(symbol / 详情面板)= 该类型的区间、overview 的「规模」= 代码行
    系统分组与命名空间的行数 = 各类型区间合计。现在这些地方都标了,README 的字段表也补上了。

下载(两个 exe,功能一样)

  • CodeAtlas.exe —— 什么都不用装(内置 Node + 引擎 + 裁剪版 Java 运行时)
  • CodeAtlas-lite.exe —— 需要 .NET 9 桌面运行时 + Node.js

更新:换掉 exe 即可。

v1.1.1

Choose a tag to compare

@github-actions github-actions released this 17 Sep 19:06

Code Atlas v1.1.1

把任意代码库扫成一份可读的地图:人在浏览器里翻,AI 通过 MCP 查(省 token、答案有出处)。本地优先,源码不出机器。

这版修两处看得见的毛病

  • MCP 报给 AI 的快照时间是"假的本地时间"overview 的「数据快照」行把 UTC 按本地时间的样子写出来
    (实际 UTC 18:16 显示成 18:16,少 8 小时),于是 AI 会把快照说成"昨晚 18:16 的"。
    现在如实标注时区:数据快照:2026-09-17 18:32:37 UTC —— 只标注、不换算(读的人可能在别的时区、甚至别的机器上)。
  • 旧版本的引擎解包目录现在会自己清掉:以前只清"超过 7 天没碰过"的,而每换一次版本就多留约
    160 MB(完全版)/ 45 MB(精简版)—— 换得勤就永远清不掉,只能手工删。
    现在改成每次启动都清一次,只留当前在用的 + 最近用过的那个(最多留 2 份,不会随版本数一直涨);
    清掉几个目录、腾出多少空间会写在启动日志里。

下载(两个 exe,功能一样)

  • CodeAtlas.exe(103 MB)—— 什么都不用装(内置 Node + 引擎 + 裁剪版 Java 运行时)
  • CodeAtlas-lite.exe(10 MB)—— 需要 .NET 9 桌面运行时 + Node.js

更新:换掉 exe 即可;引擎会按新指纹重新释放,旧目录自动清理。

Full Changelog: v1.1.0...v1.1.1

v1.1.0

Choose a tag to compare

@github-actions github-actions released this 17 Sep 16:25

扫一次,给人一张地图,给 AI 一个索引 —— 同一份数据,你在浏览器里自己翻、AI 走 MCP 查,源码不出机器。

这一版的重点

  • 解析底座换代:web-tree-sitter 0.20 → 0.27,语法包从 36 个(能用 32)换成 105 个全可用
    单门语法内存从 150–180 MB 降到约 11 MB。
  • 27 门代码语言(本版新增 Ruby / HCL-Terraform / GraphQL / SystemRDL)+ 5 种文件级格式(JSON / YAML / TOML / CSS / HTML,默认不扫)。
  • 零依赖反编译(完全版).dll / .exe(含 .NET 单文件发行版)走启动器内置反编译器;.jar 走自带裁剪 JRE + cfr
    —— 机器上什么都不用装。
  • 中英双语:工具栏一键切换,覆盖启动器、扫描输出、MCP 八个工具、网页地图;切语言不用重新扫描
  • 更诚实:不是 UTF-8 的文件会被标出来(报告 / MCP / 网页三处);依赖边明说是"静态名字匹配",
    未匹配 / 有歧义的引用计数摆在明面上。
  • 顺手修掉一批既有小毛病:服务被畸形 URL 打死、静态服务路径穿越、永久链接失效参数导致空白页、
    分组规则文件带 BOM 读不了、--decompiler 传了没用 —— 详见 CHANGELOG。

下载哪个

文件 体积 需要什么
CodeAtlas.exe(推荐,免安装) 103 MB 什么都不用装
CodeAtlas-lite.exe 10 MB 已装 .NET 9 运行时 + Node.js

双击即用;第一次启动会花几秒"释放内置引擎"(只做一次)。

从 1.0.x 升上来

直接覆盖 exe 就行:配置、语言选择、分组规则都留着,不用重新配。

Full Changelog: https://github.com/ZhaoBuyan/CodeAtlas/commits/v1.1.0