跳转至

验证

已验证基线:6676582675e08574146a812ae58cff67e2e53282(本分支的 head),本轮的审查修复尚未提交。

在 macOS 上的实现工作树中执行,使用 Node v22.23.1(仓库在 .nvmrc 中固定为 24.18.0,但该版本未安装)。以下每项检查均是在最后一次源代码变更之后按原样运行的,顺序如下。

  • npm run format 然后 npm run format:check:通过(4330 个文件)。
  • npm run check:fast:类型检查和 lint 通过。lint 报告包含 0 个错误,且本轮涉及的任何文件中都没有诊断项。
  • npx knip:通过(exit 0,无发现)。
  • npm run jscpd:3373 个文件中有 3.37% 的重复行(2800 个克隆),低于 3.5% 的门槛;没有任何克隆涉及本轮修改的文件。
  • npm run scan:todos:通过,无标记。
  • npm run docs:check:构建的文档检查(6 个任务)和 README 一致性符合性测试(5 个测试)均通过。
  • npx vitest run --project domain --project services:347 个文件,5948 个测试通过,5 个既有跳过项。
  • npm run build:cached(构建产物已包含本轮源代码),然后 npm run test:focused -- 覆盖 serve CLI、MCP 和进程边界,export CLI 边界,CLI 启动导入,agentenv 验证器身份边界,bundle 包 pin 符合性测试,CI 变更范围边界,analysis-view CLI 和 MCP 边界,以及 serveEnvironment、serveEnvironmentState、environmentCapacity 和 stateIntake 适配器测试:14 个文件,335 个测试通过。
  • 在本文件写入之后:npm run format、npm run format:check、npm run scan:todos 和 npm run docs:check 再次通过。

上述测试覆盖了本轮审查修复,并在上述运行中全部通过:

  • 响应预算:在已加载状态上的一批四个 data/get,其状态约为预算的三分之一,保留两个结果,用 -32000 和 max_response_bytes 响应另外两个,保留末尾 reset 的 {},并且其响应体保持在预算之内。
  • 批次顺序:一个 [data/add (gated download)、data/get] 批次,在下载被挂起期间收到来自另一个请求的 data/reset,其 data/get 报告已加载状态,而 reset 最后生效。
  • 取消:中止数据平面的停止信号会结束一个停滞的下载(其 fetcher 的信号被中止),并将排队的 reset 以 cancelled 应答而不运行它;停止之后发出的调用不会运行;请求信号被中止的调用方会收到 cancelled,且状态不变。在回环 HTTP 上,对一个正在提供的状态调用 close() 会在一个永不应答的下载仍在进行时返回,并且该下载的信号被中止。
  • 文件关闭:在注入关闭失败的情况下,对 file:// URI 的 data/add 返回 -32000,且未回显该 URI。描述符保持打开,下一次文件加载在加载前将其关闭。当关闭持续失败时,在回环 HTTP 上下一次文件加载返回 -32000(“still open”),而内联 data 部分仍被加载。close() 以未完成的关闭操作拒绝,然后在关闭成功后解析并关闭描述符。这两个测试在之前的 head 上失败,因为该版本丢弃了描述符。
  • 文件主机:file://remote.example.test/... 和 file:////remote.example.test/... 会被拒绝,并返回 network-share 消息,且没有失败类别;file://localhost/... URI 可以加载。
  • 已加载身份:在用户 2 上将 view_fields 的 id 设置为 3、"3" 或 null 会在 /rea_state/entities/7/view_fields/0/fields 处被拒绝;"2" 可以加载。
  • 列出必填字段:没有 title 的文件夹会让 get_folders 产生一个命名该不完整实体的工具错误。

每个测试在缺少对应修复时都会失败,这一点是从源码推导得出的;为了展示这一点,并未回退修复。

此处未涵盖:Windows 主机(UNC 拒绝测试在 macOS 上运行,其中 file:////host/share 会转换为 //host/share;主机检查在每个平台上都先于任何路径转换运行)、真实的 https:// 下载(测试中注入了 fetcher)、有预算批次的内存和时间(未测量)、agent token 使用情况、真实的 AgentEnv 框架运行、真实世界捕获,以及写入效果——这些属于后续增量。

在拒绝了相对于状态自身嵌套过深的 body(一个被记录的 body 必须嵌套至多 JSON 深度限制减去 16 层才能进入状态)之后:npm run check:fast、npm run format:check、npx knip、npm run scan:todos 通过;npm run jscpd:3373 个文件中有 3.37%;npx vitest run --project domain --project services:347 个文件,5950 个测试通过,5 个既有跳过项;npm run build:cached,然后 npm run test:focused -- 覆盖 serve CLI、MCP 和进程边界、export CLI 边界以及两个 serve 适配器测试:6 个文件,48 个测试通过。

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