版本说明
本版本补齐自 v3.2.0 以来的能力迭代,并针对 Issue #3 报告的 JSVMP AST 插桩异常增加通用健康门禁。
排查确认:原始 JavaScript 可以被 esprima 正常解析,异常来自 camoufox-reverse-mcp 的 AST instrumentation 在处理嵌套 CallExpression / MemberExpression / NewExpression 时发生父子编辑区间重叠,导致改写产物无法执行。根因已在 camoufox-reverse-mcp v1.1.1 修复。
v3.4.1 更新
- 增加 AST 插桩运行时健康门禁:
files_rewritten > 0后继续验证last_mode_used、window.__mcp_tap_installed和日志容器。 - 明确区分“原始源码解析失败”和“改写产物未解析/未执行”,避免错误归因于 esprima。
- 异常时按
AST -> regex -> transparent通用梯度安全降级;正常插桩流程保持不变。 - 对齐 camoufox-reverse MCP v1.1.1 的 35 个工具和统一
instrumentation(action=...)接口。 - 修正旧文档中的
tag、cache_rewritten、csp_bypass、ast_page等过期参数或模式。 - 不引入站点、脚本名称或业务参数特例,适用于通用 JSVMP 链式调用场景。
v3.2.1 - v3.4.0 汇总
- v3.2.1:强化案例复用约束,命中案例后仍按完整 Phase 流程执行。
- v3.3.0:核心层补全 Phase 1-5 详细动作、10 个场景速查和案例执行约束。
- v3.3.1:经验法则精简为 22 条,移除单站点规则并合并重复约束。
- v3.4.0:Phase 3 增加引擎层属性追踪决策树;未安装定制浏览器时自动回退到
compare_env。
兼容性
- 当前正常使用 AST 插桩的用户:默认流程不变。
- 仅在检测到改写产物未执行时进入降级路径。
- 建议配套使用
camoufox-reverse-mcp v1.1.1;旧版本不包含链式调用重叠改写修复和last_mode_used状态字段。
验证
- camoufox-reverse-mcp 完整测试:
86 passed。 - GitHub CI:Python 3.10、3.12 均通过。
- 约 322KB、包含 6600 个链式调用的通用压力脚本,AST 改写后可重新解析。
感谢 @Moojing-jianchuan 提交 Issue 并协助定位。
完整变更:v3.2.0...v3.4.1