mirror of
https://github.com/openai/codex.git
synced 2026-11-06 20:20:34 +00:00
Allow per-turn overrides for direct-only tool namespaces (#59481)
## What changed - Add `direct_only_tool_namespaces` to `TurnStartOptions`. Omission inherits the thread configuration; an empty list clears direct-only routing for that turn. Steering ignores the option. - Persist explicit overrides in turn context and restore them when recovering an interrupted turn, including turns started by standalone tool output. - Keep subsequent turns and spawned or resumed child agents on the thread's routing defaults. ## Testing Add coverage for routing changes across turns in Responses and Responses Lite, recovery without carrying overrides into subsequent turns, and child-agent inheritance. GitOrigin-RevId: cea1a997424572d4cd372cd15b098626904c6796
This commit is contained in:
@@ -3634,6 +3634,10 @@ pub struct TurnContextItem {
|
||||
/// Root turn that owns this turn's attribution, retained across recovery.
|
||||
#[serde(default, skip_serializing_if = "Option::is_none")]
|
||||
pub root_turn_id: Option<String>,
|
||||
/// Explicit routing for this turn. An empty list clears the thread's direct namespaces.
|
||||
#[serde(default, skip_serializing_if = "Option::is_none")]
|
||||
#[ts(optional)]
|
||||
pub direct_only_tool_namespaces: Option<Vec<String>>,
|
||||
/// Plugin selection captured for this turn. Absent in older histories.
|
||||
#[serde(default, skip_serializing_if = "Option::is_none")]
|
||||
#[ts(optional)]
|
||||
@@ -6594,6 +6598,7 @@ mod tests {
|
||||
let item = TurnContextItem {
|
||||
turn_id: None,
|
||||
root_turn_id: None,
|
||||
direct_only_tool_namespaces: None,
|
||||
disabled_plugin_ids: None,
|
||||
cwd: test_path_buf("/tmp").abs(),
|
||||
approval_policy: AskForApproval::Never,
|
||||
|
||||
Reference in New Issue
Block a user