mirror of
https://github.com/openai/codex.git
synced 2026-11-14 14:49:31 +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
@@ -1046,14 +1046,14 @@ impl Session {
|
||||
|
||||
if !tc.code_mode_available
|
||||
&& matches!(
|
||||
crate::tools::requested_tool_mode(tc),
|
||||
crate::tools::requested_tool_mode(tc, tc.model_info()),
|
||||
codex_protocol::openai_models::ToolMode::CodeMode
|
||||
| codex_protocol::openai_models::ToolMode::CodeModeOnly
|
||||
)
|
||||
&& let Some(message) = self
|
||||
.services
|
||||
.code_mode_service
|
||||
.take_unavailable_warning(crate::tools::effective_tool_mode(tc))
|
||||
.take_unavailable_warning(crate::tools::effective_tool_mode(tc, tc.model_info()))
|
||||
{
|
||||
self.send_event(tc, EventMsg::Warning(WarningEvent { message }))
|
||||
.await;
|
||||
|
||||
Reference in new issue
Block a user