提交智能体收藏0
技术动态

jcodemunch-mcp v1.108.374:按 pyvenv.cfg 识别并跳过虚拟环境,审计可靠性修复

jcodemunch-mcp 发布 v1.108.374,索引现在可识别任意名称的 Python 虚拟环境并跳过其 site-packages;审计模块修复死代码比例、React 组件误报与 AST 搜索元数据等问题。

据仓库发布说明(2026-10-17),jcodemunch-mcp 发布 v1.108.374,主要包含两类修复。

虚拟环境识别

此前 index_folder 只在文件夹名为 venv 或 .venv 时跳过虚拟环境。名为 env、jcm-venv 或 py313 的环境会被逐文件遍历;在没有其他排除机制时(如 Python 3.13 之前的标准库 venv 或旧式虚拟环境不写 .gitignore,uv 写的是 CACHEDIR.TAG),其 site-packages 会进入索引,与自有代码竞争排序并占用 max_folder_files 配额,多个此类环境共存时索引会超时。

新逻辑依据 PEP 405:虚拟环境根目录的 pyvenv.cfg 含 home = 键。遍历与文件监视器据此剪除 Lib/site-packages 或 lib/pythonX.Y/site-packages。虚拟环境根目录内的其他源码,以及项目根目录下自建的 bin/、lib/,仍会被索引;仅有 pyvenv.cfg 文件而无 home 键则不触发剪除。跳过会计入 discovery_skip_counts 的 virtualenv 项;可通过 skip_virtualenvs: false 或 JCODEMUNCH_SKIP_VIRTUALENVS=0 关闭。规则记录在 SECURITY.md。

审计可靠性(由 @lilubot 贡献,#1117)

  • 死代码候选超过 100 个的仓库,dead_code_pct 不再因结果列表截断而偏低,该值会上升,相应评分与健康等级可能下调。
  • 被 JSX 使用的 React 组件和 React 类生命周期方法不再被列为无调用者可删除代码;无存储的直接回退在 .tsx 符号上不再崩溃。
  • 结构化 AST 搜索保留语言元数据与已索引的无符号文件。
  • 精确的 re.compile 调用与字面量定时器回调不再被判为动态代码执行;仅含省略号的异常处理可被识别。
  • 测试文件中的 hardcoded_secret 匹配会带 in_test_file: true,严重级别不变。
  • 项目智能采用与索引一致的链接工作树边界:旧式子模块中的文件会被报告,链接工作树不计入父级清单。
  • 项目配置中,索引里无近似匹配的引用名改为信息性 unresolved_reference;有近似匹配(疑似重命名)仍告警。全局配置下所有缺失名均为信息性。
  • resolve_repo 将嵌套路径的子模块(libs/widget,其 .git 指向 .git/modules/libs/widget)识别为外层仓库的子模块,而非独立仓库。
  • 信号链网关复用源内容与被调方解析;get_signal_chains 配合 include_flow_edges 时,_meta.flow_edges 与 _meta.verdict 在紧凑编码下不再丢失。

发布说明另注明:完整工具面含 90 个工具,要求 Python >=3.10,产物经 PyPI trusted publishing 发布并由 sigstore 签名。

来源与核对说明

  1. jgravelle/jcodemunch-mcp ↗https://github.com/jgravelle/jcodemunch-mcp/releases/tag/v1.108.374

本文经 AI 整理及独立自动校对,未做运行验证;自动校对仍可能遗漏问题,请以原始资料为准。

这篇内容对你有帮助吗?

点赞人数由服务器记录,收藏保存在当前浏览器。

继续阅读

stop-that-shit 0.2.1 修复受限 Guard 误放行 →

stop-that-shit 0.2.2:授权、生命周期与 Skill 更新 →

jcodemunch-mcp v1.108.375:六个默认开启的保护性设置不再因环境变量拼写错误而失效 →

stop-that-shit 0.2.3:只读检查覆盖整条命令链并修正 Codex 委派 →