Skip to content

Release v0.3.6: 死代码分析强化与性能优化补丁

Choose a tag to compare

@github-actions github-actions released this 24 Jul 19:08
· 183 commits to main since this release

v0.3.6 是一轮以死代码分析强化与系统性性能优化(C1–C9、T182–T206)为主的补丁版本。实际变更提交 28 个(已排除 merge、版本号 bump 与 CI/release 自动化提交;compare 共 29 commits)。

范围说明:本 Release 实际发布于 2026-07-24,晚于 v0.3.7 / v0.3.8 / v0.3.9 的发布时间,但 v0.3.6 tag 指向的提交(2026-07-20T02:56Z)在 git 历史上早于后三者。按发布时间规则取 PREV=v0.3.9 时,compare v0.3.9...v0.3.6 返回 status=behind、0 个提交(v0.3.6 落后 v0.3.9 共 11 个提交)。因此本说明以 v0.3.6 tag 在 git 历史中的实际前一版本 v0.3.5 为基准撰写。

新增

  • 死代码分析:B7 识别 pub use 再导出(89b097e6ce)。
  • LSP:C9 新增 references 方法,带 5 分钟 LRU 缓存,适配 RustAnalyzer / Pyright / Clangd(08f2dc1bc7)。
  • 索引:T206 以 BLAKE3 取代 SHA-256,哈希速度提升 5–10 倍(43c94e7d6d)。

修复

  • 死代码误报:Phase B 在 CalNexus 上消除 100% 误报(05d7d4a54d);T182 消除宏合成入口点导致的误报(27142ac2f6)。
  • 确定性与正确性:B12 消除 HashMap 迭代导致的索引非确定性(69ead3f651);daemon C6 修正 EMA 输入方向(高频延长、低频收缩窗口)(cd1fc381fa);index T206 规范化 rootPath 修复失效检测(2aaf18be64);测试模块补 import MAX_SUBGRAPH_NODES(aba8e6764f)。
  • 代码质量:清理 8 个既有 clippy 警告(T200,97ba1f75ee);LSP doctest 导入路径改用公共再导出(ce939ec277)。

变更

  • 分析:批量预取消除 N+1 查询并做 DRY 重构(ee398a6e71)。
  • trace:bfs 与 call_graph 共享 path_set,消除重复扩展(83e91820cb)。
  • community:C3 Louvain 算法升级为 Leiden(005375195e)。
  • query:C4 BM25 升级为 BM25F,支持字段加权评分(f3a5ba27c8)。
  • resolve:C8 为 ScopeChain 增加 HashMap 索引,实现 O(1) 查找(9a7e67f80f)。
  • index:C5 以 FastCDC 内容定义分块取代整文件处理(3683bc0546)。
  • daemon / parse:C6 基于事件间隔 EMA 的自适应防抖窗口(1c003fe677);C1 在 daemon 中启用 tree-sitter 增量解析(08db9ed68e);T206 提取 TreeCache 并限制增量解析大小(c1128e5c22)。
  • LSP:T206 为 references_cache 增加 by_uri 反向索引(8bddab2287)。
  • 结构:dead_code.rs 拆分为 mod.rs + tests.rs(6e78e9248a)。
  • 依赖:升级 lsp-server / rmcp / uuid / signal-hook 并迁移到 lsp-server 0.10 API(5636373bf7);移除 rmcp/clap 直接依赖,改用 sdforge 再导出(266acd1d21)。

维护

  • CI:cargo-audit hook 在网络失败时回退到本地 advisory-db(35b02314a8)。
  • 测试:daemon_hot_update 集成测试用轮询替代 sleep(2186e579df)。
  • 文档:T190–T194 同步 README 与 specmark 规格(05a36587f4);BatchPrefetch 往返数值补充 doc 注释(eb74731a1e)。

Full Changelog: v0.3.5...v0.3.6