浅念
58d274096d
fix(management): first_reply_fact 同毫秒并列主键冲突+定序抖动——reply_msg_id 进 PK/按(ts,msg_id)排序
评审修正(代码质量评审 Critical#1 + Important#2/#3):
- reply_msg_id 进复合 PK(模型+migration b7c8d9e0f1a2 原地改,本地
down/up 重建,表空未部署):同毫秒 F,T,F,T 交换的两个样本
(thread_end_ts, reply_ts) 完全并列不再撞主键(原会中断整个
recompute_all 事务);兼作下钻证据定位回复消息。
- load_conversation 增查 msg_id 并按 (ts, msg_id) 排序,
compute_conversation 协议改 3 元组——SQL 等键顺序未定义,原实现
同毫秒 [F,T] 归属随查询抖动(0/1 answered 摇摆)。
- recompute_pairs 每 500 会话显式 flush+进度日志(内存上界对齐
summary.recompute_all 惯例,不再依赖隐式 autoflush)。
- 测试:旧 9 个更新协议;新增同毫秒 F,T,F,T 回归/并列确定性/
空会话幂等清空,fr_sum 总量断言并入双串测试;
test_management_models 构造补新主键列。
Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-09-09 13:18:08 +08:00
..
2026-08-10 18:12:28 +08:00
2026-08-01 11:04:44 +08:00
2026-09-09 12:04:54 +08:00
2026-09-07 14:41:08 +08:00
2026-09-04 19:22:22 +08:00
2026-09-04 15:04:33 +08:00
2026-09-07 14:41:08 +08:00
2026-08-01 14:30:28 +08:00
2026-08-20 11:08:13 +08:00
2026-08-15 14:18:42 +08:00
2026-09-08 17:17:06 +08:00
2026-09-08 16:14:44 +08:00
2026-08-25 20:55:18 +08:00
2026-09-03 15:03:20 +08:00
2026-08-12 10:37:13 +08:00
2026-09-07 16:59:04 +08:00
2026-08-25 16:22:44 +08:00
2026-08-25 15:44:54 +08:00
2026-08-21 15:08:26 +08:00
2026-09-09 11:44:58 +08:00
2026-08-05 10:12:49 +08:00
2026-08-07 18:37:26 +08:00
2026-08-25 16:36:07 +08:00
2026-09-03 16:37:36 +08:00
2026-08-01 16:15:40 +08:00
2026-08-12 11:41:30 +08:00
2026-09-03 18:11:26 +08:00
2026-08-12 10:41:46 +08:00
2026-08-01 11:04:44 +08:00
2026-08-21 15:08:26 +08:00
2026-09-09 13:18:08 +08:00
2026-09-04 16:40:01 +08:00
2026-09-09 13:18:08 +08:00
2026-08-01 14:13:50 +08:00
2026-08-13 14:02:42 +08:00
2026-08-25 13:44:54 +08:00
2026-08-01 11:55:50 +08:00
2026-08-07 09:57:34 +08:00
2026-08-01 15:48:03 +08:00
2026-08-07 16:30:29 +08:00
2026-09-08 17:17:06 +08:00
2026-09-04 21:02:41 +08:00
2026-09-03 17:52:09 +08:00
2026-08-01 11:31:28 +08:00
2026-08-01 15:59:25 +08:00
2026-08-01 13:46:23 +08:00
2026-08-20 09:09:32 +08:00
2026-08-25 14:07:39 +08:00
2026-08-25 15:17:21 +08:00
2026-08-18 09:15:04 +08:00
2026-08-10 18:12:28 +08:00
2026-08-20 10:54:09 +08:00
2026-08-07 09:49:31 +08:00
2026-08-01 17:11:17 +08:00
2026-08-05 18:44:04 +08:00
2026-08-25 14:32:12 +08:00
2026-08-01 14:03:47 +08:00
2026-08-01 13:37:42 +08:00
2026-08-01 13:54:16 +08:00
2026-08-07 09:49:31 +08:00
2026-08-01 15:48:03 +08:00
2026-08-01 17:53:26 +08:00
2026-08-11 16:04:03 +08:00
2026-08-01 15:48:03 +08:00
2026-09-04 23:27:41 +08:00
2026-08-01 12:16:02 +08:00
2026-09-07 14:13:09 +08:00
2026-09-07 14:13:09 +08:00
2026-08-07 16:51:10 +08:00
2026-08-05 12:11:29 +08:00
2026-09-04 21:14:52 +08:00
2026-08-01 14:23:45 +08:00
2026-08-12 10:41:46 +08:00
2026-08-01 16:52:48 +08:00