Files
ai-workflow-skill/docs/tests/orch/wait/wait-wakes-on-matching-run-event.md
T

1.4 KiB

Case: wait-wakes-on-matching-run-event

用例意义

验证 wait 能在后续匹配事件出现时被唤醒,并返回稳定的事件载荷。

前置条件

  • 空数据库已初始化
  • 已创建运行 run_blog_wait_001
  • 已添加任务 T1 并完成一次 dispatch
  • 已知当前尝试线程为 THREAD_ID
  • wait 在工作线程写入阻塞状态前启动

输入

orch --db TMPDIR/coord.db --json wait --run run_blog_wait_001 --for task_blocked --after-event 0 --timeout-seconds 2
inbox --db TMPDIR/coord.db --json claim --agent worker-a --thread THREAD_ID
inbox --db TMPDIR/coord.db --json update --agent worker-a --thread THREAD_ID --status blocked --summary "Need logging decision" --payload-json '{"question":"stdout or stderr?"}'

预期输出

  • wait 退出码为 0
  • wait.data.woke == true
  • wait.data.events 长度为 1
  • 唯一事件的 type == "task_blocked"
  • 事件 summary == "Need logging decision"
  • 事件 payload.question == "stdout or stderr?"

断言结论

  • wait 不是简单睡眠,而是面向 run 事件流的阻塞读取接口
  • task_blocked 事件会把 worker 提问摘要和结构化 payload 暴露给 leader

补充约束

  • --for 支持逗号分隔的事件类型列表;该用例验证的是单事件过滤
  • wait 返回成功时也会给出 next_event_id,便于后续增量等待