3.4 KiB
3.4 KiB
失败插入卡片重试与删除:任务计划
目标
为图片/附件“插入失败”卡片增加可用的“重试”和“删除”操作:重试沿用原附件并正确更新卡片状态,删除只移除对应失败项;同时保证重复点击、再次失败、会话恢复和现有发送流程不被破坏。
范围
- 失败卡片的前端渲染、事件处理和状态同步。
- 必要的后端/API 复用或补充。
- 定向回归测试、样式和无障碍状态。
- 不重构无关消息链路,不覆盖当前工作区中的“独立任务看板”改动。
阶段
- 初始化任务上下文并定位失败附件链路 —
complete - 明确重试与删除交互契约并补充回归测试 —
complete - 实现失败卡片重试与删除行为 —
complete - 完善操作按钮样式与无障碍状态 —
complete - 运行定向测试并修复问题 —
complete - 执行差异审查与完整回归 —
complete - 清理临时跟踪文件并交付 —
complete
验收条件
- 仅失败卡片展示“重试”和“删除”。
- 点击“重试”后复用原附件,进入明确的处理中状态;成功后不再显示失败操作,失败后恢复可重试状态并保留可理解的错误提示。
- 重试过程中禁用重复操作,避免并发插入或重复提交。
- 点击“删除”只移除目标失败卡片,不影响消息文本、其他附件或其他消息。
- 刷新/恢复会话后的失败卡片仍可执行两项操作,或按现有持久化边界保持一致行为。
- 定向测试与项目相关回归通过;无新增控制台错误。
关键决策
| 决策 | 原因 |
|---|---|
使用独立 .planning 与 Trellis 任务目录,不切换 .trellis/.current-task |
当前工作区另有“独立任务看板”任务正在运行,避免跨会话状态覆盖 |
| 先追踪现有插入请求和失败状态,再决定是否新增 API | 优先复用既有链路,减少协议与持久化风险 |
| 以失败项标识作为重试/删除目标,不按文件名匹配 | 同名附件可能同时存在,必须精确操作单项 |
风险与约束
public/app.js、server.js等文件已有未提交改动;补丁必须保持局部并在最终差异中区分本任务内容。- 删除属于界面内失败项清理,不删除用户磁盘上的原始文件或服务器无关资源。
- 所有自动化测试单次运行控制在 60 秒内。
错误记录
| 错误 | 尝试 | 处理 |
|---|---|---|
Trellis 新任务默认未生成 prd.md |
1 | 按工作流要求显式创建 PRD,并保留已生成的上下文清单与任务元数据 |
codebase-memory-mcp 补查 send / clearUserMessageIndex 时 transport closed |
1 | 核心链路已通过 MCP 确认;剩余局部实现按约定降级为 rg/sed 校验,不重复相同失败调用 |
前端单测跨 vm 上下文对象被 deepStrictEqual 判为原型不一致 |
1 | 对实际发送载荷先做 JSON 规范化,再比较纯数据结构;功能载荷本身完全一致 |
回归命令漏写 --target,误执行完整回归 |
1 | 完整回归已通过;查明 CLI 只解析 --target 或环境变量,后续仅补跑未覆盖的专项目标 |
| 计划同步补丁引用了研究文档中的错误标题 | 1 | 补丁未生效;读取实际计划文件后改用现有“资源”区段作为追加锚点 |