5.0 KiB
5.0 KiB
进度记录:排队与运行中图片发送
2026-07-17
阶段 1:核对附件生命周期与现有改动边界
- 状态: complete
- 已完成:
- 读取
planning-with-files、todo-list-csv与 Trellis 工作流。 - 运行 session catchup 并检查工作树,确认存在其他活跃任务及重叠文件改动。
- 使用
codebase-memory-mcp定位队列、普通发送、steer 和 Codex App 输入构造函数。 - 使用本机 Codex 0.144.1 Schema 验证
turn/steer协议接受localImage。 - 确认
resolveMessageAttachments提供服务端元数据解析、文件存在性和过期校验,可直接复用于 steer。 - 确认会话持久化已有统一的
attachments归一化入口。 - 核对目标函数所在 diff,确认可做局部补丁且不会覆盖当前主题与回归改动。
- 确认 mock 已能把
localImage反映到 steer 输出,测试可直接断言图片文件名。
- 读取
- 已创建:
.planning/runtime-image-send/task_plan.md.planning/runtime-image-send/findings.md.planning/runtime-image-send/progress.md.trellis/tasks/07-17-runtime-image-send/下的 PRD、技术设计、研究和代理上下文
阶段 2:补充失败回归测试
- 状态: complete
- 已完成:
- 新增
runtime-image-send定向回归目标。 - 覆盖前端队列附件契约、成功 steer 图片、stale fallback 图片与历史持久化。
- 审阅并修正 mock 图片 marker:协议断言使用服务端附件 ID,历史断言保留原始文件名。
- 新增
阶段 3:运行目标回归确认失败
- 状态: complete
- 已执行:
timeout 60s node scripts/regression.js --target runtime-image-send
- 结果:3.8 秒退出,状态码 1;active steer、stale replacement、前端队列契约均按预期失败。
阶段 4:实现前端附件传递
- 状态: complete
- 已实现:
- 队列附件快照、纯图片校验、摘要、删除清理与出队发送。
- 运行中插入附件气泡、WebSocket 发送和 composer 清空。
- 卡片编辑保留附件,正常出队不误删上传记录。
- 阶段验证:
node --check public/app.js通过。- 定向回归中的前端静态契约已通过,剩余失败均为后端。
阶段 5:实现后端 steer 附件链路
- 状态: complete
- 已实现:
handleMessage向 steer 传递已解析附件和去 path 的持久化附件。- active steer、纯图片、历史保存和 stale replacement 复用附件。
- 最多等待 2 秒获取 ready turn,并在持久化前重载最新 session,修复两个竞态。
- 阶段验证:
node --check server.js通过。- 代理运行定向回归已通过。
阶段 6:运行目标回归和静态检查
- 状态: complete
- 已通过:
node --check public/app.jsnode --check server.jsnode --check scripts/regression.jstimeout 60s node scripts/regression.js --target runtime-image-send(4.9 秒)timeout 60s node scripts/regression.js --target codexapp-stale-running(2.9 秒)
- 已通过:
timeout 60s node scripts/regression.js(完整回归)。
阶段 7:审查差异并修正问题
- 状态: complete
- 已完成审查:
- 修复 active steer 失效附件只返回普通 error、用户气泡停在 pending 的问题。
- error/status 现在带 sessionId/clientMessageId,失败输入不持久化。
- 恢复普通消息“校验通过后才取消容量重试”的原有顺序,避免无关语义变化。
- 主代理复验:
- 三个修改文件的
node --check通过。 runtime-image-send定向回归通过。- 完整回归通过。
- 三个修改文件的
阶段 8:检查会话状态并安全重启服务
- 状态: in_progress
- 待执行:
- 查询当前会话列表并排除本对话。
- 无其他 running 会话时重启并健康检查;否则暂缓。
测试结果
| 测试 | 预期 | 实际 | 状态 |
|---|---|---|---|
| 尚未执行 | - | - | 待执行 |
| 定向回归红灯 | --target runtime-image-send |
三类缺口失败 | 三类缺口失败,3.8 秒 |
| 定向回归绿灯 | --target runtime-image-send |
通过 | 通过,4.9 秒 |
| stale-running 回归 | --target codexapp-stale-running |
通过 | 通过,2.9 秒 |
| JavaScript 语法 | 三个修改文件 node --check |
通过 | 全部通过 |
| 完整回归 | timeout 60s node scripts/regression.js |
通过 | Regression checks passed |
错误日志
| 时间 | 错误 | 次数 | 处理 |
|---|---|---|---|
| 2026-07-17 | Trellis 自定义代理 TOML 路径不存在 | 1 | 改用标准协作代理并显式传递任务文件与规范路径 |
5 问恢复检查
| 问题 | 回答 |
|---|---|
| 当前在哪? | 阶段 8,检查会话并安全重启 |
| 接下来去哪? | 先补失败回归,再做前后端最小实现 |
| 目标是什么? | 排队与运行中插入均支持图片附件 |
| 已掌握什么? | 见 findings.md |
| 已完成什么? | 见上方进度记录 |