recv: optional wait_seconds parameter, capped at 60s
AgentRequest::Recv and ManagerRequest::Recv grow an optional wait_seconds field (default None → 30s, capped at 60s server-side). agent_server / manager_server clamp via recv_timeout(). MCP tool schemas advertise the param so claude can pick its own poll window — useful when an agent wants to throttle wakes without entering a distinct nap state. both harness loops still pass None, keeping the existing 30s default behaviour for system-level Recvs.
This commit is contained in:
parent
637085644d
commit
f65ee88269
6 changed files with 73 additions and 21 deletions
|
|
@ -166,8 +166,13 @@ pub struct InboxRow {
|
|||
pub enum AgentRequest {
|
||||
/// Send a message to another agent.
|
||||
Send { to: String, body: String },
|
||||
/// Pop one pending message from this agent's inbox.
|
||||
Recv,
|
||||
/// Pop one pending message from this agent's inbox. Long-polls
|
||||
/// up to `wait_seconds` (capped at 60s server-side, default 30s
|
||||
/// when None) before returning `Empty`.
|
||||
Recv {
|
||||
#[serde(default)]
|
||||
wait_seconds: Option<u64>,
|
||||
},
|
||||
/// Non-mutating: how many pending messages are addressed to me?
|
||||
/// Used by the harness to render a status line after each tool call.
|
||||
Status,
|
||||
|
|
@ -274,7 +279,12 @@ pub enum ManagerRequest {
|
|||
to: String,
|
||||
body: String,
|
||||
},
|
||||
Recv,
|
||||
/// Same shape as `AgentRequest::Recv` — caller-tunable long-poll
|
||||
/// duration, capped at 60s server-side, default 30s when None.
|
||||
Recv {
|
||||
#[serde(default)]
|
||||
wait_seconds: Option<u64>,
|
||||
},
|
||||
/// Non-mutating: pending message count, used to render a status line
|
||||
/// after each MCP tool call (mirrors `AgentRequest::Status`).
|
||||
Status,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue