pub fn create_subagent_context(
parent_context: &ToolUseContext,
overrides: Option<&SubagentContextOverrides>,
) -> ToolUseContextExpand description
Creates an isolated ToolUseContext for subagents.
By default, ALL mutable state is isolated to prevent interference:
- read_file_state: cloned from parent
- abort_controller: new controller linked to parent (parent abort propagates)
- get_app_state: wrapped to set should_avoid_permission_prompts
- All mutation callbacks (set_app_state, etc.): no-op
- Fresh collections: nested_memory_attachment_triggers, tool_decisions
Callers can:
- Override specific fields via the overrides parameter
- Explicitly opt-in to sharing specific callbacks (share_set_app_state, etc.)