Skip to main content

ResumeSessionConfig

Struct ResumeSessionConfig 

Source
#[non_exhaustive]
pub struct ResumeSessionConfig {
Show 63 fields pub session_id: SessionId, pub client_name: Option<String>, pub reasoning_effort: Option<String>, pub reasoning_summary: Option<ReasoningSummary>, pub context_tier: Option<String>, pub streaming: Option<bool>, pub system_message: Option<SystemMessageConfig>, pub tools: Option<Vec<Tool>>, pub canvases: Option<Vec<CanvasDeclaration>>, pub canvas_handler: Option<Arc<dyn CanvasHandler>>, pub open_canvases: Option<Vec<OpenCanvasInstance>>, pub request_canvas_renderer: Option<bool>, pub request_extensions: Option<bool>, pub extension_sdk_path: Option<String>, pub extension_info: Option<ExtensionInfo>, pub available_tools: Option<Vec<String>>, pub excluded_tools: Option<Vec<String>>, pub mcp_servers: Option<HashMap<String, McpServerConfig>>, pub mcp_oauth_token_storage: Option<String>, pub enable_config_discovery: Option<bool>, pub skip_embedding_retrieval: Option<bool>, pub embedding_cache_storage: Option<String>, pub organization_custom_instructions: Option<String>, pub enable_on_demand_instruction_discovery: Option<bool>, pub enable_file_hooks: Option<bool>, pub enable_host_git_operations: Option<bool>, pub enable_session_store: Option<bool>, pub enable_skills: Option<bool>, pub enable_mcp_apps: Option<bool>, pub skill_directories: Option<Vec<PathBuf>>, pub instruction_directories: Option<Vec<PathBuf>>, pub plugin_directories: Option<Vec<PathBuf>>, pub large_output: Option<LargeToolOutputConfig>, pub disabled_skills: Option<Vec<String>>, pub hooks: Option<bool>, pub custom_agents: Option<Vec<CustomAgentConfig>>, pub default_agent: Option<DefaultAgentConfig>, pub agent: Option<String>, pub infinite_sessions: Option<InfiniteSessionConfig>, pub provider: Option<ProviderConfig>, pub enable_session_telemetry: Option<bool>, pub model_capabilities: Option<ModelCapabilitiesOverride>, pub memory: Option<MemoryConfiguration>, pub config_directory: Option<PathBuf>, pub working_directory: Option<PathBuf>, pub github_token: Option<String>, pub remote_session: Option<RemoteSessionMode>, pub include_sub_agent_streaming_events: Option<bool>, pub commands: Option<Vec<CommandDefinition>>, pub session_fs_provider: Option<Arc<dyn SessionFsProvider>>, pub suppress_resume_event: Option<bool>, pub continue_pending_work: Option<bool>, pub permission_handler: Option<Arc<dyn PermissionHandler>>, pub elicitation_handler: Option<Arc<dyn ElicitationHandler>>, pub user_input_handler: Option<Arc<dyn UserInputHandler>>, pub exit_plan_mode_handler: Option<Arc<dyn ExitPlanModeHandler>>, pub auto_mode_switch_handler: Option<Arc<dyn AutoModeSwitchHandler>>, pub hooks_handler: Option<Arc<dyn SessionHooks>>, pub system_message_transform: Option<Arc<dyn SystemMessageTransform>>, pub skip_custom_instructions: Option<bool>, pub custom_agents_local_only: Option<bool>, pub coauthor_enabled: Option<bool>, pub manage_schedule_enabled: Option<bool>, /* private fields */
}
Expand description

Configuration for resuming an existing session via the session.resume RPC.

See SessionConfig for the construction patterns (chained with_* builder vs. direct field assignment for Option<T> pass-through) and the note on snake_case vs. camelCase field naming. This config is not itself serializable — call ResumeSessionConfig::into_wire (crate-private) to produce the wire payload.

Fields (Non-exhaustive)§

This struct is marked as non-exhaustive
Non-exhaustive structs could have additional fields added in future. Therefore, non-exhaustive structs cannot be constructed in external crates using the traditional Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.
§session_id: SessionId

ID of the session to resume.

§client_name: Option<String>

Application name sent as User-Agent context.

§reasoning_effort: Option<String>

Desired reasoning effort to apply after resuming the session.

§reasoning_summary: Option<ReasoningSummary>

Reasoning summary mode to apply after resuming the session. Use ReasoningSummary::None to suppress summary output regardless of whether reasoning is enabled.

§context_tier: Option<String>

Context window tier to apply after resuming the session. Use "long_context" to pin the session to the long-context tier.

§streaming: Option<bool>

Enable streaming token deltas.

§system_message: Option<SystemMessageConfig>

Re-supply the system message so the agent retains workspace context across CLI process restarts.

§tools: Option<Vec<Tool>>

Client-defined tool declarations to re-supply on resume.

§canvases: Option<Vec<CanvasDeclaration>>

Canvas declarations this connection provides to the runtime.

§canvas_handler: Option<Arc<dyn CanvasHandler>>

Provider-side canvas lifecycle handler. See SessionConfig::canvas_handler.

§open_canvases: Option<Vec<OpenCanvasInstance>>

Open canvas instances the caller knows were open before this resume.

§request_canvas_renderer: Option<bool>

Request canvas renderer tools for this connection.

§request_extensions: Option<bool>

Request extension tools and dispatch for this connection.

§extension_sdk_path: Option<String>

Optional override path to a copilot-sdk/ folder to inject into extension subprocesses for this session on resume. See SessionConfig::extension_sdk_path.

§extension_info: Option<ExtensionInfo>

Stable extension identity for canvas/tool providers on this connection.

§available_tools: Option<Vec<String>>

Allowlist of tool names the agent may use.

§excluded_tools: Option<Vec<String>>

Blocklist of built-in tool names.

§mcp_servers: Option<HashMap<String, McpServerConfig>>

Re-supply MCP servers so they remain available after app restart.

§mcp_oauth_token_storage: Option<String>

Controls how MCP OAuth tokens are stored for this session. See SessionConfig::mcp_oauth_token_storage for details.

§enable_config_discovery: Option<bool>

Enable config discovery on resume.

§skip_embedding_retrieval: Option<bool>

When true, skips embedding retrieval on resume.

§embedding_cache_storage: Option<String>

Controls how the embedding cache is stored for this session.

§organization_custom_instructions: Option<String>

Organization-level custom instructions to apply on resume.

§enable_on_demand_instruction_discovery: Option<bool>

When true, enables on-demand instruction discovery on resume.

§enable_file_hooks: Option<bool>

When true, enables file hooks on resume.

§enable_host_git_operations: Option<bool>

When true, allows host Git operations on resume.

§enable_session_store: Option<bool>

When true, enables the session store on resume.

§enable_skills: Option<bool>

When true, enables skills on resume.

§enable_mcp_apps: Option<bool>

Experimental. This option is part of an experimental wire-protocol surface (SEP-1865) and may change or be removed in a future release.

Enable MCP Apps (SEP-1865) UI passthrough on resume. See SessionConfig::enable_mcp_apps. Defaults to None (treated as false).

§skill_directories: Option<Vec<PathBuf>>

Skill directory paths passed through to the GitHub Copilot CLI on resume.

§instruction_directories: Option<Vec<PathBuf>>

Additional directories to search for custom instruction files on resume. Forwarded to the CLI; not the same as skill_directories.

§plugin_directories: Option<Vec<PathBuf>>

Open Plugin directory paths passed through to the CLI on resume.

§large_output: Option<LargeToolOutputConfig>

Configuration for large tool output handling, forwarded to the CLI on resume.

§disabled_skills: Option<Vec<String>>

Skill names to disable on resume.

§hooks: Option<bool>

Enable session hooks on resume.

§custom_agents: Option<Vec<CustomAgentConfig>>

Custom agents to re-supply on resume.

§default_agent: Option<DefaultAgentConfig>

Configures the built-in default agent on resume.

§agent: Option<String>

Name of the custom agent to activate.

§infinite_sessions: Option<InfiniteSessionConfig>

Re-supply infinite session configuration on resume.

§provider: Option<ProviderConfig>

Re-supply BYOK provider configuration on resume.

§enable_session_telemetry: Option<bool>

Enables or disables internal session telemetry for this session.

When Some(false), disables session telemetry. When None or Some(true), telemetry is enabled for GitHub-authenticated sessions. When a custom provider is configured, session telemetry is always disabled regardless of this setting. This is independent of ClientOptions::telemetry.

§model_capabilities: Option<ModelCapabilitiesOverride>

Per-property model capability overrides on resume.

§memory: Option<MemoryConfiguration>

Per-session configuration for the runtime memory feature on resume.

§config_directory: Option<PathBuf>

Override the default configuration directory location on resume.

§working_directory: Option<PathBuf>

Per-session working directory on resume.

§github_token: Option<String>

Per-session GitHub token on resume. See SessionConfig::github_token.

§remote_session: Option<RemoteSessionMode>

Per-session remote behavior control on resume. See SessionConfig::remote_session.

§include_sub_agent_streaming_events: Option<bool>

Forward sub-agent streaming events to this connection on resume.

§commands: Option<Vec<CommandDefinition>>

Slash commands registered for this session on resume. See SessionConfig::commands — commands are not persisted server-side, so the resume payload re-supplies the registration.

§session_fs_provider: Option<Arc<dyn SessionFsProvider>>

Custom session filesystem provider. Required on resume when the Client was started with ClientOptions::session_fs. See SessionConfig::session_fs_provider.

§suppress_resume_event: Option<bool>

Force-fail resume if the session does not exist on disk, instead of silently starting a new session. Wire field name stays disableResume.

§continue_pending_work: Option<bool>

When true, instructs the runtime to continue any tool calls or permission requests that were pending when the previous connection was dropped. Use this together with Client::force_stop to hand off a session from one process to another without losing in-flight work.

§permission_handler: Option<Arc<dyn PermissionHandler>>

Optional permission-request handler. See SessionConfig::permission_handler.

§elicitation_handler: Option<Arc<dyn ElicitationHandler>>

Optional elicitation handler. See SessionConfig::elicitation_handler.

§user_input_handler: Option<Arc<dyn UserInputHandler>>

Optional user-input handler. See SessionConfig::user_input_handler.

§exit_plan_mode_handler: Option<Arc<dyn ExitPlanModeHandler>>

Optional exit-plan-mode handler. See SessionConfig::exit_plan_mode_handler.

§auto_mode_switch_handler: Option<Arc<dyn AutoModeSwitchHandler>>

Optional auto-mode-switch handler. See SessionConfig::auto_mode_switch_handler.

§hooks_handler: Option<Arc<dyn SessionHooks>>

Session hook handler. See SessionConfig::hooks_handler.

§system_message_transform: Option<Arc<dyn SystemMessageTransform>>

System-message transform. See SessionConfig::system_message_transform.

§skip_custom_instructions: Option<bool>§custom_agents_local_only: Option<bool>§coauthor_enabled: Option<bool>§manage_schedule_enabled: Option<bool>

Implementations§

Source§

impl ResumeSessionConfig

Source

pub fn new(session_id: SessionId) -> Self

Construct a ResumeSessionConfig with the given session ID and all other fields left unset. Combine with .with_* builders or struct update syntax (..ResumeSessionConfig::new(id)) to populate the fields you need.

Source

pub fn with_permission_handler( self, handler: Arc<dyn PermissionHandler>, ) -> Self

Install a PermissionHandler for the resumed session.

Source

pub fn with_elicitation_handler( self, handler: Arc<dyn ElicitationHandler>, ) -> Self

Install an ElicitationHandler for the resumed session.

Source

pub fn with_user_input_handler(self, handler: Arc<dyn UserInputHandler>) -> Self

Install a UserInputHandler for the resumed session.

Source

pub fn with_exit_plan_mode_handler( self, handler: Arc<dyn ExitPlanModeHandler>, ) -> Self

Install an ExitPlanModeHandler for the resumed session.

Source

pub fn with_auto_mode_switch_handler( self, handler: Arc<dyn AutoModeSwitchHandler>, ) -> Self

Install an AutoModeSwitchHandler for the resumed session.

Source

pub fn with_hooks(self, hooks: Arc<dyn SessionHooks>) -> Self

Install a SessionHooks handler. Automatically enables the wire-level hooks flag on session resumption.

Source

pub fn with_system_message_transform( self, transform: Arc<dyn SystemMessageTransform>, ) -> Self

Source

pub fn with_commands(self, commands: Vec<CommandDefinition>) -> Self

Register slash commands for the resumed session. See SessionConfig::with_commands — commands are not persisted server-side, so the resume payload re-supplies the registration.

Source

pub fn with_session_fs_provider( self, provider: Arc<dyn SessionFsProvider>, ) -> Self

Install a SessionFsProvider backing the resumed session’s filesystem. See SessionConfig::with_session_fs_provider.

Source

pub fn approve_all_permissions(self) -> Self

Auto-approve every permission request on the resumed session. See SessionConfig::approve_all_permissions.

Source

pub fn deny_all_permissions(self) -> Self

Auto-deny every permission request on the resumed session. See SessionConfig::deny_all_permissions.

Source

pub fn approve_permissions_if<F>(self, predicate: F) -> Self
where F: Fn(&PermissionRequestData) -> bool + Send + Sync + 'static,

Apply a closure-based permission policy on the resumed session. See SessionConfig::approve_permissions_if.

Source

pub fn with_client_name(self, name: impl Into<String>) -> Self

Set the application name sent as User-Agent context.

Source

pub fn with_reasoning_effort(self, effort: impl Into<String>) -> Self

Set the reasoning effort to apply on resume.

Source

pub fn with_reasoning_summary(self, summary: ReasoningSummary) -> Self

Source

pub fn with_context_tier(self, tier: impl Into<String>) -> Self

Set the context window tier to apply on resume (e.g. "default", "long_context").

Source

pub fn with_streaming(self, streaming: bool) -> Self

Enable streaming token deltas via assistant.message_delta events.

Source

pub fn with_system_message(self, system_message: SystemMessageConfig) -> Self

Re-supply the system message so the agent retains workspace context across CLI process restarts.

Source

pub fn with_tools<I: IntoIterator<Item = Tool>>(self, tools: I) -> Self

Re-supply client-defined tools on resume.

Source

pub fn with_canvases<I: IntoIterator<Item = CanvasDeclaration>>( self, canvases: I, ) -> Self

Re-supply canvas declarations on resume.

Source

pub fn with_canvas_handler(self, handler: Arc<dyn CanvasHandler>) -> Self

Install the provider-side CanvasHandler for the resumed session.

Source

pub fn with_open_canvases<I: IntoIterator<Item = OpenCanvasInstance>>( self, open_canvases: I, ) -> Self

Seed open canvas instances that were visible before resuming.

Source

pub fn with_request_canvas_renderer(self, request: bool) -> Self

Request host canvas renderer tools for this connection on resume.

Source

pub fn with_request_extensions(self, request: bool) -> Self

Request extension tools and dispatch for this connection on resume.

Source

pub fn with_extension_sdk_path(self, path: impl Into<String>) -> Self

Override the bundled @github/copilot-sdk drop injected into extension subprocesses for this resumed session. Invalid paths fall back to the bundled SDK silently.

Source

pub fn with_extension_info(self, extension_info: ExtensionInfo) -> Self

Set stable extension identity metadata for this connection on resume.

Source

pub fn with_available_tools<I, S>(self, tools: I) -> Self
where I: IntoIterator<Item = S>, S: Into<String>,

Set the allowlist of tool names the agent may use.

Source

pub fn with_excluded_tools<I, S>(self, tools: I) -> Self
where I: IntoIterator<Item = S>, S: Into<String>,

Set the blocklist of built-in tool names the agent must not use.

Source

pub fn with_mcp_servers(self, servers: HashMap<String, McpServerConfig>) -> Self

Re-supply MCP server configurations on resume.

Source

pub fn with_mcp_oauth_token_storage(self, mode: impl Into<String>) -> Self

Set MCP OAuth token storage mode on resume. See SessionConfig::with_mcp_oauth_token_storage for details.

Source

pub fn with_embedding_cache_storage( self, embedding_cache_storage: impl Into<String>, ) -> Self

Set embedding cache storage mode on resume.

Source

pub fn with_enable_config_discovery(self, enable: bool) -> Self

Enable or disable CLI config discovery on resume.

Source

pub fn with_skip_embedding_retrieval(self, value: bool) -> Self

Source

pub fn with_organization_custom_instructions( self, instructions: impl Into<String>, ) -> Self

Source

pub fn with_enable_on_demand_instruction_discovery(self, value: bool) -> Self

Source

pub fn with_enable_file_hooks(self, value: bool) -> Self

Source

pub fn with_enable_host_git_operations(self, value: bool) -> Self

Source

pub fn with_enable_session_store(self, value: bool) -> Self

Source

pub fn with_enable_skills(self, value: bool) -> Self

Source

pub fn with_enable_mcp_apps(self, enable: bool) -> Self

Experimental. This method is part of an experimental wire-protocol surface (SEP-1865) and may change or be removed in a future release.

Enable MCP Apps (SEP-1865) UI passthrough on resume. Defaults to None (treated as false). See SessionConfig::enable_mcp_apps.

Source

pub fn with_skill_directories<I, P>(self, paths: I) -> Self
where I: IntoIterator<Item = P>, P: Into<PathBuf>,

Set skill directory paths passed through to the CLI on resume.

Source

pub fn with_instruction_directories<I, P>(self, paths: I) -> Self
where I: IntoIterator<Item = P>, P: Into<PathBuf>,

Set additional directories to search for custom instruction files on resume. Forwarded to the CLI; not the same as with_skill_directories.

Source

pub fn with_plugin_directories<I, P>(self, paths: I) -> Self
where I: IntoIterator<Item = P>, P: Into<PathBuf>,

Set Open Plugin directory paths passed through to the CLI on resume.

Source

pub fn with_large_output(self, config: LargeToolOutputConfig) -> Self

Set the LargeToolOutputConfig forwarded to the CLI on resume.

Source

pub fn with_disabled_skills<I, S>(self, names: I) -> Self
where I: IntoIterator<Item = S>, S: Into<String>,

Set the names of skills to disable on resume.

Source

pub fn with_custom_agents<I: IntoIterator<Item = CustomAgentConfig>>( self, agents: I, ) -> Self

Re-supply custom agents on resume.

Source

pub fn with_default_agent(self, agent: DefaultAgentConfig) -> Self

Configure the built-in default agent on resume.

Source

pub fn with_agent(self, name: impl Into<String>) -> Self

Activate a named custom agent on resume.

Source

pub fn with_infinite_sessions(self, config: InfiniteSessionConfig) -> Self

Re-supply infinite session configuration on resume.

Source

pub fn with_provider(self, provider: ProviderConfig) -> Self

Re-supply BYOK provider configuration on resume.

Source

pub fn with_enable_session_telemetry(self, enable: bool) -> Self

Enable or disable internal session telemetry on resume.

See Self::enable_session_telemetry for default and BYOK behavior.

Source

pub fn with_model_capabilities( self, capabilities: ModelCapabilitiesOverride, ) -> Self

Set per-property model capability overrides on resume.

Source

pub fn with_memory(self, memory: MemoryConfiguration) -> Self

Configure the runtime memory feature for the resumed session.

Source

pub fn with_config_directory(self, dir: impl Into<PathBuf>) -> Self

Override the default configuration directory location on resume.

Source

pub fn with_working_directory(self, dir: impl Into<PathBuf>) -> Self

Set the per-session working directory on resume.

Source

pub fn with_github_token(self, token: impl Into<String>) -> Self

Set the per-session GitHub token on resume. See SessionConfig::github_token for distinction from the client-level token.

Source

pub fn with_include_sub_agent_streaming_events(self, include: bool) -> Self

Forward sub-agent streaming events to this connection on resume.

Source

pub fn with_remote_session(self, mode: RemoteSessionMode) -> Self

Set per-session remote behavior on resume.

Source

pub fn with_suppress_resume_event(self, suppress: bool) -> Self

Force-fail resume if the session does not exist on disk, instead of silently starting a new session.

Source

pub fn with_continue_pending_work(self, continue_pending: bool) -> Self

When true, instructs the runtime to continue any tool calls or permission requests that were pending when the previous connection was dropped. Use this together with Client::force_stop to hand off a session from one process to another without losing in-flight work.

Source

pub fn with_skip_custom_instructions(self, value: bool) -> Self

Source

pub fn with_custom_agents_local_only(self, value: bool) -> Self

Source

pub fn with_coauthor_enabled(self, value: bool) -> Self

Source

pub fn with_manage_schedule_enabled(self, value: bool) -> Self

Trait Implementations§

Source§

impl Clone for ResumeSessionConfig

Source§

fn clone(&self) -> ResumeSessionConfig

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for ResumeSessionConfig

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> DynClone for T
where T: Clone,

Source§

fn __clone_box(&self, _: Private) -> *mut ()

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more