feat(chat): chat_messages.turn_id 列 + DTO(写入接线留待下一步)
迁移 0018:ALTER TABLE chat_messages ADD COLUMN turn_id TEXT NOT NULL DEFAULT ''
(与 persona_id / client_msg_id / document 同族:不用 NULL,空串 = 不属于任何已知回合 ⇒ 旧行零迁移、键省略)。
存储层全链路带 turn_id(列清单唯一一份 ⇒ List/ListAfter/Recent/Search/FindByClientMsgID 自动同源);
新增 history/turn_id.go:ensureTurnIDColumn(既有库幂等前滚)+ SetMessagesTurnID
(第二段补写:单事务参数化、先到先得 WHERE turn_id = ''、幂等、未知 id 忽略)。
DTO:historyMessage.TurnID(json turnId,omitempty)⇒ REST 列表 / admin 渠道日志 / WS 握手回放 /
message_persisted / channel_persisted / message_edited 一次全覆盖。
写入面:persistUserMessages 读 ctx 回合标识;persistAssistantReply 增可选尾参(既有调用点零改动);
withTurnID / turnIDFrom / assignTurnID / turnIDOfLeg。
⚠️ 编排器把 turnId 交给落库的 4 处(新起一路 / 续跑路 / 被 steer 吃进 / 助手回复)尚未接线
(那些文件当时被另一路占用);当前生产行为 turn_id 仍为 ''。清单已在切片报告里精确到文件:行。
13 新用例 + 5 条变异(INSERT 不带列 / DTO 不回填 / 去掉 omitempty / 去掉先到先得 / 不回滚前滚)。
为守 session_persist.go ≤500 行,turnId 一节拆到新文件 session_turn_id.go。
This commit is contained in:
1 parent
354b08a45f
commit
d64b26d499
12 files changed
+950
-16
No files matched your search
@@ -0,0 +1,9 @@
|
||||
-- 0018_chat_message_turn_id down: 回滚回合标识列。
|
||||
--
|
||||
-- turn_id 只被 chat_messages 自己引用(无索引、无视图、无约束牵涉),因此直接删列
|
||||
-- 即可。回滚后的状态是「服务端不再记得哪条回复在答哪句提问」:客户端退回按顺序
|
||||
-- 渲染(本列引入之前的行为),行里的分组信息随列一起丢弃 —— 它只是**派生的展示
|
||||
-- 元数据**,真实回合身份仍由流帧(帧壳 turnId)携带,删列不会让任何在跑的回合
|
||||
-- 失去自己的身份。
|
||||
|
||||
ALTER TABLE chat_messages DROP COLUMN turn_id;
|
||||
Reference in new issue
Block a user