文档: 无人值守专项设计档+todo 销账(#10/#11/#12), Web 规范合规批(App/视图/组件样式)

This commit is contained in:
lxy
2026-10-06 12:13:39 +08:00
parent 04db8c0d3b
commit 0dfb50be9b
29 changed files with 419 additions and 84 deletions
+57 -5
View File
@@ -1,5 +1,8 @@
# DevFlow 工作看板
> ⚠️ **挂机必读(2026-10-06 10:50 仓库状态变更)**:今早 10:13 的三笔提交(cec4d11/84df9b5/622507c)已被外部退回(G2 🔴门禁/G3 描述不达标),当前 HEAD=03dc27b,全部改动在工作区未提交。11:23 汇报中「已提交」的说法与事实不符。**重做要求见文末退回段;每次汇报前先跑 `git log -1` 实测再报。**
> 来源:`docs/02-架构设计/滚动规范/功能决策记录-2026-06-14.md`「需求与待办」+ `PROGRESS.md` 各 Sprint 遗留,2026-06-14 汇总去重 + 代码核对修正。
> 互操作:执行走 mission-control,回写 mission_id;审查走 cr;发布走 publish-*。
> 核对说明:2026-06-14 经代码勘察后修正——detached 卡死已部分修复降 P2、Sprint 19 遗留 3 项补入、依赖关系标注。
@@ -16,9 +19,9 @@
> 背景:src 43 个 .vue 文件 UI 规范缺口全量合规走查(Vercel Web Interface Guidelines 适用子集)+ 审批/aichat/项目知识审计三域子代理分组审。质量中上无阻断,缺口集中 4 类系统性模式,其中 2 类可全局样式一刀切收敛。
> 详情:[05-代码审查/UX走查-Web规范合规-2026-10-05.md](./05-代码审查/UX走查-Web规范合规-2026-10-05.md)
- [ ] P2-1 全局两刀:`:focus-visible` 兜底 outline(outline:none 19 处/14 文件大半裸奔)+弹层 `overscroll-behavior:contain`(全仓 0 命中覆盖面最广,约 12+ 弹层)——2 条全局 CSS 收敛两类
- [x] P2-1 全局两刀 ✅(2026-10-06 本批:① global.css `:focus-visible` 兜底 outline 2px accent——全仓 outline:none 25 处散点不逐处改,键盘导航触发鼠标点击不显;② 弹层 `overscroll-behavior:contain` 滚动锁——实证类名清单 modal-overlay 10 处/TopBar 四面板 inline-list/ai-more-menu/confirm-box,选择器挂在 global.css 注释注明来源防漂移)
- [ ] P2-2 高频可点 div 键盘化:ToolCard:11 卡头/MessageList:1423 轨迹头/AuditLog:67,119 审计行(@click div 全仓 56 处,去 mask 合规项约 20 真缺口,高频改 button 其余 tabindex+keydown)
- [ ] P3-1 transition:all 33 处/22 文件→机械替换具体属性(color/background/border/transform,sed 级批量低风险)
- [x] P3-1 transition:all ✅(2026-10-06 本批:全仓 37 处/24 文件归零——逐处看 hover 态实动属性机械替换为 background/color/border-color/box-shadow/transform/opacity 具体属性清单,不禁用布局属性意外动画;vue-tsc EXIT 0)
- [ ] P3-2 icon-only 按钮缺 aria-label ~15 处(title 非等价读屏补偿;EnrichmentPanel 关闭钮/ProjectDetail:185,189 编辑删除钮等)+剩余 div 键盘化
- 拍板点:修复范围「存量 vs 仅本批」——transition:all/outline:none 大半为存量;本批新代码 a11y 意识已好(svg aria-hidden 批补/MessageList role=log+aria-live/hover-only focus-within 补偿),仅清本批则工作量降 60%+
@@ -1013,7 +1016,56 @@ graph TD
> 附:截图实证单会话 206 轮/1500 万 tokens——C 批次(上下文管理)紧迫性最强活证,随 C-r0 优先消化。
### 🔴 提交后跟进(2026-10-05 23:0x 走查发现,cb260ab 已入库但未修)
10. [ ] **loop_state 对新会话/编排会话静默失效(高)**:首次发送 conv 未落库 UPDATE 0 行,懒创建硬编码 loop_state: None(conversation.rs:534)——无人值守任务重启后无「可恢复」提示,断点续跑核心场景空转。修:首消息即落库 conv 或懒创建继承 loop_state;入口早退(key 失败/provider 超时)补清 running;list_parked 补消费方(侧栏「可恢复」入口)。验收:新会话发任务→重启→出现可恢复提示。
11. [ ] 【中】conversation_repo.rs:817 注释承诺防覆盖与实现矛盾(loop_state 已进 update_full SET 列)——lost-update 窗口,改回独立更新或注释改实话。
12. [ ] 【中】前端 i18n 双侧同缺 aiChat.reattachToMain 键(TopBar.vue:117 tooltip 裸键名)+ChatInput 围栏冲突/256KB UTF-16 口径——随批修。
10. [x] **loop_state 对新会话/编排会话静默失效(高)** ✅修复(2026-10-06,提交「修复: loop_state 懒创建继承与入口早退清理」):懒创建继承 running(conversation.rs)+入口早退清残留(agentic/mod.rs)+list_parked 消费方=TopBar「可恢复」分区(V49 读侧)。验收:cargo check EXIT 0+vue-tsc EXIT 0。
11. [x] 【中】conversation_repo.rs:817 注释矛盾 ✅修复(2026-10-06 同批):update_full 剥离 loop_state 列,封 lost-update 窗口,注释与实现一致。
12. [x] 【中】前端 i18n 双侧同缺 aiChat.reattachToMain 键 ✅修复(2026-10-06 同批):zh/en 补键。
> 以上为 72 文件走查结论(报告要点 23:0x 已交群),提交规范 18 笔全合规,质量项按本清单跟进。
## 流畅性根本解三件(2026-10-05 深夜用户立项:1+2+3,④双通道搁置)
13. [x] **①过程流式** ✅ 2026-10-06 实施:run_stream_refresher 消费面扩容(AiTextDelta + AiAgentRound + AiToolCallStarted/Completed 四事件,conv 路由过滤共用)——过程流不刷屏:卡片改「头部一行摘要 + 正文增量」结构,头行=轮次 + ⚙当前工具执行中/已完成 N 步(历史步骤折叠为计数,决策价值过滤);过程事件标脏强制重刷(纯工具轮无文本也有"活着"信号,治 206 轮长任务卡片静止猜卡死);签名去重防同 tick 事件风暴空刷;超限保尾截断口径不变。4 单测锁格式契约(首轮无头行/工具执行中/轮间空档/截断)。验收:cargo check EXIT 0 + feishu 7 passed。参照 u-claw 进度卡治理;桌面过程视图同步对齐见「桌面端能力同步清单」。
14. [ ] **②任务式委托**:重任务(agentic loop 任务)受理即回任务卡(「已受理·预计 N 分钟」),用户可离开;完成后卡片原地更新+结果在卡。底座已有(30min 超时任务后台不丢),重构 handle_message 等待形态为受理/完成两段式。验收:发「走查代码」3s 内收到受理卡,完成后卡片变结果,全程无需等待。
15. [ ] **③C 批次关联**:本组两件的提速收益依赖 C 批次(prompt 71K→按需)——C-m1/m2 优先级顺位提升(单轮推理是 80% 耗时大头,见流畅性分析 2026-10-05)。
16. [x] **纠偏注入通道**(用户 2026-10-05 深夜点名,飞书对话补充消息目前只能排队不能注入运行中任务)✅ 2026-10-06 实施:引擎层 `inject_runtime_message`(chat.rs,活跃守卫 conv_states.is_active → 短锁 push per_conv.messages → save_conversation 增量落库,loop 下轮 build_for_request 自然带上,u-claw 补拉同构);飞书侧 handle_message 白名单后加注入旁路(chat_map 命中且 conv 活跃 → 注入 + 卡片确认「下一轮生效」,非活跃 Err 落回常规 spawn 路径零行为变更)。不改锁语义/不打断 loop;桌面任务卡补充入口待 14 异步委托批配。验收:cargo check EXIT 0 + chat 17 passed + feishu 3 passed(含注入前缀格式契约单测)。
> **14 升级(用户拍板 2026-10-06 凌晨):桌面也要异步能力,不做双端分叉**——异步委托是引擎层能力,桌面与飞书都是它的前端视图。实现要点:①引擎层 spawn 即受理返回,完成走通知桥广播(oneshot 改事件+等待者订阅) ②桌面任务卡 UI:受理/进行中 N 轮/完成+系统通知,发消息后可切会话/最小化 ③飞书为同一语义投影(受理卡/完成原地更新) ④锁语义保守起步=单会话单在途+排队,多并发看用量再说 ⑤yml 开关灰度。依赖链:16 纠偏通道(受理后补充入口)→13 过程流式(进行中视图)→本项。验收:桌面发任务→切走→完成收系统通知;飞书同构;双端行为一致。
> **设计约束(用户拍板 2026-10-06 凌晨):任务会话高度复杂,代码设计一定要优雅**——①状态机显式化:受理/运行/暂停/完成/失败用枚举统一,禁散落 bool 拼凑 ②单一事实源:任务状态只在引擎层,桌面/飞书 UI 都是投影(订阅不轮询) ③事件驱动贯通:13/14/16 共用同一事件总线,不做渠道私有旁路 ④优雅优先于速度:宁可工期换结构,不做特判堆补丁(优雅架构铁律)。
> **桌面端能力同步清单**(与渠道对齐,2026-10-06):16 纠偏注入做在 AiSession 会话层桌面天然受益;13 过程流式桌面过程视图同步对齐;14 任务卡+系统通知已在升级注记;另两件桌面专属:①V49 可恢复入口——走查实锤 list_parked 读侧零消费,桌面侧栏补「可恢复」列表消费它(断点续跑闭环最后一块) ②缺陷9 会话标题泄漏桌面同症随批修。
17. [ ] **桌面会话内容同步飞书**(同会话,2026-10-06 凌晨拍板):绑定飞书 chat 的 conv(chat_map 映射既有,恢复机制在)——桌面端该 conv 的新消息(user/assistant)实时投影飞书卡片,用户离机后手机飞书可跟任务全程。实现:订阅 ai_event_bus 的 conv 内容事件→飞书投影,与 13 过程流式/14 任务卡共用单写卡者;按决策价值过滤防刷屏(完整历史在桌面,飞书给关键节点)。与 14 组合即完整闭环:桌面发任务→切走→手机看过程→收结果。验收:桌面 conv 发消息/收回复,绑定飞书 3s 内卡片更新关键节点。
18. [ ] **渠道错误话术吞因**(09:51 实证):spawn 被并发护栏拒绝时,飞书侧包装成「❌ 会话启动失败,请稍后重试」——真实原因「AI 正在生成中」被吞,用户误判 bot 坏了重试白撞。修:spawn Err 透传分类(生成中→「任务进行中,完成后自动处理」+受理排队选项;真失败→原因)。附带:探活告警口径 bug——任务在跑(inflight>0)却报「无在途会话」,inflight 计数未覆盖 spawn→回复窗口,修正计数点。验收:同场景复测,飞书提示真实状态。
> 附:09:48 桌面纠偏「不是 haogame 是 redtimer」被运行中 loop 下一轮直接接住——16 纠偏注入的桌面形态天然存在,飞书侧对齐即可。
## 工作流治理升级(2026-10-06 用户拍板:根本性增强,源自提交质量检查三不达标)
> 根因:任务传递靠软机制(看板摘要+群消息阅读),无结构化任务单与销账门禁——🔴被静默跳过/i18n 描述失实/描述与内容偏差,三层同源。
### 治理四条(对 devflow 工作流生效)
- [ ] **G1 结构化修复单**:走查/审查发现逐条独立成单,格式=`[编号] file:line + 复现/影响 + 验收命令`,🔴级不允许自由跳过(先销后立新)
- [ ] **G2 🔴门禁**:🔴级条目未清零前,新功能提交打回(cm 提交前置检查看板🔴余量)
- [ ] **G3 描述反向核对**:提交前 diff 关键词与描述机械比对,不符打回(cm 技能增强)
- [ ] **G4 销账带证据**:勾选 [x] 须附验收命令输出行,无证据视同未完成
### 桌面能力同步(随本批)
- [ ] G5 V49「可恢复」入口(桌面侧栏消费 list_parked,断点续跑闭环最后一块)
- [ ] G6 缺陷9 标题泄漏桌面同症随批修
### ⚠️ 退回重处理(2026-10-06 用户令,G2/G3 治理标准首次执行)
- 三笔提交(cec4d11 委托引擎/84df9b5 租约/622507c UI)已 reset --mixed 退回(内容全在工作区,零丢失,未推远端无需处理远端)
- **重做要求**:①先修 🔴10 loop_state 失效(G2 门禁:🔴不清零不得提交新功能)②描述按 G3 如实:实际干了 14+16+事件广播三件须逐件列全 ③i18n reattachToMain 键随批补上 ④修完按主题重新分组提交,销账 [x] 附验收输出(G4)
19. [ ] **飞书 outbound 统一出口**(11:23 实证):挂机模式进度汇总走独立发送路径,绕过 downgrade_md_tables/clip_for_card/卡片链——3 条回复带完整 md 表格未降级(踩回表格渲染不稳坑)。修:降级/裁剪/卡片链下沉为统一 outbound 出口函数,对话/挂机汇报/进度推送全部走它;验收:任意路径回复无 |---| 裸奔。
> 附:挂机汇报自报 🔴10 已修验证通过+43 文件产出——挂机模式推进有效,路径修复别误伤它。
## 无人值守可靠性专项(2026-10-06 swarm 立项,设计档:docs/02-架构设计/无人值守可靠性专项设计-20261006.md+temp/V49断点续跑设计-20261006.md)
- [ ] B1(S):H1 汇报 git 实测附录(chat.rs:919 单点)+ 探活告警口径修正
- [ ] B2(M):H2 token 三闸(抄 sub_agent round_budget_stop)+ H4 产出审计 subscriber
- [ ] B3(M):V49 防覆盖定稿+单测 + ai_list_recoverable IPC + 桌面「可恢复」入口
- [ ] B4(L):ai_recover_parked 重启恢复 + H3 外部干预感知(git HEAD 比对→Parked)
## UI/UX 体验设计实施项(2026-10-06 设计档:temp/异步任务会话UIUX设计-20261006.md,依赖 13/14/16/17 机制先行)
- [ ] U1 任务卡生命周期组件(双端):桌面 TaskCard 八态投影枚举(全部由既有事件派生,零引擎新状态)+飞书 header 状态色结构卡(JSON 元素级规格已给,动作 v1 走文本命令)
- [ ] U2 进度语义:三层模型(活性脉冲/位置计数/内容工具名)+防假进度五规则——核心"数字不动+脉冲停才算卡死",无分母禁画百分比
- [ ] U3 通知分级:必达(L0决策/L2完成)与静默累积(L3过程)分级表;飞书侧=哪些事件值得动占位卡,注入回执走 reply 不动占位卡
- [ ] U4 纠偏交互:桌面直发默认注入·下一轮生效(排队可切),回执+前缀逃生;飞书回复即注入保持
- [ ] U5 异常态话术公式:状态+真实原因+已保留什么+≥2条出路;禁自动判死静默任务(15min 重入退避是合法等待),给判断材料不替用户决策
- [ ] U6 跨端一致性:引擎唯一写者,双端不直同步,"实时"=秒级最终一致;断线恢复桌面走 DB 回放/飞书走 /status 回查