32 lines
1.1 KiB
Markdown
32 lines
1.1 KiB
Markdown
# case: wait-reply-wakes-on-answer-after-message
|
|
|
|
### 用例意义
|
|
|
|
验证 `wait-reply` 可以从某条已知消息之后开始等待,并在答复到达后唤醒。
|
|
|
|
### 前置条件
|
|
|
|
- `worker-c` 已拥有一个 `blocked` 线程 `THREAD_ID`
|
|
- 阻塞消息的 `message_id` 为 `BLOCKED_MESSAGE_ID`
|
|
|
|
### 输入
|
|
|
|
```bash
|
|
inbox --db TMPDIR/coord.db --agent worker-c --json wait-reply --thread THREAD_ID --after-message BLOCKED_MESSAGE_ID --timeout-seconds 2
|
|
inbox --db TMPDIR/coord.db --json reply --from leader --to worker-c --thread THREAD_ID --summary "Redirect to login" --body "Redirect guests to login for the MVP."
|
|
```
|
|
|
|
### 预期输出
|
|
|
|
- `wait-reply` 退出码为 `0`
|
|
- `wait-reply.data.woke == true`
|
|
- 返回的 `message.kind == "answer"`
|
|
|
|
### 断言结论
|
|
|
|
- `wait-reply` 可以可靠地从既知消息边界之后等待后续答复
|
|
- `--agent` 不是必填;它主要用于在命中外来消息时推进该 agent 的 read cursor
|
|
- `--after-message` 必须引用该线程中已知的消息;如果消息不存在,应返回 `not_found`
|
|
- 当返回消息是发给等待 agent 的外来消息时,`wait-reply` 会顺带推进该 agent 的 read cursor
|
|
|