验证¶
在 macOS 上使用 Node v22.23.1 执行,本分支已合并 write-plan 分支的头部 45a5c8b9。试点录制是在六个一次性 Linux 虚拟机上对真实应用进行的,每个虚拟机均先从快照恢复。
门禁¶
npm run build:cached、npm run check:fast(类型检查和 lint,变更文件中无警告)、npm run format:check、npx knip、npm run scan:todos、npm run docs:check、npm run verify:test-discovery和npm run mcp-catalog:check:全部通过。npm run jscpd:在 3754 个文件中重复行为 3.43%。npx vitest run --project domain --project services:7769 个通过,5 个预先存在的跳过。- 先运行
npm run test:prepare,再运行npm run test:focused --:环境 serve 和导出 CLI 边界、serve 和 served-writes MCP 边界、analysis-view CLI 和 MCP 边界、紧凑输入 schema 边界以及工具 schema 有效性:8 个文件,79 个通过。
测试¶
- 门禁:一个重命名的书续期了发送的
version_id及其章节 ID,使用unique和renewed规则提供服务;两个创建请求发送了handle,它被存储为code并嵌入link,使用copy和template规则提供服务。 - 服务:每个被服务的更新都会获得新版本和新章节 ID,且这些章节 ID 保留其标题;带新
handle的被服务创建会将其存储为code并重建link。 - 单元测试:解释(explanation)包括另一个实体持有的 UUID(不是
unique)、文本发生变化的子行(不是renewed)以及仅部分复制的成员(仍固定);续期辅助函数;应用上述两种更新规则。 - 这四个门禁和服务测试在
43d98ea9上失败。 - 评审轮次(在
a477b21d上,每项均失败):服务只续期录制中所续期的指针处的 UUID,保留每个章节命名的作者 ID,为某个 UUID 在每个续期字段中赋予相同的替换值,并且不向没有任何行的实体提供任何行;保留续期值的录制调用会拒绝该计划;保留、移动或借用 UUID 的续期不构成续期;被复制的成员会针对其存储字段进行类型检查;以自己的名称但以其他方式存储的成员不被接受;回显值的副本不是模板来源;以另一种大小写存储的已发送 UUID 不是生成的 UUID。
试点录制¶
每个应用都被重置,然后使用捕获的读取进行录制;每个写入目标还会使用两个临时对象,其每次写入都会立即读回(item 和 list),删除则作为 404 读回。
| 应用 | 写入 | 之前 | 之后 |
|---|---|---|---|
| Shlink | post_rest_short_urls |
unexplained-change |
served |
| n8n | patch_rest_workflows_by_workflow_id |
unexplained-change |
served |
| Mealie | patch_recipes_by_recipe_id |
unexplained-change |
unexplained-change |
六次录制中的其他判定均未改变。Mealie 的更新由本分支的早期版本提供服务,且 recipeIngredient 被续期。它的两次录制更新都保留了成分 ID;门禁中第二个食谱的副本持有第一个食谱的 ID,因为显示该副本的读取是创建时的观察结果,并未被采纳。现在,每个续期字段都需要所有录制的调用都续期它,因此该计划会被拒绝,而不会被服务并重新生成成分 ID。基于 list-query 栈(#5800 已合并 #5699),与早期版本相比,留出会话在 n8n(143 步中的 127 到 129)和 Shlink(137 步中的 126 到 128)上各多匹配了两个步骤;Komga、NetBox 和 Sentry 保持不变。
已发布的捕获¶
- 在 50 个已发布的捕获中,每个写入判定都没有变化:31 个已服务的写入工具。唯一变化的计划是 Shlink 未服务的创建操作,现在它接受
customSlug并将shortUrl作为模板。 - 早期版本还将回显值作为模板来源。它围绕
uid对 Grafana 的文件夹url进行模板化(该 URL 还包含标题的 slug),并围绕其 markdown 对 BookStack 的页面 HTML 进行模板化。回显值不再作为来源。 - 服务冒烟测试应用全部 31 个已服务写入工具,与
43d98ea9上一致。
本页原文 Markdown:在 AtomGit 查看·内容源自开源项目 rea2/rea