mirror of
https://github.com/openai/codex.git
synced 2026-11-13 22:47:20 +00:00
Make multi_agent_v2 wait_agent timeouts configurable (#22528)
## Why `multi_agent_v2` already allowed configuring the minimum `wait_agent` timeout, but the default timeout and upper bound were still hard-coded. That made it hard to tune waits for subagent mailbox activity in sessions that need either faster wakeups or longer waits, and it meant the model-visible `wait_agent` schema could not fully reflect the resolved runtime limits. ## What Changed - Added `features.multi_agent_v2.max_wait_timeout_ms` and `features.multi_agent_v2.default_wait_timeout_ms` alongside the existing `min_wait_timeout_ms` setting. - Validated all three timeouts in config as `0..=3_600_000`, with `min_wait_timeout_ms <= default_wait_timeout_ms <= max_wait_timeout_ms`. - Thread and review session tool config now passes the resolved min/default/max values into the `wait_agent` tool schema. - `wait_agent` now uses the configured default when `timeout_ms` is omitted and rejects explicit values outside the configured min/max range instead of silently clamping them. - Updated the generated config schema and config-lock test coverage for the new fields.
This commit is contained in:
1 parent
8ae0c837f0
commit
7c57a59f51
14 files changed
+541
-53
No files matched your search
@@ -123,6 +123,8 @@ pub struct ToolsConfig {
|
||||
pub spawn_agent_usage_hint_text: Option<String>,
|
||||
pub max_concurrent_threads_per_session: Option<usize>,
|
||||
pub wait_agent_min_timeout_ms: Option<i64>,
|
||||
pub wait_agent_max_timeout_ms: Option<i64>,
|
||||
pub wait_agent_default_timeout_ms: Option<i64>,
|
||||
pub request_user_input_available_modes: Vec<ModeKind>,
|
||||
pub experimental_supported_tools: Vec<String>,
|
||||
pub agent_jobs_tools: bool,
|
||||
@@ -264,6 +266,8 @@ impl ToolsConfig {
|
||||
spawn_agent_usage_hint_text: None,
|
||||
max_concurrent_threads_per_session: None,
|
||||
wait_agent_min_timeout_ms: None,
|
||||
wait_agent_max_timeout_ms: None,
|
||||
wait_agent_default_timeout_ms: None,
|
||||
request_user_input_available_modes: request_user_input_available_modes(features),
|
||||
experimental_supported_tools: model_info.experimental_supported_tools.clone(),
|
||||
agent_jobs_tools: include_agent_jobs,
|
||||
@@ -346,6 +350,22 @@ impl ToolsConfig {
|
||||
self
|
||||
}
|
||||
|
||||
pub fn with_wait_agent_max_timeout_ms(
|
||||
mut self,
|
||||
wait_agent_max_timeout_ms: Option<i64>,
|
||||
) -> Self {
|
||||
self.wait_agent_max_timeout_ms = wait_agent_max_timeout_ms;
|
||||
self
|
||||
}
|
||||
|
||||
pub fn with_wait_agent_default_timeout_ms(
|
||||
mut self,
|
||||
wait_agent_default_timeout_ms: Option<i64>,
|
||||
) -> Self {
|
||||
self.wait_agent_default_timeout_ms = wait_agent_default_timeout_ms;
|
||||
self
|
||||
}
|
||||
|
||||
pub fn with_allow_login_shell(mut self, allow_login_shell: bool) -> Self {
|
||||
self.allow_login_shell = allow_login_shell;
|
||||
self
|
||||
|
||||
Reference in new issue
Block a user