Skip to content

fix: atomically finalize returned tasks - #335

Open
Iams4kura wants to merge 1 commit into
cft0808:mainfrom
Iams4kura:bugfix/finalize-returned-tasks-20260815t080158z
Open

fix: atomically finalize returned tasks#335
Iams4kura wants to merge 1 commit into
cft0808:mainfrom
Iams4kura:bugfix/finalize-returned-tasks-20260815t080158z

Conversation

@Iams4kura

Copy link
Copy Markdown

变更描述

Fixes #334.

太子完成最终回奏后,原流程只追加 flow_log,没有同步写入 Done 和关闭调度器。因此任务超过停滞阈值后仍会被巡检重试并重新派发。

本 PR:

  • 新增 complete 命令,在同一次文件锁事务中写入结构化回奏记录、DonecompletedAt 和 scheduler 完成态;重复调用保持幂等。
  • 将太子的最终回奏流程切换到 complete,同时保留普通 flow 的原有语义。
  • 让 scheduler 对旧版“太子 → 皇上 / ✅ 回奏皇上”记录进行防御性收口,并在锁外派发前重验最新状态,避免并发完成后继续派发。
  • 保持现有 todo 完成门禁;未完成 todo 不能被最终收口。

回归测试在原始 main SHA 14a2075 上稳定失败 2 项,应用修复后相同命令 2 项全部通过。

变更类型

  • Bug 修复
  • 新功能
  • 重构 / 代码优化
  • 文档更新
  • CI / 工程配置

检查清单

  • 代码已通过 python3 -m py_compile 检查
  • 已在本地测试运行 run_loop.sh(本修复不依赖 OpenClaw 运行时)
  • 涉及看板的变更已在浏览器中验证(未改变 UI 渲染)
  • 更新了相关文档(太子最终回奏命令)

验证结果:

  • 核心失败前/通过后回归:2 passed
  • 隔离 OPENCLAW_HOME 的项目测试:67 passed, 7 deselected
  • 7 个排除项均为上游基线失败:2 个旧 E2E 仍假设 Zhongshu 可直接 done;5 个 symlink 用例未隔离模块级 OPENCLAW_HOME
  • python3 -m py_compile scripts/kanban_update.py dashboard/server.py

关联 Issue

Fixes #334

@Iams4kura
Iams4kura requested a review from cft0808 as a code owner August 15, 2026 09:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bug] 已回奏任务未进入 Done,被太子巡检误判停滞并重新派发

1 participant