Files
DevFlow/temp/中断根治-进度.md
T
lxy 36bc485112 优化: 界面交互完善与设置体验
- 审批卡尊重滚动意图,等长切换回底,排队超时按钮修活
- 带图编辑提示不静默丢,删除目标回写,切换文案消歧
- 会话键盘可达+搜索态重命名,筛选计数口径对齐
- 子任务提示正名,看板加载态
- 主题跟随系统,表单脏态拦截,密钥显隐留空提示
2026-10-03 16:27:48 +08:00

57 lines
4.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# aichat 中断根治 + 样式走查 进度
> 任务来源:飞书群派工「根治三类执行中断」+ 12 张截图样式走查
> 约束:改完打包换装(静默安装),**不提交攒批等通知**
## 三类中断根因与修复
| 中断 | 根因 | 修复 | 状态 |
|------|------|------|------|
| ① 工具执行完后续回复中断 | 后端 loop 静默死亡(panic/conv删除等)无终止事件 → 心跳停 → 前端 90s 判死 → 用户点继续时后端已 Idle 双重死亡 | 前端探测式续跑:onStreamTimeout 先 ai_resume_interrupted 三分支探测(generating/resumed 静默重挂+自动续跑上限3次/finished 轻收敛) | ✅ 前后端已落盘并独立核查 |
| ② G2 重复调用误判 | 「写→grep验证」节奏下唯一率分支无写间隔豁免(与单点分支不对称);警示文案 pinned_goals 全列拼接 | helpers.rs 唯一率有效唯一数算法(夹写豁免);fetch_goal_summary 超3条截断 | ✅ 已落盘,11+1 测试过 |
| ③ 复制为图片失败 | html2canvas@1.4.1 不支持 color-mix()/oklch() | 换 html2canvas-pro ^2.5.0 + CSS.escape | ✅ 已落盘,vue-tsc 0 |
## 已完成
- [x] 前端 7 文件:useAiStream.ts(探测式续跑+per-conv看门狗)、api/ai.ts(resumeInterrupted)、i18n×2、package.json/lock、MessageList.vue(html2canvas-pro) — vue-tsc EXIT=0
- [x] Rust 代理①:chat.rs ai_resume_interrupted 三分支命令 + lib.rs 注册 + helpers.rs 唯一率写间隔豁免+4测试 — cargo check/test 独立核验过
- [x] 主代理微调:mod.rs fetch_goal_summary 目标>3条截断;i18n×2 加 streamAutoResuming;useAiStream.ts 首次自动续跑补提示气泡(防无反馈期误点继续)
- [x] 12 张截图全部读取分析(shot-10/11/12 压缩后重读完成)
- [x] 走查代理:agent loop 静默死亡分支全量走查报告已交付
## 走查报告修复分流
本批修(rust-audit-fix 代理进行中):
- P1-2 per_conv permit 入口 30s 超时(治 UI 永远转圈)
- P0-1 审批执行窗口补心跳(execute_with_heartbeat 复用或内联心跳)
- P2-1 AiMaxRoundsReached 幽灵事件修正(补发事件或删死 case,代理核查后择一)
登记待办(高风险/需设计,进 docs/todo.md):
- P0-2 run_agentic_loop 包 catch_unwind(panic 静默死亡根治,核心 loop 需谨慎)
- P1-1 conv 删除类静默退出族 6 处补终态事件
- P2-2 审批超时惰性收敛改主动任务
- 前端 AiMaxRoundsReached 死 case(随 P2-1 决策)
## 样式问题清单(12 张截图)
| 图 | 页面 | 问题 |
|----|------|------|
| shot-1 | 灵感页 | 无异常 |
| shot-2 | 知识库待处理 | 「拒绝」按钮右缘疑似裁切 |
| shot-3 | 任务队列 | 列表条目重复渲染(同任务名两条)+「全选」复选框右缘裁切 |
| shot-4 | 对话侧栏 | 标题=消息原文截断充当(大量「新对话」重名) — 观察项 |
| shot-5 | 审批历史 | 「决策者」列竖排逐字换行;「参数摘要」贴右缘截断 |
| shot-6/7 | AI 对话 | 中断 UI 实证(G2 警示 5 目标全列) — 已由源头截断修复 |
| shot-8 | 设置-安全 | 「信任所有目录」描述与开关重叠 |
| shot-9/10/11 | 设置-高级 | 「应用数据目录」标签与路径重叠;「文件上传服务端点」标签竖排逐字换行(窄列病根) |
| shot-12 | AI 面板 | G2 警示三条堆叠实证 — 已由 G2 豁免修复 |
样式修复决策:**本批不修**(用户指令聚焦中断根治,样式属新一批工作),清单待用户定夺后派工。
## 待办
- [x] 收 rust-audit-fix 代理结果并独立核查 — 三项全过:P1-2 permit 30s 超时(范式对齐 provider 先例)/P0-1 审批窗口 execute_with_heartbeat 复用(ai_approve+ai_authorize_dir,附带 run_command 流式+超时分档改善)/P2-1 删前端死 case+修后端注释(git show 365af55 证实补发案会重引卡死 bug)
- [x] 统一门禁:cargo check 0 error(1 既有 warning) + cargo test 620 过 + vue-tsc EXIT=0
- [x] 打包换装 — 本侧 bmsu6xr9e 实际完成(exit 0,产物 02:04:14,含全部功能改动与注释修正;并行会话 devflow-b9 停机重启后曾误判其死亡并接手,已 SendMessage 告知事实与其收口) → 杀进程 → /S 静默安装 EXIT=0 → 启动验证进程稳定
- [x] 飞书回报 — 本侧统一回报(见下)