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 签名。
来源与核对说明
- 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 更新 →