diff --git a/docs/records/2026-10-14-rdm-two-trees-latest-templates/README.md b/docs/records/2026-10-14-rdm-two-trees-latest-templates/README.md index 915413c..3427ea9 100644 --- a/docs/records/2026-10-14-rdm-two-trees-latest-templates/README.md +++ b/docs/records/2026-10-14-rdm-two-trees-latest-templates/README.md @@ -10,6 +10,7 @@ - [阶段3工作信息拆解与主动风险澄清需求表r1](rdm-two-trees-stage3-work-observation-risk-requirements-r1.md):用户已确认TT-N03、TT-R01新增条件;原28项仍按原批准对象,原稿字节保留。 - [阶段4工作来源观察与主动风险澄清方案r1](rdm-two-trees-stage4-work-observation-risk-design-r1.md):受影响公开接口、候选/HITL/卡片、权限和恢复方案,用户已批准固定版本。 - [阶段5工作来源观察与主动风险澄清实施及测试计划r1](rdm-two-trees-stage5-work-observation-risk-implementation-test-plan-r1.md):TT-N03/R01 的代码 owner、依赖、隔离测试、全链路验收与原预算复用,用户已批准固定版本。 +- [阶段6 W4b 真人确认受影响设计修订候选r1](rdm-two-trees-stage6-w4b-human-confirmation-design-adjustment-r1.md):固定公开 Host 缺可信一次性人工证明的合同差距、候选 X3 能力和 RDM 原子消费/恢复/测试边界;待阶段4受影响方案人工评审,确认写入暂不实施。 - [阶段3需求与验收条件r1原对象](rdm-two-trees-stage3-requirements-r1.md):已获用户确认,原字节保留。 - [阶段4方案设计r1](rdm-two-trees-stage4-design-r1.md):用户已批准,原字节保留。 - [阶段5实施与测试计划r1](rdm-two-trees-stage5-implementation-test-plan-r1.md) diff --git a/docs/records/2026-10-14-rdm-two-trees-latest-templates/rdm-two-trees-stage6-w4b-human-confirmation-design-adjustment-r1.md b/docs/records/2026-10-14-rdm-two-trees-latest-templates/rdm-two-trees-stage6-w4b-human-confirmation-design-adjustment-r1.md new file mode 100644 index 0000000..872f6c8 --- /dev/null +++ b/docs/records/2026-10-14-rdm-two-trees-latest-templates/rdm-two-trees-stage6-w4b-human-confirmation-design-adjustment-r1.md @@ -0,0 +1,42 @@ +# 阶段6 W4b 真人确认受影响设计修订候选 r1 + +状态:待阶段4受影响方案人工评审;本文不是实施授权、基座公开面、确认成功回执或阶段6验收。记录日期:2026-10-14。影响范围仅为动态结构、字典及模板升级提案的确认入口和可信凭据;W3 递归实例及无副作用的提案展示可以按原批准方案继续。 + +## 1. 固定事实与阻断 + +- RDM 已同步的隔离分支固定源码为 3869738d575fbf5e8b42dc82c7fff0c20aa0fed8,基于 RDM origin/main 7828925787fbdb0086675f72af05289c7045dbce;该组合 pin 的 Backend 为 ead5ade30e8a9475277ba72505f5029feea93304,公开 extension SurfaceVersion 为 2.12.0-experimental。此处是 2026-10-14 的源码快照,不证明未来主干或运行实例。 +- 固定 Backend 的 extension.Host 不含可核验真人确认的可选能力,extension.Request 只有 Actor、Owner、ConversationID、Entrance、HostProjectID 等分发字段。Entrance 的 button/card/chat/api 是入口分类,不是受信人工动作的证明,也没有一次性提案修订与 payloadHash 绑定。基座内部已有 HITL 挂起与响应机制,但没有给 RDM 一个可在项目事务内使用的公开确认凭据合同。 +- W3 的独立失败测试 TestDHFInstantiateMaterializesTemplateBlockIdentity 在 RDM 测试提交 7c9a19385e 下为 SELF RED,收据见 RDM 任务卡 SHA256 前缀 a5eddadb:受控已发布夹具的模板块 purpose 未生成项目 nodeID/templateBlockID。该 RED 证明 W3 实例差距,不替代本 W4b 的可信真人确认验证。 +- Dev/Documents 首次独立 precheck 因 Dev 分支落后主干返回 SYNC_REQUIRED,故未写仓;协调者同步后,第二次外部 SELF 收据 /tmp/rdm-w3-w4b-dev-precheck-ready-20261014-1605.json 返回 READY,SHA256 3eb298d362236aa0bf691e2175b54eb6b412f3553f1ff0106ccba7527ba20d43。本候选在获准的独占文件窗口写入。 + +阶段4 r1 第5.2–5.3节已批准的硬约束是:实际人确认绑定 projectId、proposalId、revision、payloadHash、actor 和有效期,在同一 RDM 项目事务中消费;模型以人名调用工具、confirmed=true 或伪造 confirmedBy 均不能生效。当前公开接口无法证明这个条件,故 W4b 确认写入和插件决定命令保持阻断,不能以入口字符串、RDM 自签 token 或当前草稿采纳入口代替。 + +## 2. 候选路线与取舍 + +| 路线 | 可核的人工来源 | 事务边界 | 判断 | +|---|---|---|---| +| 推荐:基座 HITL 响应生成仅面向 RDM 的受信确认凭据;可选 Host 能力向本次分发提供已核验声明;RDM 在自己的项目事务中以凭据 ID 唯一约束消费 | 由基座认证响应及当前 pending 对象生成,模型工具不可领取;Host 不信任 Params 里的 actor/入口自报 | 提案 applied、领域事件、项目 revision、凭据消费、操作回执和审计 outbox 同一 RDM 事务 | 保留既有宿主身份边界与 RDM 事实源,无跨库两阶段提交 | +| 基座先消费 token、再调 RDM apply | 基座可证明真人 | 两库不原子;RDM 回滚会丢失一次性凭据,未知结果难恢复 | 不采用 | +| RDM 根据 button/card 或文本自签确认 | 无法区分模型调用与真实人动作 | 即使 RDM 事务原子,也没有可信授权起点 | 禁止 | + +建议新增可选公开能力 HumanDecisionVerifier(名称待基座 X3 评审定稿),由受信 Host 在本次命令分发上下文回答 VerifyHumanDecision(expectedBinding),而不是把可复制的秘密 token 放入模型可见 Params。expectedBinding 至少包含 audience=rdm.structure.decide、actor、projectId、proposalId、proposalRevision、payloadHash、decision;返回只读 proofId、issuer、humanActor、projectId、proposalId、revision、payloadHash、decision、issuedAt、expiresAt、conversationId/runId 及基座持久 HITL 响应引用。Host 必须证明当前分发确由认证人对该确切待确认卡作出选择;模型工具、后台重放、无项目/无 pending 卡、过期或不匹配均 fail closed。RDM 不得自行铸造这份证明。 + +proofId 在 RDM 仅作消费键和审计引用,原始凭据不写入领域事件、模型上下文或普通读面。基座只验证并出具已发生的人类响应,不在独立基座事务中先标记 token 已消费;RDM 的 proofId 唯一约束承担一次性消费。凭据限定为该 RDM audience,其他插件不能把同一证明当作自己的确认。基座公开面必须同步 surface.txt、可选能力装配和兼容测试;RDM 只消费正式可用的固定组件版本,不改 pins、导入 Backend internal 或用本地替身替代发布合同。 + +## 3. 确认顺序、权限与恢复 + +1. 提案读面展示不可变 proposalId/revision、payloadHash、差异/理由/依据/影响、受控对象与当前 baseVersions;编辑产生新修订和新 hash,旧确认不转移。自动生成只到 pending,不更改有效树。 +2. 受信人从现有 HITL 卡或同一受控 UI 路径确认。基座把认证 actor、确切 pending 对象和响应持久化,再给本次分发可核验的证明;自然语言“批准”只有在 pending 对象唯一且经同一基座响应路径绑定时有效。 +3. RDM 按可信 actor/project 获取项目私有事务与数据库 CAS,围栏内再校验项目成员、doc.write 或明确经评审的结构管理动作、当前职责/整文锁定、字典/结构/模板版本、提案修订/hash、证明有效期和 audience。跨文档变更要求所有目标授权;不能以 project.settings 隐式扩权。 +4. 在同一 RDM 事务中 INSERT 唯一 proofId 消费行、校验 requestDigest/operationId 幂等范围、应用整批结构事件、更新 proposal applied、写回执和审计 outbox。任一校验或写入失败全回滚,确认前有效结构字节不变;失败尝试另留非已生效记录。提交后一次发布只读快照。 +5. 网络断开或返回未知时,先以 operationId 加 actor/project/proposal 查询已提交回执。已提交同键同内容返回原回执;同键异参拒绝;未提交且证明仍有效才允许重试。证明过期、权限撤销或提案改版需新人工确认。基座证明记录与 RDM 消费记录可按 proofId 对账,不把未收到响应等同未提交。 + +旧 content 草稿/审签记录保持旧事件与下载语义;新结构确认不会自动把正文标为批准。旧提案默认 content,旧命令只能返回其原形状;在可信证明未就位前,结构/dictionary/template-upgrade 的 decide 必须显式拒绝,不能降级到现有 AdoptDraftProposal 或其他旧直写入口。任何影响公开权限动作、事件载荷或旧库迁移语义的实现差异须回到本修订评审。 + +## 4. 最小重放集和停止条件 + +- 基座公开面:认证 HITL 响应正例;模型调用、伪 Entrance、错 actor/project、错 revision/hash、卡已改、过期、撤销、不同 audience 负例;同一 proofId 不能给第二个资源或插件使用。核验 Host 缺能力时 RDM 明确拒绝且零领域副作用。 +- RDM 事务:确认前树/版本/事件序号不变;提交后整批一次生效、重启可重放,凭据消费与 proposal/applied/事件/outbox/回执同提交;故障注入逐个中断点均无半树。两人并发仅一胜,确认瞬间成员或职责撤销拒绝,整文已锁定拒绝;拒绝/取消/改后接受留下可辨状态和新修订链。 +- 恢复与审计:提交后响应丢失按 operationId 找回原回执;同键异参拒绝;失败尝试不成为已生效结构事件;普通审计读面只见 proofId 引用及人类响应事实,不泄露凭据材料。SQLite 与隔离 PG 各做关键 CAS/重放/撤权;真实模型与浏览器确认路径待后续已批准验证阶段,当前 NOT_RUN。 + +停点:基座 X3 公开能力、可信发行链和 RDM 原子消费合同经用户批准且形成固定可消费组件前,W4b decide 写入口不实施、不宣称确认可用。W3 不受此缺口影响的递归实例和旧数据兼容可继续;本文仅请求对这一受影响阶段4合同作人工评审,不重开已批准的 W2 数据保全与读隔离结论。