1.3 KiB
1.3 KiB
Case: reassign-cancels-old-thread-and-dispatches-new-attempt
用例意义
验证 reassign 会取消旧的阻塞线程,并为新 worker 创建新的尝试与线程。
前置条件
- 已创建运行
run_blog_reassign_001 - 已创建任务
T1 T1已通过严格 worktree 模式完成首次dispatchworker-a已claim首次尝试线程,并通过inbox update --status blocked写入问题- 最近一次
reconcile已执行,使任务进入blocked - 已知旧线程为
OLD_THREAD_ID
输入
orch --db TMPDIR/coord.db --json reassign --run run_blog_reassign_001 --task T1 --to worker-b --reason "Try another worker with clearer ownership."
inbox --db TMPDIR/coord.db --json show --thread OLD_THREAD_ID
预期输出
reassign退出码为0reassign.data.attempt.assigned_to == "worker-b"reassign.data.attempt.attempt_no == 2reassign.data.attempt.thread_id != OLD_THREAD_IDshow.data.thread.status == "cancelled",指向旧线程
断言结论
reassign不是简单修改assigned_to字段,而是显式终止旧尝试并派生新尝试- 旧线程被取消后,worker 侧不会继续在过期上下文上执行
补充约束
reassign只接受blocked或failed任务--to是必填参数;--reason建议始终填写,便于审计和人工排障