Files
2026-07-30 18:06:39 +08:00

57 lines
2.4 KiB
Markdown
Raw Permalink 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.

# 任务计划:修复侧栏标题刷新风暴
## 目标
定位并修复子代理活跃时侧栏会话标题区域频繁刷新重绘、暂时无法点击的问题,同时建立可重复的回归验证。
## 当前阶段
阶段 4验证与交付
## 阶段
### 阶段 1确认索引与侧栏更新链路
- [x] 确认代码索引状态
- [x] 定位侧栏列表渲染、会话状态事件和子代理更新入口
- **状态:** complete
### 阶段 2复现并定位高频重绘根因
- [x] 建立事件到 DOM 更新的调用链
- [x] 确认是否存在全量重建、重复事件或无效状态更新
- **状态:** complete
### 阶段 3回归测试与修复
- [x] 先编写能覆盖状态更新风暴的回归测试
- [x] 实施最小且可维护的修复
- **状态:** complete
### 阶段 4验证与交付
- [ ] 运行相关单元测试、静态检查与构建
- [ ] 进行浏览器交互和性能验证
- [ ] 审查变更并整理结论
- **状态:** in_progress
## 关键问题
1. 哪类子代理/会话事件会触发侧栏刷新,频率和生命周期如何?
2. 侧栏是否使用 `innerHTML` 或等价方式重建全部项目分组?
3. 是否能在不牺牲实时状态的前提下保持节点身份和点击稳定性?
## 已作决策
| 决策 | 理由 |
|---|---|
| 优先验证状态更新风暴与全量 DOM 重建的组合问题 | 用户描述与截图均指向运行会话密集时的短时高频重绘 |
| 先补回归测试再改实现 | 该问题偶发,必须把触发条件固化成可重复检查 |
| 使用结构视图签名并原位更新时间 | 保留节点身份,同时不牺牲真正的顺序、标题和状态更新 |
## 遇到的错误
| 错误 | 次数 | 处理 |
|---|---:|---|
| 多次误把代理等待当成执行单元等待 | 20+ | 后续停止通用轮询,改用代理主动结果、共享工作区变更与正确协作接口 |
| 错误日志再次使用动态时间作补丁上下文 | 1 | 改为只匹配稳定表头追加记录 |
| 使用 full-history fork 同时指定 worker 角色被运行时拒绝 | 1 | 改为无历史 fork并在任务提示中要求读取 Trellis PRD、上下文和项目规范 |
| Default 模式误调用引导输入工具 | 1 | 本任务不需要用户选择,停止调用并继续既定实现流程 |
| 记录错误时使用了变化后的动态时间导致补丁上下文不匹配 | 1 | 先读取文件尾部,再基于稳定行追加记录 |