跳转至

运行时分析设置验证

已在 macOS 上通过 Node 24.22.1、Java 21.0.12.1 和 Ghidra 12.1.4 验证。此次更改新增两个 MCP 工具和 11 个运行时默认值,且不引入新的依赖。

行为检查

  • 构建的 stdio MCP:索引超过 16 MiB 的有效 ASAR 会被拒绝。将 asar.max_header_bytes 更新为 32 MiB 后,同一连接上未更改的完整归档清单和 JavaScript 分析得以进行。两个源文件均被解析。重置会再次拒绝同一归档;目标关闭保留修订版本。
  • 在较高准入条件下缓存的 Electron 标头在准入降低后仍会被拒绝。任何批量提取或源选择都无法绕过准入。
  • Store 和延迟 MCP 处理器测试在重叠更新期间保留已接受的快照。涵盖原子拒绝、重复键、修订冲突、幂等性、重置、隔离以及显式 WABT 参数优先级。
  • 真实的 Ghidra 验证器达到自然的一秒反编译超时,将运行时截止时间提高到 60 秒,并在不替换 Program 的情况下获取同一慢速函数的伪代码。初始和最终会话运行 ID 一致;后续分析成功且清理完成。其生成的 6,000 分支测试夹具已编译但从未执行。
  • 重点测试套件在 22 个文件中通过了 459 个测试,另有 10 个平台特定跳过。类型检查/lint、桥接源代码编译、运行时构建和生成的文档检查均通过。

评审后续

无效的 provider 本地启动设置仍被视为类型化配置失败,而不是阻止 MCP 启动。检查报告 source: "invalid",省略 value 和 launch_value,并包含 configuration_error;运行时替换会提供可用值,而重置会恢复无效的启动状态。JADX 可用性和执行解决了相同的已准入超时,因此修复和重置也会更新能力指导。可用性回归使用夹具 JAR 和模拟 JDK;它并不确立真实的 JADX 行为。更新历史记录会省略未知的旧值或新值,而不是使用 null(显式的无界 Ghidra 值)。

正则表达式控件适用于 IDA、Hopper 和 Kuna 的受监督 ECMAScript 匹配器。Ghidra 使用自己的 Java 匹配器,因此不适用于这些控件。IDA 的绑定客户端和能力描述使用相同的已接受配置。WASM 将其有效截止时间与调用方参数分开传递,在成功和部分 Evidence 中都保留省略的参数。共享错误复制通过归因和显式编辑保留结构化限制恢复。

代表性任务成本

以下测量结果先于评审后续工作;任务成本未重新测量。每个场景测量一次,使用构建的 stdio 服务器和一个索引略高于 16 MiB 的有效 ASAR,以及一个小的 JavaScript 模块。每个场景都以成功的完整应用分析摘要结束。包含发现、失败调用和恢复。排除夹具创建、构建和分词器工作。文件系统缓存不受控制。

恢复工作流 耗时 采样的服务器族 CPU 采样的服务器族峰值 RSS
新服务器:失败、运行时更新、重试 3.68 s 1.81 s 680 MiB
热服务器:失败、运行时更新、重试 0.25 s 0.49 s 625 MiB
启动环境恢复:失败、关闭、使用覆盖项重启、重试 6.02 s 2.85 s 674 MiB

重启对比使用相同的当前构建来模拟之前的恢复工作流;它不是对先前提交的基准测试。CPU 和 RSS 是服务器及其子进程的 100 ms ps 采样。短期进程和未采样的峰值可能会被遗漏;CPU 估算不包括客户端和采样器。这些观察结果并不构成普遍加速或性能保证。

使用 cl100k_base / tiktoken 0.12.0 进行分词,不按模型使用计费。目录投影包含工具名称、描述和输入模式。两个新工具增加 1,181 个 token;完整的 229 个工具投影为 59,734 个 token。运行时恢复任务的所有请求和完整工具回复使用 5,880 个 token,其选定工具另加 1,710 个(总计 7,590),若包含完整发现则为 65,614。热恢复复用发现结果。重启工作流使用 5,492 个请求/回复 token,加上两次完整发现(总计 124,960)。缓存发现结果或只加载选定工具的主机具有不同的上下文成本。系统指令、推理和客户端特定呈现开销未测量。

覆盖范围限制

归档夹具用于隔离标头准入;它不是原始的 Loom 归档。此处的真实引擎覆盖是 macOS 上的 Ghidra。Hopper、JADX、capture 和正则表达式设置集成具有源代码/边界覆盖,而不是对每个设置进行新的真实 provider 运行。Linux/Windows 引擎和 Bun 在本更改中未经验证。客户端截止时间和接收缓冲区仍由外部拥有;活跃 worker 值在设置检查中明确未被观察。

本页原文 Markdown:在 AtomGit 查看·内容源自开源项目 rea2/rea