57 lines
2.4 KiB
Markdown
57 lines
2.4 KiB
Markdown
# 任务计划:修复侧栏标题刷新风暴
|
||
|
||
## 目标
|
||
|
||
定位并修复子代理活跃时侧栏会话标题区域频繁刷新重绘、暂时无法点击的问题,同时建立可重复的回归验证。
|
||
|
||
## 当前阶段
|
||
|
||
阶段 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 | 先读取文件尾部,再基于稳定行追加记录 |
|