本次提交包含多项核心功能迭代与优化: 1. 新增KF客服会话类型,完善聊天类型枚举 2. 新增消息撤回操作类型与身份置信度排序方法 3. 新增控制面结果DTO与敏感字段注册表端口 4. 新增身份合并回滚、重试失败投递目标等业务能力 5. 优化Outbox投递逻辑与熔断器状态判断 6. 修复部分代码冗余与类型不匹配问题 7. 新增数据库索引并发创建与路由绑定清理逻辑 8. 优化会话关闭服务与插件重载并发控制
89 lines
2.9 KiB
Python
89 lines
2.9 KiB
Python
"""身份合并回滚 DTO(C-13)。
|
||
|
||
定义身份合并回滚用例的命令与结果值对象,供 ``IdentityMergeService`` 与
|
||
``identity/rollback-merge`` 控制面操作使用。所有 DTO 均为
|
||
``dataclass(frozen=True)``,仅依赖标准库,用于坏合并的回滚编排。
|
||
"""
|
||
|
||
from __future__ import annotations
|
||
|
||
from dataclasses import dataclass
|
||
|
||
|
||
@dataclass(frozen=True)
|
||
class MergeRollbackCmd:
|
||
"""合并回滚命令。
|
||
|
||
将已合并的 sibling 从 canonical 分离,恢复 sibling 独立身份。
|
||
操作不可逆(sibling 的 user_id 仅在 ``restore_user_id`` 非 None 时恢复),
|
||
调用方需确保 ``canonical_identity_id`` 与 ``merged_identity_id`` 确实
|
||
存在合并关系。
|
||
|
||
字段:
|
||
canonical_identity_id: 规范身份 ID(合并目标)。
|
||
merged_identity_id: 被回滚的 sibling identity_id(合并来源)。
|
||
restore_user_id: 恢复 sibling 的 user_id,``None`` 时不恢复
|
||
(sibling 保持未绑定系统用户状态)。默认为 ``None``。
|
||
"""
|
||
|
||
canonical_identity_id: str
|
||
merged_identity_id: str
|
||
restore_user_id: str | None = None
|
||
|
||
|
||
@dataclass(frozen=True)
|
||
class MergeRecord:
|
||
"""合并回滚结果记录。
|
||
|
||
描述一次合并回滚操作的产出,供控制面 handler 序列化返回给调用方。
|
||
|
||
字段:
|
||
canonical_identity_id: 规范身份 ID。
|
||
merged_identity_id: 被回滚的 sibling identity_id。
|
||
removed_bindings: 从 canonical 移除的 bindings,结构为
|
||
``{channel_type: [peer_id, ...]}``(来自 sibling 的贡献)。
|
||
migrated_session_count: 迁移回 sibling 的会话数。
|
||
canonical_version: 回滚后 canonical 的内存版本号。
|
||
sibling_version: 回滚后 sibling 的内存版本号。
|
||
"""
|
||
|
||
canonical_identity_id: str
|
||
merged_identity_id: str
|
||
removed_bindings: dict[str, list[str]]
|
||
migrated_session_count: int
|
||
canonical_version: int
|
||
sibling_version: int
|
||
|
||
|
||
@dataclass(frozen=True)
|
||
class MergeApproveCmd:
|
||
"""合并审批放行命令(H-21)。
|
||
|
||
放行一个待审批的低置信度合并:将 ``pending_review`` 的 sibling 合并进
|
||
canonical,清除 ``pending_review`` 标志。
|
||
|
||
字段:
|
||
canonical_identity_id: 规范身份 ID(合并目标)。
|
||
merged_identity_id: 待审批的 sibling identity_id(合并来源)。
|
||
"""
|
||
|
||
canonical_identity_id: str
|
||
merged_identity_id: str
|
||
|
||
|
||
@dataclass(frozen=True)
|
||
class MergeApproveResult:
|
||
"""合并审批放行结果记录(H-21)。
|
||
|
||
字段:
|
||
canonical_identity_id: 规范身份 ID。
|
||
merged_identity_id: 被放行合并的 sibling identity_id。
|
||
canonical_version: 合并后 canonical 的内存版本号。
|
||
sibling_version: 清除 pending_review 后 sibling 的内存版本号。
|
||
"""
|
||
|
||
canonical_identity_id: str
|
||
merged_identity_id: str
|
||
canonical_version: int
|
||
sibling_version: int
|