更正: 脚本注释里那条 别补 user/message 也是假象 —— 迁移器本来就会给它合成 id
与 §17 同源:后半句依据的是 校验污染入参后再校验 的假象。 深拷贝重测 40/40:补与不补都 strict-ok。
This commit is contained in:
@ -15,9 +15,12 @@
|
||||
* 本脚本做的事(**只改一处**):
|
||||
* 给 `agent/inbox/spliced` 事件里缺 `id`/`role` 的 `inserted[]` 消息补上
|
||||
* `id`(确定性、可复现)与 `role: "user"`,其余字节原样保留。
|
||||
*
|
||||
* 明确**不要**顺手给 `user/message` 也补 id(很多会话里它同样缺 id):
|
||||
* 实测那样做会把本来能读的会话变成 `seq gap` 而读不了。
|
||||
* 本脚本只补 `agent/inbox/spliced` 的 `inserted[]`。
|
||||
* 关于 `user/message`(很多会话里它同样缺 id):
|
||||
* 迁移器**本来就会**给它合成 id(对原始 v0 实测:迁出 386 条带 id / 0 条缺 id),
|
||||
* 所以这里**不需要**补。早先注释说"补了会把能读的会话变成 seq gap"——
|
||||
* **那是错的**(2026-09-19 更正):那是「校验器原地改写入参、又被拿去再校验」造成的假象;
|
||||
* 深拷贝重测后补与不补都 strict-ok(40/40)。详见 docs §17。
|
||||
*
|
||||
* 用法:
|
||||
* node scripts/repair-legacy-spliced-ids.mjs # 预演(默认,不写盘)
|
||||
|
||||
Reference in New Issue
Block a user