feat: 实现端停用与删除的消息作废与群主转让级联
This commit is contained in:
@@ -559,6 +559,29 @@
|
||||
- 备选方案:测试里注入在线连接表使默认不保留也走 pending(与「离线不保留」场景重复覆盖)。
|
||||
- 影响:仅测试期望;产品行为不变。
|
||||
|
||||
### I5 2026-09-30
|
||||
|
||||
1. **停用/删除级联在 identity 包内完成,admin 可选注入**
|
||||
- 原条款:DEVELOPMENT 7.6 / PRD F01;TASKS I5「提供给 A 线调用」。
|
||||
- 实际做法:`identity.App.Disable`/`Enable`/`Delete` 在一个写操作里完成启停、清令牌、作废消息/投递、发 `revoked`(可选 Downlink)、退群/转让群主/解散、清授权/回执/防重/发出记录。`admin.Deps.Identity` 非空时,`setEndpointEnabled`/`deleteEndpointBasic`(及 PATCH enabled)委托上述方法;为空时保留 A2 仅改库行为。未改 `cmd/nixmsg`、未改消息上行分发。
|
||||
- 原因:隔离要求不改接线;A 线已有路由,只接级联。
|
||||
- 备选方案:在 admin 内复制级联 SQL;或强制 Identity 必填。
|
||||
- 影响:生产须在挂载 admin 时注入 `identity.App`(及 KickEndpoint/ConnControl/Downlink),否则停用/删除仍无完整作废。
|
||||
|
||||
2. **消息级作废回执 state 用 `rejected`**
|
||||
- 原条款:DEVELOPMENT 6.4 消息级作废写 `endpoint_id` 空、`state=rejected`;I4 解散群对 scheduled 曾写 `completed`。
|
||||
- 实际做法:I5 对「发给停用/删除端的 scheduled 单聊」及删除时解散群的 scheduled,回执 `state=rejected`,原因分别为 `endpoint_*` / `group_dissolved`。
|
||||
- 原因:与 6.4 字面一致。
|
||||
- 备选方案:与 I4 一样写 `completed`。
|
||||
- 影响:后台/SDK 若按 state 过滤回执需同时认 rejected。
|
||||
|
||||
3. **删除时群主转让按 `joined_at` 最早,并列按编号**
|
||||
- 原条款:转给最早加入的其他成员。
|
||||
- 实际做法:`ORDER BY joined_at ASC, endpoint_id ASC LIMIT 1`。
|
||||
- 原因:同时加入时需稳定次序。
|
||||
- 备选方案:仅按 joined_at。
|
||||
- 影响:同毫秒加入时编号小者优先。
|
||||
|
||||
## 后台接口 A
|
||||
|
||||
### A1 2026-09-30
|
||||
|
||||
Reference in New Issue
Block a user