跳转至

CLI 版本报告验证 — 2026-10-23

rea --version --json 在不加载分析命令实现的情况下报告包/运行时/平台事实。共享 CLI 预检保留了配置和输出选项的错误优先级。未添加缓存:不必要的工作在于加载完整命令图,且运行时事实必须保持最新。

范围与身份标识

  • 真实应用:REA 6.7.0 所构建的公共 CLI,运行于 Linux x64;Node 24.22.1 和 npm 11.16.0(仓库固定版本)。不需要目标或分析提供方。
  • 宿主机 CPU:AMD EPYC 7B12;CPU 亲和性限制为两个逻辑 CPU。Node 可执行文件 SHA-256:e32e2d16081cf644f88392934288086e7662529d0d43277c34f7aad2207cfafb。
  • 基线:5655fbf17,结合了 main 60accad2d 与原始 PR #6530 的 HEAD 044bd861b2df082eca5d4ad91d7cb79876c13430。它已经包含格式化报告;该比较衡量的是等效事实的交付,而非纯文本与 JSON 的对比。
  • 原始作者提交被保留。优化后的源码是此 PR 的启动器/预检变更;下文源码哈希绑定到被测代码。
  • 两条通道使用相同的锁定依赖、可执行文件和环境控制。包清单 SHA-256:2218e615dc1e68ca31c02ee5f6f2dee1e2cf7aa6a78c1c22ac090e27fe49d2eb。
  • 构建树摘要:基线 a4bc8722b69046c5ace1d3e764bba81812427766f088418c27c6876812796722(2147 个文件);优化后 9919d1b6177536f75fd1acb9240525e82cb5af5a55f4db07cbcc4b243a5f8eb4(2153 个文件)。每个摘要对排序后的相对路径、NUL 分隔符以及每个文件的二进制 SHA-256 进行哈希。
47eae72df85b722dcabab6860980a7285886a854daaec74b47490b41f9652154  scripts/rea.mjs
73e5f50400b11012ccf6c6c312e1f91e027e92c4a5616f112bf97ea135e3253d  src/cliOutput.ts
64d82457c9f9f276379f9734caff181117afc3fd17fa50d90140a92853395f43  src/cliConfiguration.ts
fa221460cf337bb2463bd47cd919066a612f369ab866cc1dfbf27ae49259e182  src/domain/versionReport.ts

已完成公共任务与资源测量

命令,每个命令都在各检出目录的全新进程中运行:

node scripts/rea.mjs --version --json
node scripts/rea.mjs --version
node scripts/rea.mjs providers --json --filter-output 'capabilities[0,1].provider.id,open'

每项任务三对交替运行,第二对反转顺序。全部 18 次运行均以退出码 0 完成,且每项任务内的标准输出逐字节相同。这些是热构建/文件缓存测量;未测量 OS 冷启动运行或进程内热会话。NODE_DISABLE_COMPILE_CACHE=1 在两条通道中都禁用了 Node 的编译缓存。CPU 亲和性为 0–1;Node 堆限制为 2048 MiB;GOMAXPROCS=2、GOMEMLIMIT=2GiB 和 UV_THREADPOOL_SIZE=2。采样式的 6 GiB 提前停止保护从未达到;它不是内核内存限制。

耗时包括从进程启动到退出。CPU 为通过 wait 统计的子进程 CPU。峰值家族 RSS 是每隔 50 ms 对负载进程家族采样的最大总和;共享页面可能被多次计数,短暂峰值可能被遗漏。外部采样器被排除在外。此处所有被测命令都没有分析引擎子进程。宿主机上的其他工作不受控制,因此微小的对照差异不能证明性能改进。

中位数;配对值为 修改前 / 修改后:

任务 耗时(秒) CPU(秒) 峰值家族 RSS(MiB) 标准输出字节数
格式化版本 1.716 / 0.203 1.968 / 0.198 335.6 / 72.1 207
纯文本版本对照 1.876 / 1.783 2.221 / 1.990 346.8 / 338.9 6
过滤后提供方对照 2.467 / 2.182 2.624 / 2.461 384.7 / 378.2 67

首次测量的格式化版本进程(与重复中位数区分开):

通道 耗时(秒) CPU(秒) 峰值家族 RSS(MiB)
修改前 1.716 1.968 335.6
修改后 0.203 0.198 72.1

JSON 负载仍为 207 字节,包含所有已记录的字段。不声称 Token 数量有所减少。Token 数量、宿主机 Prompt 处理以及实际模型使用情况均未被测量;这些 CLI 任务没有 MCP 发现或后续调用。此前的开发探测(包括与聚焦测试重叠的探测)被排除在最终比较之外。不声称存在普遍的分析/提供方加速。

正确性与兼容性

  • 以下 12 个精确选定文件上的 231 个测试全部通过,且为串行执行。这涵盖了运行时/领域契约、实际 CLI 输出与错误处理、调度器清理、运行时打包、真实 MCP doctor 目录、doctor 组合,以及两个已编译的 CLI 测试驱动。
  • 新的调度器回归测试使用真实构建的预检和 CLI 模块,这些模块在导入时会抛出异常。JSON 在没有这些导入的情况下成功;无效输出和配置保留其错误。恢复原始启动器会使该回归测试在受阻的分析导入处明确失败(阴性对照)。
  • 一次真实 PTY 调用返回了与管道运行结果一致的缩进 JSON。纯文本版本、YAML 和帮助优先级仍通过公共 CLI 覆盖。
  • 一次真实 Node 20.20.2 调用返回了其版本,且 supported_runtime.satisfied: false;这不能证明对 Node 20 的分析支持。Bun、Windows 和 macOS 的端到端行为仍未得到验证。
  • 此前的并行 210 测试选择中,209 个通过,1 个现有 cliOutput 案例超过其 3000 ms 进程截止时间。该失败尝试被保留;随后的串行 231 测试选择在未放宽任何截止时间的情况下通过。其原因尚未最终归因。上面的过滤后提供方基准测试将同一公共命令作为兼容性对照运行。
  • npm run check 在向 Knip 声明现有 cliOutput 运行时入口点后通过。这使实际动态消费的入口保持可见,而不是忽略新的预检导出。
  • npm run docs:check 通过,包括 9 个 README 一致性测试。

所用串行选择使用了已构建的先决条件:

node scripts/run-exact-tests.mjs run --maxWorkers=1 --no-file-parallelism \
  src/domain/runtimeVersion.test.ts src/domain/versionReport.test.ts \
  tests/boundary/cli/cliOutput.test.ts tests/boundary/cli/versionReportCli.test.ts \
  tests/boundary/cli/dispatcher.test.ts tests/boundary/process/runtimeBundle.test.ts \
  tests/boundary/mcp/mcpDoctor.test.ts tests/boundary/cli/mcpDoctorHelpCli.test.ts \
  src/doctorRuntime.test.ts src/application/Doctor.test.ts \
  tests/boundary/cli/compiledCliSession.test.ts \
  tests/boundary/cli/sharedJavaScriptCliSession.test.ts

此工作流报告的是运行时元数据,而非目标分析证据。现有 MCP 服务器身份仍保留为 MCP 版本表面;未引入重复的工具或模式。

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