mirror of
https://github.com/openai/codex.git
synced 2026-11-13 06:45:07 +00:00
## Why Thread settings can change while a turn is running, and delegated review or compaction steps can select a different model. Each request needs a consistent set of settings resolved against the model that will execute it. ## What changed - Capture immutable resolved settings for each model step, including model metadata, reasoning options, service tier, approvals, and personality. - Keep in-flight steps on their captured settings while applying thread updates to subsequent work. - Resolve inherited reasoning summaries and filter service tiers against the selected model and feature configuration for review and compaction steps. ## Testing Added coverage for settings updates during paused turns, model changes, previous-model compaction, review-model defaults, and service-tier filtering. GitOrigin-RevId: fca4b3b305379f1bf26a5cac75ee0dd1747ac1f6
32 lines
1.6 KiB
Rust
32 lines
1.6 KiB
Rust
use std::sync::Arc;
|
|
|
|
use crate::agents_md::LoadedAgentsMd;
|
|
use crate::environment_selection::TurnEnvironmentSnapshot;
|
|
use crate::session::step_settings::ResolvedStepSettings;
|
|
use crate::session::turn_context::TurnContext;
|
|
use crate::tools::router::ToolRouter;
|
|
use codex_exec_server::ExecutorCapabilityDiscoverySnapshot;
|
|
use codex_exec_server::ResolvedSelectedCapabilityRoot;
|
|
use codex_mcp::McpBinding;
|
|
use codex_otel::SessionTelemetry;
|
|
|
|
/// Request-scoped state that may change between model sampling requests.
|
|
pub(crate) struct StepContext {
|
|
pub(crate) turn: Arc<TurnContext>,
|
|
/// One immutable settings version captured before request preparation.
|
|
pub(crate) settings: Arc<ResolvedStepSettings>,
|
|
/// Telemetry context tagged with this sampling request's model.
|
|
pub(crate) session_telemetry: SessionTelemetry,
|
|
pub(crate) environments: TurnEnvironmentSnapshot,
|
|
/// Capability roots bound to ready environments in this exact step.
|
|
pub(crate) selected_capability_roots: Vec<ResolvedSelectedCapabilityRoot>,
|
|
/// Executor-materialized capability files shared by MCP and skills in this exact step.
|
|
pub(crate) executor_capability_discovery: Option<Arc<ExecutorCapabilityDiscoverySnapshot>>,
|
|
/// The exact MCP connections, configuration, and catalog captured for this step.
|
|
pub(crate) mcp: Arc<McpBinding>,
|
|
/// The finalized tool plan advertised and executed for this exact sampling request.
|
|
pub(crate) tool_router: Arc<ToolRouter>,
|
|
/// The canonical AGENTS.md value observed with this environment snapshot.
|
|
pub(crate) loaded_agents_md: Option<Arc<LoadedAgentsMd>>,
|
|
}
|