Files
ai-workflow-skill/docs/tests/inbox/cancel

Inbox cancel Test Plan

Scope

This document covers thread cancellation via inbox cancel.

Shared conventions live in ../_shared/README.md.

case: cancel-marks-thread-cancelled

用例意义

验证 cancel 可以把非终态线程推进到 cancelled 终态,并生成控制消息。

前置条件

  • 已存在一个非终态线程 THREAD_ID

输入

inbox --db TMPDIR/coord.db --json cancel --agent leader --thread THREAD_ID --reason "Task superseded by a larger refactor"

预期输出

  • 命令退出码为 0
  • thread.status == "cancelled"
  • message.kind == "control"

断言结论

  • cancel 是线程级终态转换
  • 取消时会释放活跃 lease

case: cancel-persists-reason-and-artifact

用例意义

验证 cancel 的原因文本与附件会被完整持久化。

前置条件

  • 已存在一个非终态线程 THREAD_ID
  • TMPDIR/cancel.md 已存在

输入

inbox --db TMPDIR/coord.db --json cancel --agent leader --thread THREAD_ID --reason "Task superseded by a larger refactor" --artifact TMPDIR/cancel.md --artifact-kind brief
inbox --db TMPDIR/coord.db --json show --thread THREAD_ID

预期输出

  • cancel 成功
  • 取消消息 summarybody 都保留取消原因
  • 取消消息包含 1 个 artifact

断言结论

  • cancel 既保留人类可读原因,也支持附带上下文材料

case: cancel-rejects-when-thread-missing

用例意义

验证 cancel 对不存在线程返回稳定的 not-found 错误契约。

前置条件

  • 空数据库已完成 init

输入

inbox --db TMPDIR/coord.db --json cancel --agent leader --thread thr_missing

预期输出

  • 退出码为 40
  • JSON 错误码为 not_found

断言结论

  • cancel 不会为缺失线程隐式创建控制消息