Use step settings for MCP request metadata (#40807)

## Why

MCP tool calls can be issued by a model step whose settings differ from the
turn's initial settings. Request metadata must describe the issuing step.

## What changed

- Build MCP tool-call metadata from the captured `StepContext` model and its
  effective reasoning effort.
- Populate `node_repl_disabled` from the issuing step while leaving turn-owned
  Responses metadata unchanged.
- Apply the same step-scoped values to MCP requests emitted by stop hooks.

## Testing

Add coverage for configured and model-default reasoning effort, model changes,
Node REPL restrictions, and preservation of the original step and turn
metadata.

GitOrigin-RevId: f9cce52fbe559f15437bd19d699b657229c0d145
This commit is contained in:
Abhinav authored and copyberry committed 2026-08-26 05:58:04 +00:00
1 parent 3e4707b34b
commit 04907ab95a
8 files changed
+98 -14

No files matched your search

+1 -3
View File
@@ -410,9 +410,7 @@ impl TurnContext {
/// Legacy: returns the frozen initial-turn reasoning effort, including the initial model default.
/// Step-scoped consumers should use their captured `StepContext::settings`.
pub(crate) fn effective_reasoning_effort(&self) -> Option<ReasoningEffortConfig> {
self.reasoning_effort()
.or(self.model_info().default_reasoning_level.as_ref())
.cloned()
self.initial_settings.effective_reasoning_effort()
}
/// Legacy: returns the frozen initial-turn reasoning-effort label for tracing.