Design trusted work observations and risk clarification

Why: The approved work-source requirements need a governed path from real messages, retrieved material, and analysis into project evidence and timely clarification.

Evidence: Stage-three amendment SHA256 552a9fdea996bb547c185949b5072a51efafdce1339a9eaafd49537dfedd91b4 and user approval call_b517d0f07af54aa188a01ddb100485b9; independent Backend and RDM scoped design reviews closed the identified privacy, timing, and atomicity gaps; document hashes and links checked.

Impact: Save an unapproved stage-four design only; no new public interface, migration, model run, or product behavior.

Refs: TT-N03, TT-R01; work observation and risk design r1
This commit is contained in:
2026-10-14 14:50:37 +00:00
parent 906627b953
commit 934ee4d803
3 changed files with 85 additions and 4 deletions
@@ -1,7 +1,7 @@
# 最新模板驱动的两树一网、成员工作上下文与完整可读审计
修订:r8;更新时间:2026-10-14T22:18:41+08:00;需求负责人:用户;记录/准备:Codex。
当前阶段:**原28项的阶段5实施与测试计划r1已批准,阶段6按增量实施;本轮普通工作观察与主动风险澄清的阶段2增补已获确认,阶段3增补需求表待评审**。manual逐阶段评审。组件本地实现和隔离测试已开展;增量A及全目标尚未完成,正式运行验收NOT_RUN,E1保真判据仍未通过。
修订:r9;更新时间:2026-10-14T22:29:23+08:00;需求负责人:用户;记录/准备:Codex。
当前阶段:**原28项的阶段5实施与测试计划r1已批准,阶段6按增量实施;普通工作观察与主动风险澄清新增TT-N03/R01已获阶段3确认,受影响阶段4方案待评审**。manual逐阶段评审。组件本地实现和隔离测试已开展;增量A及全目标尚未完成,正式运行验收NOT_RUN,E1保真判据仍未通过。
## 目标与成功标准
@@ -98,7 +98,8 @@ RDM保有领域、schema/事件与业务权限;Backend仅补必要通用公开
## 本轮新增需求评估
- [阶段2受影响需求评估:工作信息拆解与主动风险澄清r1](../records/2026-10-14-rdm-two-trees-latest-templates/rdm-two-trees-stage2-work-observation-risk-evaluation-r1.md):用户补充要求用户发言、智能体已提交回复、实际检索及可见分析结果逐来源拆解,并在任务中及时发现歧义/风险,以对话/HITL/工作卡澄清。原`.tmp/08`已有“对话/上传/检索统一切片、切片互撞”的目标,但已批准28项未逐类验收普通工作入口、处理回执和相关动作前澄清。用户于本聊天`call_aea78d4156fe4ca89f4b9b6883b2b23f`第0项确认增补并进入需求表;评估稿SHA256 `2627342f7d6e94137d5e7418d995ce57218093f6512f67fb7b221f01067da04d`。原阶段2结论保持原范围有效,新增能力仍待阶段3–5受影响评审。
- [阶段3工作信息拆解与主动风险澄清需求表r1](../records/2026-10-14-rdm-two-trees-latest-templates/rdm-two-trees-stage3-work-observation-risk-requirements-r1.md):只新增TT-N03(四类普通工作来源逐项处理)和TT-R01(任务内风险/矛盾及时澄清)的可判定验收条件,原28项原字节不变;建议总数30项。**待人工评审**,固定稿SHA256 `552a9fdea996bb547c185949b5072a51efafdce1339a9eaafd49537dfedd91b4`。新公开观察接口和对应产品代码仍未授权,原W2/W4a/时间及不受影响的W3可继续。
- [阶段3工作信息拆解与主动风险澄清需求表r1](../records/2026-10-14-rdm-two-trees-latest-templates/rdm-two-trees-stage3-work-observation-risk-requirements-r1.md):只新增TT-N03(四类普通工作来源逐项处理)和TT-R01(任务内风险/矛盾及时澄清)的可判定验收条件,原28项原字节不变;总数30项。用户于本聊天`call_b517d0f07af54aa188a01ddb100485b9`第0项确认两项并进入方案设计;固定稿SHA256 `552a9fdea996bb547c185949b5072a51efafdce1339a9eaafd49537dfedd91b4`。新公开观察接口和对应产品代码仍待阶段4/5评审,原W2/W4a/时间及不受影响的W3可继续。
- [阶段4工作来源观察与主动风险澄清方案r1](../records/2026-10-14-rdm-two-trees-latest-templates/rdm-two-trees-stage4-work-observation-risk-design-r1.md):建议Backend提供受信X3观察与动作前风险决定,RDM负责私域候选、当前权限/来源比对和既有HITL卡,确认后才成为项目有效事实。两轮限域设计复核已闭合消息/outbox的处理屏障、可见正文时序、私域片段双许可与撤权、RDM风险卡唯一owner等问题。**待人工评审**;固定稿SHA256 `c9edb25c1decbbcb31220ef0cec8703c37e4aaa87bee31eb308169000b335d8c`;原阶段4批准对象不受影响的条款继续有效。
## 阶段6受影响设计及决定
- [领域时间持久化与历史缺项修订r1](../records/2026-10-14-rdm-two-trees-latest-templates/rdm-two-trees-stage6-time-contract-design-adjustment-r1.md):独立时间RED和固定源码核查发现新态与重放时间不同、ReviewCard时间丢失、CNode同版本更新覆盖原时间/主体。建议新字段显式持久化、事件schema 2及仅针对事件INSERT的最低写版本门禁;旧缺项保持历史兼容投影并明确来源。用户已于本聊天call_6ce04b5a3ca3496487ab2714ed208965第0项选择“批准修订,隔离实施验证(推荐)”;原稿保留评审前文字。授权在读取隔离固定后由原owner继续时间合同与隔离测试,真实库迁移和部署仍未放行。 固定评审对象SHA256 `d78849440e6346482fc09925d402790a7ad257ef76c85275610046a845a45f37`。
@@ -7,7 +7,8 @@
- [阶段1原对象](rdm-two-trees-requirements-r1.md)
- [阶段2原对象与E1试验范围](rdm-two-trees-stage2-evaluation-r1.md)
- [工作信息拆解与主动风险澄清的阶段2受影响评估r1](rdm-two-trees-stage2-work-observation-risk-evaluation-r1.md):用户已确认增补并要求进入阶段3;原稿字节保留,不改变原阶段2已批准对象。
- [阶段3工作信息拆解与主动风险澄清需求表r1](rdm-two-trees-stage3-work-observation-risk-requirements-r1.md):TT-N03、TT-R01新增条件待人工评审;原28项仍按原批准对象。
- [阶段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/卡片、权限和恢复方案,待人工评审。
- [阶段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)
@@ -0,0 +1,79 @@
# 阶段4受影响方案:工作来源观察、受控入网与主动风险澄清 r1
记录日期:2026-10-14(Asia/Shanghai)。状态:**待人工评审**。用户在本聊天 `call_b517d0f07af54aa188a01ddb100485b9` 第0项确认[阶段3增补需求表r1](rdm-two-trees-stage3-work-observation-risk-requirements-r1.md)(SHA256 `552a9fdea996bb547c185949b5072a51efafdce1339a9eaafd49537dfedd91b4`),TT-N03、TT-R01纳入目标,总需求由28项变成30项。本稿只修改[原阶段4方案r1](rdm-two-trees-stage4-design-r1.md)所受影响的普通工作来源、HITL、权限、上下文及审计合同;原W2/W4a、模板/递归节点及时间合同的其他设计结论保持。新公开接口、数据迁移与产品代码待本方案和受影响实施计划依次批准。
## 1. 现状、选择与接口归属
已批准Backend X1向RDM项目上下文提供方**拉取**当前已授权依据,X2仅将已提交项目业务事实与宿主审计可信关联;二者没有将普通工作消息和实际检索结果**推送**给RDM的入口。固定Backend主干`607c38d7`的公开surface 2.12与X1/X2本地组合探针`d9b00c2`的surface 2.19都没有通用观察注册口(Dev任务卡SELF收据`ad404f00ba0f4cff2b02e07afc00ab4073ed1d91c1745caf826e1ada7209eec6`)。代码限域复核确认:用户消息持久化后才启动普通run,插件命令处理器只在命中命令时运行;助手最终消息在run收口后才确定ID;检索在运行中直接返回hits,普通工具结果多只留截断摘要。现有`runCtx.AskHITL`已有对话内卡与右栏收件箱投影,但未连接这些来源。
比较三条路线:
| 路线 | 能否覆盖普通工作和即时风险 | 成本/风险 | 处理 |
|---|---|---|---|
| Backend提供可选、受信的工作来源观察与动作前决定口;RDM实现项目候选/风险领域规则 | 可在实际用户消息、检索、工具结果和助手最终落库处取得来源,并在有关写入/生成前提问 | 需新增公开面、宿主持久投递、权限及恢复用例;需和X1/X2同步版本 | **推荐** |
| RDM定时读取整个宿主对话/工具日志 | 取不到未落库或已截断的逐项来源,也无法保证相关动作前提示;扩大私人会话读取权 | 易漏、误绑项目和越权 | 不采用 |
| 只在提示词中要求模型自行记忆/提醒,继续要求用户手动上传 | 无处理回执、幂等、跨轮恢复或可信真人确认;模型可能漏掉例句 | 与TT-N03/R01验收不符 | 不采用 |
Backend只拥有跨应用的**受信观察接缝与调用时序**,从当前认证会话/持久run和实际资源构造身份;RDM保有拆解、项目领域候选、冲突语义、权限/发布、人审、入树入网及项目审计。Frontend/UI显示同一个受控状态,不在客户端自行判断哪些原话可共享。新增公开面遵循现有`pkg/extension`与`surface.txt`的可选能力方式,不能让RDM导入Backend`internal/`。其最终surface版本和数据库迁移序号以实施时同步后的权威主干为准,不在本稿假定旧探针已发布。
## 2. X3建议公开合同:来源和风险决定
建议新增`ProjectWorkObservationRegistry.RegisterProjectWorkObserver`,与X1注册面一样**可选**。Backend的运行/命令入口在经过原有认证和项目解析后调用注册的`ProjectWorkObserver`;没有RDM提供方的非项目工作保持原行为。RDM产品声明必须具备X3时,未装配或版本不兼容返回可理解的缺能力状态,不能悄悄假装已处理。
`WorkObservation`是不可由请求、模型或插件回填身份的受信信封,至少含:宿主唯一**观察事件ID**与来源阶段、认证actor、owner/plugin、从持久conversation或run核对的项目绑定、conversationID、持久消息ID或资源/检索命中ID、源种类、原版本与SHA256、时间和作用域/授权水位;可带经限额的原文片段及`partIndex`与UTF-8字节区间。`task/run/step`在实际创建后才出现,**用户消息提交时RunID可空**,聊天命令路径本来没有run;Backend随后用受信关联事件补齐,不因RunID空丢弃已提交消息,也不采信当前chat命令请求里可能为空的`HostProjectID`。Backend保证片段与保存的消息或当次实际命中相符;工具输出若只留下摘要,须标`summary-only`,并提供仍可重验的资源引用或诚实列为不可复原,不把摘要写成全文。助手来源以**最终持久提交的消息**为准,流式`message.delta`不生成独立已完成来源;SSE发送不代表浏览器收到,若需“已显示”另有客户端ACK,不影响本轮候选入网判据。可见分析产物仅指已保存/呈现的推导摘要、结论、工件和依据,未公开的内部推理不是来源。
公开合同至少区分观察、动作前决定、真人答复和当前来源授权:
1. `Observe(ctx, observation)`:以`owner/project/hostObservationID/sourceKind/sourceID/sourceVersion/partIndex-or-span`作稳定幂等键,**内容hash作为该键的值校验**;同键异内容拒绝并记录冲突,重投同键同字节返回原回执。不同run再次看到同一资源有新的hostObservationID和处理回执,可将语义候选归并,但不合并掉实际来源记录。返回`accepted/pending/denied/partial`和RDM处理回执ID;`accepted`只表示受信接收并落待处理账本,不表示风险分析完成、事实成立或已分享。每个实际来源/片段须有归并、忽略、受限、失败或候选的终态。消息必须已持久化;检索/工具命中在交给模型继续用之前保留来源引用与确实可见的片段,助手最终消息在收口事务成功后入账。撤销/版本更新以每源单调epoch和墓碑压住乱序旧事件,不因旧Observe迟到重新激活候选。
2. `Preflight(ctx, workAction)`:针对即将执行的项目相关生成、正式要求/结构写入、确认或发布,带受信actor/project、动作、目标版本及**本次实际使用来源清单**(观察事件ID、sourceID、版本、hash、part与输入manifest水位),返回`proceed / clarify / pending / denied`及已保存的风险ID、需澄清的原句和可读理由。RDM必须证明清单中每项已经送达、完成对该动作适用的风险分析、没有交付offset空洞/`partial`来源;仅`accepted`或旧项目水位不能放行。本轮用户消息刚落库而outbox未投达时,Backend把同一**持久消息的受信快照**交给Preflight并由RDM在本地事务内先Observe/分析,再判定;也可等待其持久已处理水位,不得先分发chat命令或启动依赖它的模型run。检索/工具回调对后续模型/业务动作同理。待处理、超时或来源不全返回`pending`,相关动作零生效。`proceed`绑定确切来源/风险水位;一个新来源、更高项目版本、撤权或失败处理会使旧决定失效。Backend运行时在继续模型或命令前检查该决定,不能在调用RDM受影响命令后补问。
3. `Respond(ctx, riskAnswer)`(仅风险HITL):Backend从当前认证会话、已保存风险卡及用户点击构造actor、riskID/版本、source/action摘要和幂等键,不接受模型参数自报的确认者;RDM在其事务中提交风险CAS与澄清答复并回已提交决定回执。Backend**拿到且核对该回执后**才销卡或恢复等待中的run;RDM未完成、版本过期或网络结果未知时,run继续等待/查回执,重试同键不二次决策。后续正式项目写入另执行W4b一次性真人确认和事务复验。
X3还需把受信来源检查明确分成**原件读取**与**已批准片段分享**两种用途。`CheckSourceAccess(raw-read)`从Backend当前会话/资源存储判定请求者能否读取**原消息/完整工件**;无权的项目成员不能借发布过摘要去打开原会话。私人来源主人A如要向项目分享,须经绑定来源ID/版本/hash、确切原文片段、**拟公开的实际摘要/文本及其hash**与项目的一次真人卡授权;Backend验证A当前拥有/可读该原来源并保存可撤销的`SourceExcerptGrant`(grantID、原片段hash、拟公开文本hash、项目及撤权epoch),RDM在自身库保存并核对相同grantID的项目发布许可及当前成员/文档职责。若只授权原片段而未批准改写,发布只能使用该原字节或可证明的确定性裁剪;摘要改字、补入其他私人内容或跨来源合成时,每个相关来源主人都须重看**最终将公开的文字**并重新授权,其各自grant绑定对应受控片段与最终发布payload hash。两方不是一次跨库事务:只有两份许可均已提交且当前有效,派生片段才可发布;任一失败保持待授权,不露出内容。Backend原grant先成功而RDM未应用时,它不能使任何RDM候选生效,取消/超时按同一幂等键撤销或恢复该悬置grant。
`CheckSourceStatus(derived-share)`只对已注册的RDM观察提供方返回来源owner、原版本/hash、当前存在/撤权epoch以及**Backend自己的grantID、原片段范围和拟公开文本hash**,不返回原文;Backend检验源仍属于A、未删除/撤权、原grant与原片段及拟公开payload hash/项目匹配,RDM独立核对其项目许可仍有效、实际派生摘要的**完整发布payload hash与grant相等**及B的当前项目/文档权限。该状态查询不是任意客户端可调用的消息目录;成员B可使用A明确授权的项目摘要,同时仍被拒绝读取A的私人完整会话或其他片段。X1的逐项来源重验继续核对**实际纳入模型输入**的文本hash;上述两种X3检查补当前原件状态和分享范围。任何所需的权威失联、epoch不符或资源已撤权时,相关原文或获准片段、正式项目写入都拒绝,返回可读缺项,不回退旧缓存。
后台观察投递采用Backend持久outbox:用户消息的受信入账与消息提交同一存储事务(此时只有message/conversation,可后补run关联);助手最终来源与fenced run收口同一提交;检索/工具若存在仅瞬时输出,先持久最小受信引用/片段或明确`partial`,再允许依赖其作为可确认项目证据。Backend向RDM至少一次投递,RDM以同一键去重;RDM提交ACK后Backend才标已送达,崩溃重放不重复生成。**Backend接收ACK只是观察递送结果,不是RDM项目事实提交回执。** 两仓没有分布式原子事务,界面必须明确`观察待送达/待分析/已形成候选/已发布/失败`。`Message`删除、资源撤权、知识版本变化与run恢复会投递失效/重评,而不会改写旧审计事实。现有历史消息只在可证实原项目、来源及当前授权时安全重评;无可靠绑定不补造项目知识。
覆盖点是四种实际运行器的**最终结果进入下一次模型请求之前**,不是SSE摘要:direct、SubLLM、Squad和CompiledWorkflow分别在授权检索返回、工具真实结果/工件引用和模型输入组装处适配X3,并用X1实际输入manifest核对实际纳入的来源。当前`runCtx.Retrieve`不发逐命中事件,`PartToolResult`只含摘要;仅接它们无法宣称四路已覆盖。一个运行器若无法提供受信的逐项来源/权限/版本,RDM项目所需的观察状态为`partial/unsupported`,相关项目事实生成或写入停在`pending`;未装配RDM的非项目任务继续既有行为。阶段5逐运行器列出入口与重放用例,不能只测direct就宣称完成。
## 3. RDM候选、风险与有效事实
RDM用**同一项目事务库**内的私域候选层记录`sourceRef → 分段/声明 → 标签/相关节点/初步来源边`。每个分段保存原文可回指区间、陈述类型(目标/约束/事实/推断/问题/风险等)、有效/待核实/被取代/忽略及原因,和当前项目分类/字典revision。语义相同的多个发言/助手复述可归并为一个候选陈述,但各自有单独来源边与人物,模型重复不增加证据独立性。原文和候选按owner及资源当前权限读取;搜索命中与助手分析一律先按**未核实候选**处理。未发布的私人原话、低可信搜索、个人草稿与处理中片段不能成为其他成员默认上下文或已批准文档事实。
候选可以在笔记树的“待核实”视图中定位,并在追溯网形成**候选**来源边;这不等于向现有有效`NoteTree`和正式受控网追加已生效事实。**能读一条私人发言与能向整个项目发布是两种权限。**私人消息/工件的来源拥有者须以实际身份和真人卡向Backend签发上述`SourceExcerptGrant`;RDM记录已验证grantID、sourceID/版本/hash、允许披露的原片段hash/范围、**真人看到并批准的最终公开payload hash**、目标项目与授权epoch,再独立核对项目分享职责。项目自有资源则按其发布职责和资源级权限验证。模型不能代授或靠“在项目会话里”取得分享权。公开项目事实可以是经同意的最小摘要;成员B读该派生摘要只需**Backend原片段grant + RDM项目发布许可**均有效、B具项目权限、实际文本hash等于两侧grant及原来源仍有效,**不需要也不取得A原会话的raw-read权**;私人原文/未获准片段与来源边仍按各自权限隐藏。
分享授权和必要的人审齐备后,RDM在**同一RDM项目事务**内校验当前sourceHash/分享epoch与资源权限、候选/风险/提案revision及项目CAS,消费一次性真人凭据,把候选转为`published`且相应风险/提案标为已消耗,并写入唯一有效`NoteTree`切片/一般来源边/适用Doc修订、项目revision、幂等回执和项目审计outbox,再提交并发布只读代;失败全部回滚。候选与风险状态必须在同一RDM事务库,不能外置后靠异步补状态。Backend观察ACK不得替代该提交回执,业务提交结果未知先查RDM幂等回执。受控文档还走三权与变更/重审,结构修改复用已批准W4b提案;所有现有正式要求/结构/发布写入口(含`rdm.reqs.add`等)经同一当前风险/来源/权限/版本事务门禁,不能靠宿主早先的`proceed`永久放行。拒绝/忽略保留审计依据,绝不在进度分母中当已完成要求。
来源撤销、项目分享权收回或对象权限变化后,RDM将对应当前候选及已发布切片标失效/待复核,受影响的需求/文档/网边列出直接与间接待复核范围。**失效outbox只是清缓存/留下审计,不是即时权限门禁**:W7/X1每次新模型输入、当前详情/审计字段披露、候选发布与正式提交、真人答复消费时,对**原始正文**执行Backend当前raw-read ACL;对**已批准派生片段**执行Backend原来源有效状态/撤权epoch及`SourceExcerptGrant`片段范围,并在RDM核对自身项目发布许可、成员/职责revision。B可读被授权摘要但不能读A原会话;任何适用的权威失联或epoch不符即拒绝相关文本/动作。这样Backend撤权已提交但RDM还没收到异步失效事件时,已批准片段也不会继续进入新模型输入。Backend原grant与RDM项目许可均可撤销;RDM项目许可的撤销与项目写事务按同一项目revision串行,跨Backend源撤销与RDM事务无法伪装成单库原子操作,提交点取得的来源epoch须入回执,后续读面仍按当前源权威实时拒绝。**历史批准Word及审计原字节保留**;当前请求若已失去正文或分享授权,服务端不把含受限正文的旧Word完整字节交给该主体,只给受限状态与有权元数据,待有职责的人重新裁定。已发布摘要是否可继续共享由其独立分享授权和当前来源政策决定,不能因曾经可读而默认永久有效。
风险判断顺序为本片段自检(量纲、比较方向、否定词、条件/主体)、同主题当前可读候选、项目已确认要求与受控基线,再分析对正在做的动作的影响。类型化`RiskFinding`至少有riskID、触发sourceID/版本/片段、相关对象精确版本、规则/模型判断来源、原因、严重度、影响动作、最小披露的选项及状态。规则和模型只提出**风险候选**,不得自签人类确认;不确定即标待分析。判断只能使用当前actor可读的比较对象,不能通过卡片存在、数量或措辞泄露无权私域来源。
对“要求效率和成本都低于人工”,先提出两个可解释的意思(效率更高且成本更低;完成时间与成本更低)并允许用户明确“效率确实更低”。原句、解释、真实actor/时间/版本与其后正式采纳动作各自留痕。澄清回复消除歧义,不自动通过受控要求或结构变更;正式采纳仍消费绑定项目/提案修订/hash的一次性真人凭据。已按同版本回答的问题不反复打断,来源或相关基线变更后重新判定。
## 4. 时机、HITL与工作卡
普通项目用户消息在Backend持久化后、相关run或聊天命令分发前,以**消息ID/会话ID、RunID可空**建立观察回执;同轮同步`Preflight`携带该持久消息快照或等待已完成分析水位。Backend从持久conversation重取项目,不能依赖当前chat命令尚未设置的`HostProjectID`。风险未完成或`partial`时,相关命令不进入`Bus.Dispatch`,相关模型任务不消费该要求为已确认依据;RDM内真正写入时再作事务复验。
为使“回复前发现风险”与现有运行时吻合,RDM项目工作中的**正文增量先由Backend在受信运行内有界缓冲**,先给用户进度/等待状态;当助手拟答复及其实际来源清单完整,完成风险检查、决定可呈现文本,并通过fenced收口保存最终消息后,才发送第一个该答复的可见正文。Backend为已提交消息生成带MessageID/seq的权威正文事件,**先于`run.completed`的流序号**发送;若提交后事件发送中断,重连按消息ID从存储取回并去重,不能把只有终态事件的run当作正文已送达。发生澄清时,显示提问/卡而不把未核实草稿先流出。旧实现的`message.delta`在`finishRun`之前已可见,故单做收口检查不满足此合同;正常非项目聊天继续现有流式体验。缓冲上限、长回复/客户端重连和首个可见文本等待成本列入阶段5测试,超预算时提示待处理并保留任务进度,不能绕过检查先显示未经确认结论。已流出的旧历史回复不能追溯抹去,只能在后来发现风险时给出可读纠正并阻断**后续受影响动作**。
检索/工具结果在当次run继续依赖前处理可见引用;direct、SubLLM、Squad、CompiledWorkflow各自有实际结果/模型输入边界,必须经过§2的适配或在项目必需模式下返回`partial/unsupported`。后台细分随后发现较轻风险时创建持久待办卡;新风险水位会使先前`proceed`失效,后续RDM正式写事务不得用旧决定。
高影响或当前动作必需的歧义:Backend在有run的路径复用`AskHITL`及现有同卡内联/右栏投影,等待时释放执行许可;无run的RDM命令通过同一风险ID生成待澄清卡及受控回执,不执行目标命令。**RDM风险账本是风险决定的唯一持久owner**;Backend ActivityCard只是由`riskID + riskRevision`生成的投影和答复通道,中栏与右栏消费同一个状态。用户点击后,Backend先让RDM在其事务中核对当前sourceHash、目标/风险版本、actor、项目权限与答复幂等键;只在取得RDM已提交决定回执后,才更新卡状态/恢复等待中的run。网络结果未知先查询同回执,不把前端点击本身记为“已确认”;RDM CAS冲突、卡被拒绝/取消/超时、项目切换或权限变化时保持相关动作待处理并显示原因。RDM澄清答复与真正结构/文档批准仍是两次有区别的操作。较轻且不阻碍当前动作的发现可进入右栏待处理卡并在当前对话摘要提示。前端单一异步状态owner按事件seq丢迟到响应;右栏收起时中栏仍可回答。UI沿[DESIGN.md](/home/weichen/projects/Agent-System-Dev-wt-feature-rdm-two-trees-latest-templates/DESIGN.md)三栏与令牌、现有卡及Collapsible原语,不增审批后台。
提供方超时/崩溃:Backend保留已提交用户消息和投递状态;项目会话的风险判断未知时,相关run/命令保持`pending`,只显示进度和“项目内容待检查”,不输出项目依据、正文或推进项目事实。只有Backend能**确定性识别为非项目、不会读取项目资源也不会写项目状态**的白名单动作(如平台帮助)可独立继续;不能凭模型对“这只是一般咨询”的猜测放行项目会话。重启后根据outbox、来源hash和持久风险状态继续,不能让一次模型在无结论时自行继续旧写操作。捕获/细分有界,超长工具内容只保存来源引用和实际有权限的片段;超过预算列出裁剪原因,不伪造“已分析全部”。旧X1有效上下文只取已确认或当前授权的依据,未决风险可按字段政策显示状态给本人;不得把候选自动放进同项目其他成员的模型输入。
## 5. 审计、兼容与验证
RDM保存来源接收、提取候选、风险创建/变更、澄清回复、发布/拒绝/撤销与实际业务效果的操作ID、可信人物与各自时间、原/新状态、依据ref/hash、受影响对象及当前披露。Backend X2只对**已提交的项目业务事实**建立可信宿主审计链接;私人观察、原会话和未发布候选不因有项目ID成为跨成员项目审计。W8服务端输出类型化可读摘要和字段差异,W10以中文业务语言呈现风险/答复/影响,内部观察信封和原始payload不直接下发页面。缺失的旧来源、仅有摘要或不知道是否已呈现的内容明确标“当时未记录/仅有摘要/交付状态未知”。时间字段沿已批准schema2时间来源合同;日志seq与项目revision仍是因果/分页水位,不从墙钟构造全局顺序。
兼容:X3为可选注册面,未安装RDM的普通非项目流程不变;旧二进制/旧surface不能在RDM声明必须X3时默默退化。候选与风险表采用版本化迁移,先在隔离SQLite/PG副本测v1旧项目/旧消息无绑定、崩溃与重试,真实运行库不执行迁移。可回退旧版本不得解释新候选为正式事实;含新事件的降级按现有schema fencing拒写并保存全部原记录。资源权限和来源撤销须在读/模型输入/真人回答时重验,客户端projectId不构成授权。
验证应覆盖正常四路每种两项目两成员、一个发言拆多候选、助手复述去重、三个搜索命中逐项处理、工具仅摘要、可见分析产物、项目切换/私域/撤权/删除/恢复、相互矛盾的当前可读片段、先前批准要求与新发言冲突、用户给出的效率例句及三种澄清、误报、伪造确认、无权card、超时、崩溃/重试、旧消息不补造。正反例须额外固定:用户消息已落库但run尚未生成、聊天命令没有`HostProjectID`、outbox未ACK而命令立即分发、`Observe accepted`但风险未分析、某一来源`partial`或offset缺口、同键异hash/两处part、撤权墓碑后旧投递迟到、用户点卡但RDM风险CAS失败、RDM已提交答复而Backend回执丢失、模型正文delta早于最终审查、四运行器各自检索与工具原始结果无法取全。私人发言的读权与分享权交叉测试:A批准发布摘要X后项目编辑改成摘要Y或夹入另一私人来源,未重新向各来源主人展示最终文本/取得同hash授权则发布拒绝;B获准看X仍不能打开A原会话。**Backend来源撤权已提交但RDM失效outbox故意延迟**时,新W7模型输入、当前详情/审计字段、正式发布/写入/HITL答复与旧批准Word的当前披露都须按来源权威实时拒绝,历史字节/事实保留。`rdm.reqs.add`等既有正式写入口也要证明风险提交前复验,不能只测W4b新入口。
前置风险须以**相关业务事务未提交**和人类回复后恰好一次实际效果证明;带缺口的观察不能给`proceed`,Backend观察ACK不能替代RDM提交回执。中栏的首个可见正文应属于经风险决定、fenced提交的最终消息;浏览器是否实际呈现需客户端可核ACK,不能凭SSE发送推断。不能用“模型说已提醒”判PASS。真实模型前后对照在原48次/300,000tokens/人民币150元总上限内替换任务样本,不另购额度;原44模板、旧事件/审签与已经批准的W0–W4等目标继续各自验证。
## 6. 受影响分工与下一阶段
本设计需要新X3 Backend公开观察/前置决定口及受信投递;RDM接四类来源候选和风险账本,沿W4b/HITL确认进入有效两树一网;W7只读已授权有效来源;W8/W9链路只审计已提交事实;W10沿现有卡与审计工作台显示;W12做模型/浏览器真链。W2/W4a与时间修复继续解决事务及重放基础,W3递归文档实例继续使用已合入DHF唯一内容块合同,不因X3设计待评而停工。下一阶段5须确定唯一代码owner、基座组件与RDM的先后、X1/X2/X3同一最终公开surface和tag消费条件、最小回放/成本上限及TT-N03/R01完整证据映射。公开tag发布、真实库迁移、服务部署仍受原边界。
请评审“Backend受信X3观察和动作前决定、RDM私域候选/项目风险与现有HITL卡、确认后才入有效两树一网”的受影响方案。批准仅进入阶段5增补实施与测试计划,不放行新增公开接口或产品代码。