fix(#8064): 订正存量收敛已完成——从 7 条孤儿关系收敛到 10 行摘除+4 条释放+2 条保持 ACTIVE
AC-8 验收项:摘除成员 10 行(AUTO_OCCUPANCY_RELEASE),释放关系 4 条(AUTO_SINGLE_MEMBER),保持 ACTIVE 2 条(设计如此,各剩 2 个成员),收敛时刻 2026-09-21 22:27:47 UTC。本轮点名执行,名单外同类数据可能仍存在,前端展示逻辑需自行兜底。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
这个提交包含在:
@@ -127,7 +127,12 @@ if (!context.dualWrite()) {
|
||||
- **取消派单**对在途行的行为(仍落 `exception`、仍保留占用,#6152 定案不变)。
|
||||
- **整团解除**的审计原因(PR #8077 专门保证它不被夺走)。
|
||||
- 占用账本(`fleet_resource_occupancy_*`)的灰度形态——**仍维持 `LEGACY`,本次修复没有切换它**,这正是本次修复的设计目标:不靠切形态也能让收缩跑起来。
|
||||
- **存量数据**:⚠️ **未收敛**。工单 #8064 AC-5 的存量收敛尚未执行(成文时实测孤儿关系 **7** 条,判据为"有 alive 成员但该成员已不占用本资源的 ACTIVE 关系")。本次修复**只对修复上线之后发生的释放动作生效**,历史遗留的不一致关系仍需单独收敛,完成后本文件会追加说明。
|
||||
- **存量数据**:已通过 internal 端点执行收敛(2026-09-21 22:27:47 UTC,不是 SQL 直改)。结果:
|
||||
- 摘除成员 **10 行**:`left_at = 2026-09-21 22:27:47`、`leave_reason = AUTO_OCCUPANCY_RELEASE`
|
||||
- 整体释放关系 **4 条**:`status = RELEASED`、`release_reason = AUTO_SINGLE_MEMBER`、`released_at = 2026-09-21 22:27:47`
|
||||
- 摘除成员后仍保持 ACTIVE 的关系 **2 条**(**非残留**:它们各有 3 个成员,摘掉 1 个后剩 2 个,按收缩规则"剩余 < 2 时解除"不触发)
|
||||
|
||||
⚠️ 本轮收敛是**点名执行**(传入显式 ID 名单),不是全库扫。若名单外仍有同类历史数据,前端在界面上仍可能遇到"有成员、但该成员已不占用该资源"的关系——**展示逻辑该兜的还得兜**,别假设这类数据在库里已绝迹。
|
||||
|
||||
## 七、相关历史 PR
|
||||
|
||||
|
||||
在新工单中引用
屏蔽一个用户