zizi 0260bcd8e2 设计文档:SoT 同步与生成物重出
- 新版设计各域 SoT 按本轮实现同步:总体架构、模块设计、接口契约、数据模型、功能规格、文件设计与决策记录。
- 接口契约生成物重新导出(openapi 与前端客户端随契约一致)。
- 实现回顾与专项检查台账保留历史结论;本轮收尾发现另见 .agents.local 下的收尾报告与审查处置。
2026-09-18 01:15:18 +08:00

4.4 KiB
Raw Permalink Blame History

S01 正式变更

职责与对象

共同的审阅、并发、幂等和原子提交保护,不解释其他模块的任意字段值。

实例归属以总体架构为准;结构、状态和公开外壳分别引用数据模型与接口契约。

公开接口

用例 输入责任 输出与后果
open_review 候选与展示的具体版本 绑定差异和范围的审阅记录
prepare_change 类型化目标、批准身份和依赖 具名参与者组成的变更清单
commit_change 变更清单与命令身份 完整提交回执或整体回滚
read_receipt 作者、用途和命令身份 原请求的结果
读取回执于 同库同用途数据库工厂创建的受控连接、认证作者与命令ID 在调用方事务内只读真实回执;不创建连接、不提交或回滚、不产生新批准

所有接口在本模块的接口.py 暴露。输入输出类型由同一公开表面导出,外部不导入私有模型或 SQL。

内部职责

文件 职责
接口.py 正式变更公开用例和可导入合同
模型.py 正式变更稳定对象、外壳及内部状态
存储.py 正式变更所属记录的 SQL 与版本读写
作者审阅.py 审阅版本、差异哈希及批准范围
状态迁移.py 共用候选状态与合法迁移
幂等命令.py 同请求回执重放、异请求拒绝
版本检查.py 目标、候选和被审版本
依赖锁.py 来源、结构及当前有效指针的稳定锁序
提交事务.py 原子执行具名类型化参与者
修改影响.py 变更影响与复核任务登记

完整路径及运行模板见目标文件清单。逐文件意图、边界与目标见文件合同。

实现约束

  • 参与者由启动与业务接口登记,不接受来自模型或浏览器的回调代码。S01 不反向导入各业务模块或 S04,参与者通过共用合同执行所属模块的校验和写入。
  • 稳定锁序覆盖目标、结构、投影和来源当前有效指针;其他更新入口使用同一协议。
  • 审阅记录不等于批准;正式动作必须匹配被审版本和批准清单。
  • 事件、派生任务、回执与业务版本一起提交,连接失败后可重放同一结果。

当前共用入口对应 打开审阅、准备变更、提交变更、读取回执。准备变更在只读连接中返回参与者和影响,不能被当作批准或传回服务端直接执行。提交点重新读取业务快照,并由登记的依赖维护者按稳定顺序锁定当前指针;维护者必须保留行锁到同一事务结束。目标和候选缺少当前指针保护时拒绝提交。S04和各业务owner在后续消费包登记自己的维护者与具体请求类型,S01不据类型名拼SQL。

回执固定实际被审的目标、候选、结构、投影和来源依据,以及审阅ID、参与者结果与影响ID。候选检查由业务owner判断,拒绝或暂缓不要求检查通过;人工保存不产生候选采纳决定。影响记录表示待复核事项,具体章后任务仍由对应业务参与者与S02接通,不能据此宣称已执行派生任务。

协作与失败

由 B01/B02/B04/B05/B06/B07/S04 等内容维护者调用;数据库只提供共同事务上下文。

任何参与者、来源、结构、审阅或幂等验证失败整包回滚。

验收行为

  • 原子性。
  • 同键异请求。
  • 源变竞争。
  • 结构切换竞争。
  • 迟到批准。

验收入口和替换条件见迁移与验收;这些条目是目标行为,不是已通过测试的声明。

无变化保存

B01档案参与者在目标锁、作者及版本CAS、S04绑定和当前投影校验后比较规范值与有效绑定。完全相同返回did_change=false/no_change=true,保留独立命令回执及当前revision,不新增业务历史或profile_changed。不同命令同值可成功;旧revision仍拒绝;A→B→A保留真实历史。S01依据每个参与者结果过滤归属于该参与者的影响,不跳过其他参与者;回执汇总did_change与no_change。