Skip to main content

ResumeSessionConfig

Struct ResumeSessionConfig 

Source
#[non_exhaustive]
pub struct ResumeSessionConfig {
Show 37 fields pub session_id: SessionId, pub client_name: Option<String>, pub reasoning_effort: Option<String>, pub streaming: Option<bool>, pub system_message: Option<SystemMessageConfig>, pub tools: Option<Vec<Tool>>, pub available_tools: Option<Vec<String>>, pub excluded_tools: Option<Vec<String>>, pub mcp_servers: Option<HashMap<String, McpServerConfig>>, pub enable_config_discovery: Option<bool>, pub request_user_input: Option<bool>, pub request_permission: Option<bool>, pub request_exit_plan_mode: Option<bool>, pub request_auto_mode_switch: Option<bool>, pub request_elicitation: Option<bool>, pub skill_directories: Option<Vec<PathBuf>>, pub instruction_directories: Option<Vec<PathBuf>>, 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 config_dir: Option<PathBuf>, pub working_directory: Option<PathBuf>, pub github_token: Option<String>, pub include_sub_agent_streaming_events: Option<bool>, pub commands: Option<Vec<CommandDefinition>>, pub session_fs_provider: Option<Arc<dyn SessionFsProvider>>, pub disable_resume: Option<bool>, pub continue_pending_work: Option<bool>, pub handler: Option<Arc<dyn SessionHandler>>, pub hooks_handler: Option<Arc<dyn SessionHooks>>, pub transform: Option<Arc<dyn SystemMessageTransform>>, /* 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.

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.

§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 tools to re-supply on resume.

§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.

§enable_config_discovery: Option<bool>

Enable config discovery on resume.

§request_user_input: Option<bool>

Enable the ask_user tool.

§request_permission: Option<bool>

Enable permission request RPCs.

§request_exit_plan_mode: Option<bool>

Enable exit-plan-mode request RPCs.

§request_auto_mode_switch: Option<bool>

Enable auto-mode-switch request RPCs on resume. Defaults to Some(true) via ResumeSessionConfig::new. See SessionConfig::request_auto_mode_switch for details.

§request_elicitation: Option<bool>

Advertise elicitation provider capability on resume.

§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.

§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.

§config_dir: 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.

§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.

§disable_resume: Option<bool>

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

§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.

§handler: Option<Arc<dyn SessionHandler>>

Session-level event handler. See SessionConfig::handler.

§hooks_handler: Option<Arc<dyn SessionHooks>>

Session hook handler. See SessionConfig::hooks_handler.

§transform: Option<Arc<dyn SystemMessageTransform>>

System-message transform. See SessionConfig::transform.

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_handler(self, handler: Arc<dyn SessionHandler>) -> Self

Install a custom SessionHandler for this 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_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

Wrap the configured handler so every permission request is auto-approved. See SessionConfig::approve_all_permissions for semantics.

Source

pub fn deny_all_permissions(self) -> Self

Wrap the configured handler so every permission request is auto-denied. See SessionConfig::deny_all_permissions for semantics.

Source

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

Wrap the configured handler with a predicate-based permission policy. See SessionConfig::approve_permissions_if for semantics.

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_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_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_enable_config_discovery(self, enable: bool) -> Self

Enable or disable CLI config discovery on resume.

Source

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

Enable the ask_user tool. Defaults to Some(true) via Self::new.

Source

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

Enable permission.request JSON-RPC calls. Defaults to Some(true).

Source

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

Enable exitPlanMode.request JSON-RPC calls. Defaults to Some(true).

Source

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

Enable autoModeSwitch.request JSON-RPC calls. Defaults to Some(true).

Source

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

Advertise elicitation provider capability on resume. Defaults to Some(true).

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_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_config_dir(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_disable_resume(self, disable: 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.

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
Source§

impl<'de> Deserialize<'de> for ResumeSessionConfig

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl Serialize for ResumeSessionConfig

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. 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
Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,