Skip to content

v3.4.1 — AST 插桩健康门禁与链式调用修复

Latest

Choose a tag to compare

@WhiteNightShadow WhiteNightShadow released this 29 Jul 08:04

版本说明

本版本补齐自 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_usedwindow.__mcp_tap_installed 和日志容器。
  • 明确区分“原始源码解析失败”和“改写产物未解析/未执行”,避免错误归因于 esprima。
  • 异常时按 AST -> regex -> transparent 通用梯度安全降级;正常插桩流程保持不变。
  • 对齐 camoufox-reverse MCP v1.1.1 的 35 个工具和统一 instrumentation(action=...) 接口。
  • 修正旧文档中的 tagcache_rewrittencsp_bypassast_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