chore: establish YCode replication baseline and TODO

This commit is contained in:
xiaohan.yuan committed 2026-10-17 02:43:49 +08:00
commit 6dc59f89ba
1118 files changed
+196002

No files matched your search

+16
View File
@@ -0,0 +1,16 @@
# 编辑消息与重新生成
2026-10-10:编辑并重发改为当前对话内重新生成,不创建新的 Ygent 对话。
- 保留 sessionId、项目归属和实际工作目录。编辑位置之前的消息不变;编辑消息及后续可见时间线由新回合替换。编辑提示说明替换范围。
- OMP 先通过真实消息 entryId 回退内核历史,再原子更新当前对话的消息及内核文件指针。内核内部可能产生新的会话文件,该文件继续绑定原 Ygent 对话,不出现在侧栏作为新对话。映射/回退失败保留原时间线和编辑草稿。
- 直连模式从回退后的消息重新组装请求;两种模式都不能把已经替换的消息或回复送给模型。
- 替换前的消息与旧内核文件指针存入本机 `session_edits` 修订记录,当前未提供修订切换 UI。编辑不会撤销此前 Shell、文件、网络等已经产生的实际操作。
- 删除被替换回合的待整理任务,清空过期上下文占用快照。消息 ID 使用持久高水位,避免删除后重复分配导致来源证据/工具事件串到新消息。失去有效证据的自动记忆沿用现有检索过滤规则。
- 前端准备编辑期间禁止并发发送;等待取消屏障和消息写入结束。成功回退后清除本会话的终态回合缓存,再读取真实记录,避免旧回复在重载时复活。
- 如果回退成功而新的发送未被接受,输入草稿保留,继续在原对话发送即可;旧时间线保存在本地修订记录。
- 只有“分支到新聊天”入口才创建新的 Ygent 对话,继续沿用独立的分支逻辑。
验证:构建通过,Rust 83 项通过、1 项官方网络测试跳过;`npm run check:chat` 回归通过。
真实桌面 SOP:使用 `docs/ygent-debug.md` 的隔离数据库启动方式,数据中设置 `activity_test_mode=native-isolated`,运行 `node scripts/chat-edit-native-check.mjs 9336`。该脚本通过实际编辑按钮/输入框/发送按钮发起操作,使用真实 OMP 和直连、受控本机 SSE 上游,校验上游历史已回退、会话数不增加、前缀消息 ID 不变、标题/cwd 不变、重载无旧回复,以及显式分支仍创建新对话。不得对用户日常数据库运行该测试。