Files

3.4 KiB
Raw Permalink Blame History

失败插入卡片重试与删除:任务计划

目标

为图片/附件“插入失败”卡片增加可用的“重试”和“删除”操作:重试沿用原附件并正确更新卡片状态,删除只移除对应失败项;同时保证重复点击、再次失败、会话恢复和现有发送流程不被破坏。

范围

  • 失败卡片的前端渲染、事件处理和状态同步。
  • 必要的后端/API 复用或补充。
  • 定向回归测试、样式和无障碍状态。
  • 不重构无关消息链路,不覆盖当前工作区中的“独立任务看板”改动。

阶段

  1. 初始化任务上下文并定位失败附件链路 — complete
  2. 明确重试与删除交互契约并补充回归测试 — complete
  3. 实现失败卡片重试与删除行为 — complete
  4. 完善操作按钮样式与无障碍状态 — complete
  5. 运行定向测试并修复问题 — complete
  6. 执行差异审查与完整回归 — complete
  7. 清理临时跟踪文件并交付 — 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 补丁未生效;读取实际计划文件后改用现有“资源”区段作为追加锚点