2.9 KiB
2.9 KiB
title, task_id, status, created, updated, owner, task_type, policy_revision, branch, worktree, base_dev_sha, write_scope, mutex, review_state, integration_state, deployment, cleanup, remote_sync
| title | task_id | status | created | updated | owner | task_type | policy_revision | branch | worktree | base_dev_sha | write_scope | mutex | review_state | integration_state | deployment | cleanup | remote_sync | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 刷新后恢复任务进度并纠正进度问询 | refresh-task-state-recovery-2026-09-28 | in_progress | 2026-09-28 | 2026-09-28 | Cursor | fix | AGENTS.md + agent-worktree-workflow @ 2026-09-21 | fix/refresh-task-state-recovery-2026-09-28 | .worktrees/refresh-task-state-recovery-2026-09-28 | 4c42d1bf74 |
|
refresh-task-state-recovery | pending | branch_only | not_loaded | pending | not_requested |
刷新后恢复任务进度并纠正进度问询
用户目标与授权
用户发起调研报告后,聊天下方的任务进度在刷新页面时消失。随后两次询问「调研报告编写进度怎么样了」,没有看到调研报告生成。用户要求浏览器和服务器同时记下进行中的任务:刷新或重连后先显示本地缓存,再按会话和任务标识向服务器收敛。授权范围同时包含进度问句被当成新任务,以及 11:27 / 11:38 两次步骤被判空输出失败。
检索
- 问题台账命中 ISSUE-20260928-task-run-replay-502(历史失败气泡重放 502)。本轮给重放补了退避,并保持终态
replay_only。 - catalog overlap 探测无硬重叠。mutex 为
refresh-task-state-recovery,不占用chat+coordinator与bizdev+docflow。
根因
run_id与阶段快照只在任务终态写回助手消息。窗口缓存只保存服务端窗口,刷新后没有锚点,进度卡片无法重放。- 「调研报告编写进度怎么样了」含写动词「编写」和任务名词「调研报告」。
matchTriggerTask排在进度查询之前,于是又启动了 research。进度回复只读模板,不读真实 run。 - 步骤判定把 runner 的
Success=false当成失败,即使盘上已经有正文。连接错误留下的文件仍可能是截断的,这条不能放宽。
修复
- run 启动和绑定助手消息时写入
{run_id, task_status: running}。 GET /api/v1/tasks/runs?session_id=&active=1只返回当前用户、当前会话里仍为 pending/running 的 run。- 浏览器
smdf_agent_workbench_v6_active_tasks在窗口就绪后先画出进行中卡片,再用活跃列表收敛;终态删除缓存。 - 有 run 锚点但还没有
task_status和阶段快照时,消息保持streaming_status。终态重放对 502 退避,401/404 不再试。 - 疑问进度句让行
QUERY_PROGRESS。回复读取该会话最近一次 run 的真实状态。 - 盘上已有非空正文,且失败原因不是传输/可重试错误时,步骤接受该文件。空 patch 不覆盖已有
output.md。
验证
见 测试报告。
五态
合入与 dev 重载完成后回写。当前仍是任务分支上的实现。