mirror of
https://github.com/openai/codex.git
synced 2026-11-15 14:52:36 +00:00
Finalize model-specific tool plans in ToolRouter (#41195)
## Why Planning tools for a candidate model must not change the selected model or its Responses Lite tool inventory. Otherwise, preparing a fallback can overwrite metadata before the current model's request is sent. ## What changed - Build tool registries and visible specs from an explicit `ModelInfo`. - Store the finalized tool mode, code-mode names, namespace inventory, and terminal and child-management capabilities on `ToolRouter`. - Publish namespace inventory only after selecting the step's router, and use that router's mode when dispatching and recording tool calls. ## Testing Added coverage for candidate-model isolation, fallback compaction metadata, code-mode worker selection, normalized tool names, and router capabilities. GitOrigin-RevId: 56df2de8f42c7e93a4c4dcd117720e40a0cca3db
This commit is contained in:
1 parent
8aea62b2d8
commit
0182ff3480
13 files changed
+532
-127
No files matched your search
@@ -1509,13 +1509,14 @@ pub(crate) async fn prepare_tool_recommendations(
|
||||
skip_all,
|
||||
fields(
|
||||
turn_id = %turn_context.sub_id,
|
||||
model = %turn_context.model_info().slug,
|
||||
model = %model_info.slug,
|
||||
apps_enabled = turn_context.apps_enabled()
|
||||
)
|
||||
)]
|
||||
pub(crate) async fn built_tools(
|
||||
sess: &Session,
|
||||
turn_context: &TurnContext,
|
||||
model_info: &codex_protocol::openai_models::ModelInfo,
|
||||
environments: &TurnEnvironmentSnapshot,
|
||||
mcp: &Arc<codex_mcp::McpBinding>,
|
||||
step_store: &ExtensionData,
|
||||
@@ -1584,6 +1585,7 @@ pub(crate) async fn built_tools(
|
||||
Ok(Arc::new(build_tool_router(
|
||||
sess,
|
||||
turn_context,
|
||||
model_info,
|
||||
environments,
|
||||
mcp,
|
||||
apps_enabled,
|
||||
|
||||
Reference in new issue
Block a user