# Inbox `show` Test Plan ## Scope This document covers per-thread detail retrieval via `inbox show`. Shared conventions live in [../_shared/README.md](../_shared/README.md). ## case: show-returns-thread-and-message-history ### 用例意义 验证 `show` 会返回线程详情和完整消息历史。 ### 前置条件 - 已存在一个含多条消息的线程 `THREAD_ID` ### 输入 ```bash inbox --db TMPDIR/coord.db --json show --thread THREAD_ID ``` ### 预期输出 - 命令退出码为 `0` - 返回 `data.thread` - 返回 `data.messages` - 消息按创建时间升序排列 ### 断言结论 - `show` 是线程详情与时间序历史的读取入口 ## case: show-includes-artifacts-per-message ### 用例意义 验证 `show` 返回的每条消息都包含其关联 artifact 列表。 ### 前置条件 - 线程 `THREAD_ID` 中至少一条消息附带 artifact ### 输入 ```bash inbox --db TMPDIR/coord.db --json show --thread THREAD_ID ``` ### 预期输出 - 命令退出码为 `0` - 相关消息节点包含 `artifacts` - artifact 的 `path`、`kind`、`metadata_json` 可读 ### 断言结论 - `show` 需要把附件一并展开,而不是只返回 message 基本字段 ## case: show-mark-read-advances-read-cursor ### 用例意义 验证 `show --mark-read` 会推进调用 agent 的 read cursor,并影响后续 unread 查询。 ### 前置条件 - `worker-e` 有一个未读线程 `THREAD_ID` ### 输入 ```bash inbox --db TMPDIR/coord.db --agent worker-e --json show --thread THREAD_ID --mark-read inbox --db TMPDIR/coord.db --json fetch --agent worker-e --status pending --unread ``` ### 预期输出 - `show` 成功 - 随后的 `fetch --unread` 对该线程不再返回结果 ### 断言结论 - `mark-read` 的副作用是推进该 agent 的 `last_read_message_id` ## case: show-rejects-when-thread-missing ### 用例意义 验证 `show` 对不存在线程返回稳定的 not-found 错误契约。 ### 前置条件 - 空数据库已完成 `init` ### 输入 ```bash inbox --db TMPDIR/coord.db --json show --thread thr_missing ``` ### 预期输出 - 退出码为 `40` - JSON 错误码为 `not_found` ### 断言结论 - `show` 不会对缺失线程返回空对象 ## Notes - 使用 `--mark-read` 时必须提供 agent 身份,可通过根级 `--agent` 或命令参数传入