- 审批卡尊重滚动意图,等长切换回底,排队超时按钮修活 - 带图编辑提示不静默丢,删除目标回写,切换文案消歧 - 会话键盘可达+搜索态重命名,筛选计数口径对齐 - 子任务提示正名,看板加载态 - 主题跟随系统,表单脏态拦截,密钥显隐留空提示
57 lines
4.2 KiB
Markdown
57 lines
4.2 KiB
Markdown
# 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] 飞书回报 — 本侧统一回报(见下)
|