文档: CR-260622-01残留销账(P2-1伪问题核验+979 return过早+P2-2评估降级)

This commit is contained in:
2026-06-24 23:08:30 +08:00
parent 7d2998e04e
commit 953863af8e

View File

@@ -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 后不重读)更合适,工具侧完整缓存低优暂缓