From 953863af8e7b2c8898e0dc9776fe156ddadf01dc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=BB=9D=E5=B0=98?= <237809796@qq.com> Date: Wed, 24 Jun 2026 23:08:30 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=87=E6=A1=A3:=20CR-260622-01=E6=AE=8B?= =?UTF-8?q?=E7=95=99=E9=94=80=E8=B4=A6(P2-1=E4=BC=AA=E9=97=AE=E9=A2=98?= =?UTF-8?q?=E6=A0=B8=E9=AA=8C+979=20return=E8=BF=87=E6=97=A9+P2-2=E8=AF=84?= =?UTF-8?q?=E4=BC=B0=E9=99=8D=E7=BA=A7)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/todo.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/todo.md b/docs/todo.md index 4146015..b1a86d8 100644 --- a/docs/todo.md +++ b/docs/todo.md @@ -976,8 +976,8 @@ > **剩余低优 [ ](非阻断)**: > - [x] ✅(2026-06-24·ebba973) BUG-260624-01 残留:① MessageList:503 scrollToFirstPending return 过早修复(遍历全实例调,各内部 querySelector 无 pending 则 no-op,治 pending 落后续实例滚不到)+ ② ToolCardList listener 加 props.toolCalls.some(pending) 过滤短路(降大列表 N 实例×M emit 的 DOM 查询)。**scrollToFirstPending 时间窗去抖评估后不做**:同 id 连发被上游守卫拦截(AiDirAuthRequired/AiApprovalRequired useAiEvents:359/472 some 去重 + AiToolCallStarted:427 findToolCall 守卫),不同 id 连发是多 pending 合理场景每次滚到首个合理,vue-tsc EXIT 0。 > - [ ] BUG-260624-02 残留:审批超时倒计时 UI(5min 无倒计时,ToolCard pending 态显 mm:ss 到期前 60s 变红)+ 核 detached 窗口 emit 作用域(分离窗口是否独立 startListener,否则 ai-pending-arrived 收不到) -> - [ ] MessageList:503 badge scrollToFirstPending return 过早(既有 bug,遍历实例应找含卡的那个,不首个 return) +> - [x] ✅(2026-06-24·ebba973) MessageList:503 scrollToFirstPending return 过早已修(遍历全实例调,各内部 querySelector 无 pending 则 no-op,治 pending 落后续实例滚不到) > - [ ] F-09 根因:streaming/currentText 全局单例改 per-conv(根治多会话串扰,见 docs/待决策.md) -> - [ ] CR-260622-01-P2-1 [P2低优·前端排序] — **ChatMessage.timestamp 打戳不可靠致时序错乱**。`provider.rs:44 ChatMessage::system()` 用插入时刻(now_millis_i64)打戳,压缩摘要/主题标记 system 消息(mod.rs:767/923/971 insert_at(0))timestamp=插入时刻晚于 user 消息创建时刻 → 前端按 timestamp 排序错乱。DB created_at 全消息统一 conv_created_at 不乱,乱的是 ChatMessage.timestamp 字段。修:前端消息列表排序弃 ChatMessage.timestamp 改 seq/created_at;或 insert_at 时 system 摘要 timestamp 显式置被压缩区间首条消息 timestamp。 -> - [ ] CR-260622-01-P2-2 [P2低优·非代码文件缓存] — **HTML/markdown/JSON 等非代码文件无 session 级缓存**。read_symbol(7c2e3b2/7f6aa1e)治 .rs/.ts/.vue 代码文件(降 24.4x),但非代码文件 grammar 不支持走 read_file 全文回灌,LLM patch 后重读确认模式无机制拦截(实测 mysql_guide.html read 4×)。修:工具侧加 session 级文件指纹缓存(path→hash+content,未变更返"缓存命中"提示);或 prompt 侧约束 patch 后不重读(归 B 路线)。 +> - [x] ✅(2026-06-24 核验伪问题销账) CR-260622-01-P2-1 — **ChatMessage.timestamp 打戳"致时序错乱"核验为伪**。grep 全 src `.sort(` 零消息按 timestamp 排序:ai.ts:188 会话列表 updated_at / ConversationSidebar pinned / TopBar weight / MessageList:231 mention span start。**消息渲染顺序由 renderItems(store.state.messages 数组顺序)= DB list_by_conversation ORDER BY seq,不依赖 ChatMessage.timestamp**。timestamp 仅 formatRelative 展示(system 摘要显示插入时刻=压缩时刻,语义合理)。agent A 假设"前端按 timestamp 排序"不成立,非真实缺陷。 +> - [ ] CR-260622-01-P2-2 [P2低优·评估降级] — **HTML/markdown/JSON 等非代码文件无 session 级缓存**。**2026-06-24 评估**:已有 `TOOL_RESULT_COMPRESS_ENABLED`(mod.rs:98/1029-1078 view-only 摘要,>2KB tool_result 压缩,LLM 视图摘要非全文回灌 prompt)部分缓解;read_symbol 治代码文件(主场景,降 24.4x)。非代码文件完整 session 缓存(path→hash+content+patch失效)设计复杂 + LLM patch 后重读确认行为不确定(缓存命中提示可能不够 LLM 仍重读),归 B 路线 prompt 策略(约束 patch 后不重读)更合适,工具侧完整缓存低优暂缓。