diff --git a/docs/conversation_load_unification_plan.md b/docs/conversation_load_unification_plan.md index b0d3cae0..fa211557 100644 --- a/docs/conversation_load_unification_plan.md +++ b/docs/conversation_load_unification_plan.md @@ -39,6 +39,8 @@ - 在 `existing_data = self.load_conversation(...)` 之后、覆写 `messages` 之前: - `new_len < old_len` 且 `not allow_shrink` → 打印 🚨 警告并 `return False`,不写盘。 - 合法缩减路径显式豁免:**检查点恢复**(`server/conversation.py` `_restore_checkpoint_to_conversation`)传 `allow_shrink=True`。 + +> ⚠️ **语义已演进(方向 C 后)**:缩减写回不再拒绝,而是按 `message_id` 合并矫正(见 §7);本小节描述为 A 落地时的历史设计,当前行为以代码为准。 - 已确认不需要豁免的路径:压缩(in-place 打 `deep_compacted` 标记,消息数不减)、设置保存(原样传递内存历史)、新建对话后同步模型(old_len=0)。 ### A2. `load_conversation_by_id` 同对话跳过切换前保存(`utils/context_manager/conversation_mixin.py`) @@ -56,7 +58,7 @@ ### B1. 后端聚合接口 `GET /api/conversations//bootstrap` -新蓝图 `server/conversation_bootstrap.py`(注册于 `app_legacy.py`,不动 `server/conversation.py` 现有路由)。**纯只读**:不调用 `terminal.load_conversation`,不切换任何 terminal 的当前上下文,天然规避 safe_nav 双轨问题。 +新蓝图 `server/conversation_bootstrap.py`(注册于 `app_legacy.py`,不动 `server/conversation.py` 现有路由)。**只读语义**:不写对话文件、不调用 `terminal.load_conversation`、不切换工作区级 terminal 当前上下文,天然规避 safe_nav 双轨问题;但为聚合后台运行态会按需获取/创建对话级 terminal(与既有 running-status 端点行为一致,属内存态操作)。 响应契约: