优化: 波2销账UX三件套+UX-04+CR-46登记+F-15需求细化

This commit is contained in:
2026-06-17 00:02:22 +08:00
parent 313459b8e4
commit afcdf5e17d
2 changed files with 25 additions and 7 deletions

View File

@@ -223,6 +223,16 @@
---
### CR-260616-46 波2 F-01阶段4路由器 + UX-05/06/07队列三件套 — 🟡 待审
- **范围**: 波2 workflow(w76d81dno,2 agent 并行不同域)。①**F-01 阶段4**(8dad15e):df-ai 新建 router.rs(329 行)+ lib.rs 注册 pub mod router。TaskRequirements 5 字段(modalities/needs_tool_use/min_intelligence/max_cost/estimated_context)+ ModelRouter 单元结构 + select 关联函数 `select<'a>(req,pool)->Option<&'a ModelConfig>` 7 步过滤链(enabled→模态全子集→needs_tool_use 含 ToolUse→intelligence>=min→max_cost<=→context_window>=→max_by_key (weight, Reverse(cost_tier)))。**设计偏离(已对齐任务规格)**:select 关联函数非 &self 方法(router.rs:9 注释注明);max_by_key 用 std::cmp::Reverse 取反(任务规格)非设计原文 -(as i32)。②**UX-05**(313459b):useAiSend.ts stopChat 删 state.queue=[](决策 a 逐条续发,后端 agentic.rs:190 AiCompleted 已保 drainQueue 续发)。③**UX-06**(313459b):editQueued(index,newText) 边界检查+trim+直接赋值 text(决策只编 text)+ AiChat.vue 队列项 inline input(editingQueueIdx/editingQueueText ref)+ 编辑/保存(@mousedown.prevent 防 blur)/取消按钮。④**UX-07**(313459b):sendQueuedNow(index) splice 先→stopChat→sendMessage 顺序关键(splice 前置避重复发,复用 UX-05 stop 链路)+ AiChat.vue 立即发按钮。⑤i18n 4 key(queueEdit/Save/Cancel/SendNow)。
- **维度**: ①select 7 步过滤链严格对齐设计 §6.1 L469-478 ②Reverse(cost_tier) 取反正确性(Free 胜 High,CostTier Ord Free<Low<Medium<High) ③max_by_key 元组排序(weight 优先,同 weight Reverse(cost) 次序) ④TaskRequirements 5 字段完备 ⑤13 单测覆盖(每步独立 + 组合 all_dimensions_match_picks_best 5 候选参差) ⑥UX-05 决策 a 落地(删 queue=[] 零改 drainQueue,后端就绪核验) ⑦UX-06 editQueued 边界(越界/空白 no-op)+ inline input 三路保存一致(回车/blur/@mousedown.prevent) ⑧UX-07 sendQueuedNow splice 前置顺序(避重复发)+ 决策 a 复用 stop 链路 ⑨i18n 转义(4 key 纯文本无 @/|/裸 {}) ⑩主代亲跑 cargo test df-ai router:: **13 passed** + vue-tsc exit 0。
- **commit**: 8dad15e(F-01 阶段4) + 313459b(UX 队列三件套)。
- **主代独立核查**: ✅ 全过(router.rs 329 行真实 + select 7 步 L55-63 严格对齐 §6.1 + Reverse(cost_tier) L62 + 关联函数 L54 + 13 单测 model()/req() 辅助 L71-95 / cargo test router:: **13 passed** 亲跑 EXIT 0 / useAiSend editQueued 边界+trim / sendQueuedNow splice→stop→send 顺序 / stopChat 删 queue=[] 决策 a / AiChat 队列 UI editingQueueIdx L1567 inline+4 按钮 L529-538+CSS L2977 / vue-tsc exit 0 亲跑 EXIT 0)。
- **审查 agent 待复审重点**: ①select 关联函数 vs &self 方法偏离是否需对齐设计文档(任务规格允许,router.rs:9 注明;阶段5 调用点用 ModelRouter::select(&req,&pool) 适配) ②Reverse(cost_tier) 与设计原文 -(as i32) 行为等价性(同 weight 选便宜,CostTier 4 值枚举 Reverse 安全) ③max_by_key 元组 (weight, Reverse(cost)) 同 weight 同 cost 时返回哪个(Rust max_by_key 返回最后最大,不影响路由正确性) ④UX-05 行为变更(打断不清队列)用户感知验证(后端 AiCompleted 就绪,前端实测 tauri dev:打断后队列续发) ⑤UX-07 sendQueuedNow 边界:stop_flag 复位速度,sendMessage 时后端仍 generating 走入队降级(可接受非阻塞) ⑥UX-06 inline input @mousedown.prevent 防 blur 三路保存路径覆盖(回车/blur/按钮) ⑦三件套共享 useAiSend/AiChat 队列域,无越界改后端 .rs。
---
## 已审归档
### CR-260616-34 batch58 F-260616-10 provider 默认值重启失效 bug — ⚠ 已审(PASS-WATCH)