Skip to content

Allow Rust callers to omit the automatic post-resume skill reload #2827

Description

@Chuxel

Problem

The Rust SDK's shared ordinary/prepared resume path awaits session.skills.reload after a successful session.resume response. Returned reload errors are logged and tolerated, but an unanswered request keeps resume pending. A caller that already owns skill reconciliation cannot currently omit this additional SDK-issued operation.

This mechanism is reproducible with a framed in-memory transport: acknowledge session.resume, then observe the automatic session.skills.reload request and withhold its response. No live runtime or production incident evidence is needed for this SDK-level reproduction.

Proposed behavior

Add a Rust-local ResumeSessionConfig::with_reload_skills(bool) option. Unset or true must retain existing awaited, best-effort behavior; explicit false must omit the automatic request entirely, without a timeout, detached task, or retry.

Keep mandatory resume validation, MCP-auth interest registration, options readiness, event/callback ownership, and cleanup unchanged. The option must not be serialized to runtime or AHP settings. It must not disable skills, imply catalog or disabled-preference freshness, gate continued/shared work, or cancel an already-issued operation. Explicit caller-managed session.rpc().skills().reload() must remain available.

SDK regression coverage

Use synthetic framed controls for ordinary/prepared omission, retained default/true settlement and returned errors, mandatory readiness, event/hook/provider callbacks, failure/cancellation/connection-loss cleanup, and unchanged wire configuration.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions