Files
Agent-System-Documents/docs/proposals/2026-10-13-iam-i1-acceptance.md
weichen b4a2573742 Record user acceptance of IAM I1 validation
Why: Preserve the explicit stage 7 decision before formal review and integration.

Evidence: User confirmation in this session; document consistency receipt 17a3542f8e69fc899a05a152d258b721a8aaab4cd0a3629f8f5cbb7364d77d84 (SELF).

Impact: Record acceptance of the fixed I1 candidate and its stated limitations; leave the approved plan unchanged.

Refs: Dev policy/delivery.md stages 7-9; IAM I1 permission contract.
2026-10-13 15:30:37 +00:00

8.6 KiB
Raw Permalink Blame History

IAM I1 阶段 7 正式测试与验收候选

日期:2026-10-13(北京时间);负责人:weichen;测试执行:Codex;状态:用户已通过阶段 7。正式代码 Review、PR、CI、合入和部署分别记录,不由本页代签。

用户在本会话回复“确认”,对应 Dev 4af5956、Documents 064d4b5、RDM 70e27b08 的阶段 7 报告及下述明确缺项。按 Dev policy/delivery.md 进入智能体负责的阶段 8–9;同步后的新组合须重新验证与独立 Review。工作区清理、部署和 U3–U9 仍需各自授权。

批准与范围

用户回复“批准”,对应 阶段 6 实施交付 的 Documents c023551、RDM b93908e、Dev 72ed8b4。批准原版本保留,恢复同步后的测试版本另列。本次按已获批 统一方案 r1 的 I1=U1–U2 及 权限合同 验证当前公开命令/API边界;不关闭 R1–R20 全部目标,不实施 U3–U9,不操作现有服务、生产数据库或真实账号。

恢复处理包括:Dev Documents 同步冲突保留上游项目成员规划及三份 I1 批准文档原文;RDM 采用上游 rdm.project.member.set-role 合法命令 ID,保留 I1 身份包装。没有恢复旧权限旁路,没有变更 RDM pins;所有失败、恢复、同步收据保留。

固定对象与完整收据

对象 固定版本及结果 原始记录
Dev 集成组合 10789653f989da6dc8a5ecc72d996dc2764208db,同步目标 ee9b437b22b49f96e1bc65f79417b22e8e82a37c;make test 退出 0 Dev 任务卡 SELF 收据 ea7b77587b568d968594b0cb90c5362cab27d8eab1492da8cdea14d74e43d11d
RDM 完整组合及 HTTP 70e27b08c65d8e966a11b1d30723414ec3e36f8e,同步目标 6c689caa1fa271c2a16174427df51a9b8919c4e0;make test+真实 HTTP+产物/测试摘要检查退出 0 RDM 任务卡 SELF 收据 6e684a9047e43b0bdafbc71604ab5debe06bf437d1e3c95c4169d310f11d70c0
独立最小重放 /root/i1_phase7_review 未参与源码修改;先在 58a23f8c 重跑 39 个顶层 TestIAMI1,再审查作者材料并重跑最终 HTTP 10 组;退出 0 已导入 RDM 卡的完整 SELF 工具收据 6bbb0f747e41c28d3c2327c587e162072a69495573def6f97a6d1657eb0b0d76、c7edde369566552acf4060500985a4a80ea004af80455446de9a215f64f89587;工具标签不自行升级
RDM 二进制 SHA256 93aabc13041cf5a5c5636ebd0c88979a4d0f6fd0f79ba1272defc75176a75d81;从实际组合产物运行,没有使用 Vite 或仅源码模拟 bin/PRODUCT_MANIFEST.json 与上述工具收据
HTTP helper SHA256 a7d1d3260f4a62f0cb14b91339506419e9be306f2d0e3f7c74a6e77e76a458d4 RDM .task/artifacts/iam-i1-http-acceptance.py;代码与测试材料已提交

RDM 固定 Backend 0f192a481388184df39f81c28b0587a7e16ec3ca、Frontend 4965de269a441a7df02b46d8533067f044e79b8b、UI bfecf8b51f9a0fdbd9a13590cddf8fc06b7ae700;前端 dist 摘要为 13acbec506086fe8。Dev 新组合与 RDM 产品各自固定、各自检查;不能用 Dev 新接口存在证明旧 RDM pins 已消费其能力。后续只记录文本的提交不改变这些行为对象;最终记录提交及工作树检查另见任务卡。

完整命令输出由 evidence 工具保存于两个任务卡,本文只提供判据和结果摘要,不转写输出、不提升来源等级。测试本地来源为 SELF;用户批准、受信 CI、平台账号独立批准及部署各自独立。

需求到证据

I1 要求 正常/异常/边界判据 当前结果与测试
R6/R12 系统与项目作用域 合法管理员创建/配置/任命角色成功;获 A 的 project.settings 者可改 A 名称,但全局 role/cap/admin transfer 被权限拒绝;body 伪造 actor/owner 不改变认证身份 PASS;注册命令 TestIAMI1+真实 Bearer HTTP,先检查命令已注册,再要求权限原因,不把未知命令或 schema 拒绝计通过
R7/R8 管理资格不授 B 业务访问 /api/me 明确实际平台管理员身份;A 创建者且管理员对 B 的成员、权限、归档和审计操作拒绝,当前项目清单不显示 B;合法角色获授者可建 B PASS;真实新实例 /api/commands/{id}+项目/审计相关 Go 正反例
R9 创建者也受硬 cap 已确认 Alice 在 A 的 doc.write 允许并有 allow 覆盖;保留 default=true,只关闭 cap;实际高危命令确认后因上限拒绝 PASS;HTTP 隔离 cap 变量;Go 创建者 cap、平台 cap、未知角色动作与读策略故障等边界
R11 停用/换岗/旧覆盖 旧 doc.write allow 后换到未定义该动作角色,执行及解释拒绝;停用前 doc.read 允许,停用后消失,执行/矩阵均显示已停用原因 PASS;HTTP 精确原因与前后矩阵+TestIAMI1;没有借其他已存在拒绝原因替代停用测试
R18 私人原件/草稿与读取范围 真实 held 原件仅上传者可确认;管理员与未知 batch 获相同不透明拒绝且无实际 B 项目或文件信息;私人候选、差异、快照、审核状态、聚合读面/模型输入按当前 owner/阶段/grant 判定 PASS;真实 HTTP 上传确认+SQLite/已注册命令实际正文和持久状态负例;本次不声称完整 U5/U6 资源职责模型已实现
R12/R18 幂等回执和 outbox 操作/项目/主体/资源不匹配 opID 不返回他人回执;合法重放保留;outbox 归属与业务在同 Tx 写入,仅送到实际 owner Host,未知旧归属保持 pending PASS;TestIAMI1 实际回执和 SQLite 状态+既有原子/失败重试回归
注册和组合回归 当前 set-role 等命令 ID 正确注册并保留身份校验;根页为实际 React embed、未认证命令 401;RDM 29 项 Web、全部 Go;Dev 治理、公开边界/pins、库、Core、Backend、Frontend/UI、命令检查 PASS;两套 make test 及当前产物真实 HTTP;不把 HTML 获取等同于浏览器交互验收

HTTP 测试过程及独立复核

实际 HTTP 使用全新临时 SQLite、三名合成主体和随机 API Key;平台首位管理员在其他开户之前由可信 CLI 建立,/api/me 核验其真实身份。服务仅绑定随机回环端口,强制关闭执行工具,环境不继承 DSN、服务实例绑定或模型密钥,HTTP 禁用代理。真实私有会话和确认卡到最终回执的路径执行高危命令;native 项目仅为确认上下文,不作为 RDM project.create 政策的通过证据。测试结束只终止自己的 PID;成功临时场景回收,失败场景保留用于诊断,不修改既有实例。

初次 HTTP 在未经过高危确认流程时拒绝,该结果没有被计为权限通过;补齐确认路径后重验。首位管理员创建顺序错误同样保留失败证据,不关闭原防接管机制。独立审阅又指出停用/默认与 cap 的两处测试假阳性风险;已分别加停用前后读权及原因检查、保留 default/allow 只关 cap。最终独立 HTTP 重跑 10 组通过,审阅范围内无剩余 Critical/Important。

缺项、兼容边界与验收决定

  • 全产品浏览器交互和真实模型任务级前后对照:NOT_RUN。本轮 I1 没有业务 UI 实现,已规划出口为直接命令/API与当前回归;完整浏览器及 Agent 闭合属后续单元。工具描述真实模型对照仍是明确缺项:本轮未建立固定模型/配置/任务集/费用范围,mock 与 HTTP 不能替代模型行为。补救为另行明确测试条件后执行任务级对照,在后续 Agent/全产品验收前闭合;不能计 PASS。
  • PostgreSQL、多实例、在途后台最终提交 epoch、账号有效态/恢复、多职位/项目选用及完整三权:本轮完整验收未执行;按 U3–U9 依赖和各自授权推进,不迁移生产 DB。
  • 已批准的 I1 默认拒绝保留:无范围证明的 whole-prefix 知识撤销和公共全量自举拒绝;没有可信 Host 项目证明/资源分类的共享读取拒绝;audit.read 不随管理员或创建者自动授予;旧未知归属 outbox 不推测 owner。恢复这些能力须新公开提供者/消费者合同,不由此次测试擅自补接口或改 pins。
  • PR/受信 CI/GATE、正式阶段 8 Review、合入、部署及工作区回收:NOT_RUN。独立提前审阅和本地重跑不代替平台条件。

原提交给用户的阶段 7 决定范围:固定 I1 U1–U2 的命令/API边界与回归结果,以及上述明确缺项/既定兼容限制。提交时结论为“本地测试已通过,待人工验收”;用户随后回复“确认”,已在页首记录为阶段 7 通过。原长期方向及下一任务仍为获批方案 I2/U3,需另行授权,当前不启动。