主管四问引出的一组修复。
1) 归因失血(不报错的真 bug)
followup_plans.assignment_id 会被下一次分配覆盖 —— 一条单退回/到期回池后
被后面的批次挑走,旧批次就少一个人。批次跑得越久缩得越厉害。
实测 c02e1b80 分过 9 条,重分后 planned 显示 0。与 supersededAt 那坑同构。
⇒ plan_event_logs 加 assignment_id(不建明细表:账本本来就是明细,
缺的只是"属于哪一批"这个维度;该表自己写着"要按它筛就该立柱")。
四个写入点全覆盖;claim 刻意不写(自认领捞的是池子,plan 上那个 id 是陈迹)。
⇒ planned/agents/released/expired 走账本,inHand/done 走当前状态。
⇒ 补 progress.reassigned 让穷尽性重新成立(不补则主管一对数就少人)。
⇒ 老批次回落到 followup_plans 现算;到期数无源可落,只能给 0。
2) 到期终于能统计
到期事件一直在账本里(auto_release + assignment_expired),但任何接口都没报,
全被 backToPool 一桶吞掉。而到期与退回主管的下一步动作相反:
退回多=分配策略不对,到期多=派多了/时效太紧。现在分开报,note 也分开说。
3) overdue 加 snoozed 守卫
回收器刻意跳过"约了下次回访"的单,于是它们永远超期;而 progress 已把它算作
suppressed(已处理)。不加守卫,同一条单「已处理」和「超期」同时成立 ——
主管看到「薛玫 超期 3」以为她压单,实际她打了电话约好了下次。
4) 批次人话名 label(服务端唯一生成)
「8/3 23:35 · 牙周治疗 · 窗口内 · 9 人 · 2 位客服」。没有列表页时这是主管
指认一批的唯一抓手。做这个才发现 temperature 一直没进 criteria 快照 ——
它参与圈人却没随确认单下发,导致批次说不清"当时按哪个温度圈的"。已补。
顺带修一个潜伏编译错误:assignmentExpiresAt 加进 FollowupPlanSchema 时漏了
serializePlan(19bd658f)。当时没报错是因为 packages/types/dist 是旧的。
实测(真库):新批次 9 人 → 撤销 → 同一批人重分 → 旧批次 planned 仍是 9
(旧实现下是 0)、五桶+重分 0+0+0+9=9;退回 1 条、到期 2 条(等回收器真扫)
分别落账,详情读出「客服主动退回 1 条、到期没人动 2 条」。
1005 tests,两个 tsc + next build 干净。
| Name |
Last commit
|
Last update |
|---|---|---|
| .claude | Loading commit data... | |
| .design-sync | Loading commit data... | |
| apps | Loading commit data... | |
| clickhouse/config.d | Loading commit data... | |
| deploy | Loading commit data... | |
| docs | Loading commit data... | |
| packages | Loading commit data... | |
| scripts | Loading commit data... | |
| .gitignore | Loading commit data... | |
| .gitlab-ci.yml | Loading commit data... | |
| .npmrc | Loading commit data... | |
| .prettierrc | Loading commit data... | |
| README.md | Loading commit data... | |
| docker-compose.expose.yml | Loading commit data... | |
| docker-compose.managed.yml | Loading commit data... | |
| docker-compose.prod.yml | Loading commit data... | |
| docker-compose.yml | Loading commit data... | |
| eslint.config.mjs | Loading commit data... | |
| liu.cjs | Loading commit data... | |
| package.json | Loading commit data... | |
| pnpm-lock.yaml | Loading commit data... | |
| pnpm-workspace.yaml | Loading commit data... | |
| tsconfig.base.json | Loading commit data... | |
| turbo.json | Loading commit data... |