验证¶
已验证基线: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