35 lines
1.2 KiB
Markdown
35 lines
1.2 KiB
Markdown
# Case: `fetch-unread-uses-read-cursor`
|
|
|
|
## 用例意义
|
|
|
|
验证 `fetch --unread` 基于 agent 的 read cursor 计算未读,而不是仅按线程是否存在新消息。
|
|
|
|
## 前置条件
|
|
|
|
- `leader` 已向 `worker-e` 发送一个 `pending` 线程 `THREAD_ID`
|
|
|
|
## 输入
|
|
|
|
```bash
|
|
inbox --db TMPDIR/coord.db --json fetch --agent worker-e --status pending --unread
|
|
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
|
|
inbox --db TMPDIR/coord.db --json send --from leader --to worker-e --thread THREAD_ID --summary "Use sentence case" --body "Keep the nav labels in sentence case."
|
|
inbox --db TMPDIR/coord.db --json fetch --agent worker-e --status pending --unread
|
|
```
|
|
|
|
## 预期输出
|
|
|
|
- 第一次 `fetch --unread` 返回该线程
|
|
- `show --mark-read` 后,第二次 `fetch --unread` 无匹配结果
|
|
- 新消息追加后,第三次 `fetch --unread` 再次返回该线程
|
|
|
|
## 断言结论
|
|
|
|
- 未读判断依赖 `thread_reads.last_read_message_id`
|
|
- 新消息到达会让同线程重新进入未读结果集
|
|
|
|
## 补充约束
|
|
|
|
- 使用 `--unread` 时必须具备 agent 身份,否则会返回 `invalid_input`
|