Skip to main content

SessionRpcHistory

Struct SessionRpcHistory 

Source
pub struct SessionRpcHistory<'a> { /* private fields */ }
Expand description

session.history.* RPCs.

Implementations§

Source§

impl<'a> SessionRpcHistory<'a>

Source

pub async fn compact(&self) -> Result<HistoryCompactResult, Error>

Compacts the session history to reduce context usage.

Wire method: session.history.compact.

§Returns

Compaction outcome with the number of tokens and messages removed, summary text, and the resulting context window breakdown.

Experimental. This API is part of an experimental wire-protocol surface and may change or be removed in future SDK or CLI releases. Pin both the SDK and CLI versions if your code depends on it.

Source

pub async fn compact_with_params( &self, params: HistoryCompactRequest, ) -> Result<HistoryCompactResult, Error>

Compacts the session history to reduce context usage.

Wire method: session.history.compact.

§Parameters
  • params - Optional compaction parameters.
§Returns

Compaction outcome with the number of tokens and messages removed, summary text, and the resulting context window breakdown.

Experimental. This API is part of an experimental wire-protocol surface and may change or be removed in future SDK or CLI releases. Pin both the SDK and CLI versions if your code depends on it.

Source

pub async fn truncate( &self, params: HistoryTruncateRequest, ) -> Result<HistoryTruncateResult, Error>

Truncates persisted session history to a specific event.

Wire method: session.history.truncate.

§Parameters
  • params - Identifier of the event to truncate to; this event and all later events are removed.
§Returns

Number of events that were removed by the truncation.

Experimental. This API is part of an experimental wire-protocol surface and may change or be removed in future SDK or CLI releases. Pin both the SDK and CLI versions if your code depends on it.

Source

pub async fn list_rewind_points( &self, ) -> Result<HistoryListRewindPointsResult, Error>

Lists the user turns that the session can rewind to. Never rejects for a busy session: rewind reads need the session’s file-change captures to be settled, so a session that still holds active work answers with unavailableReason: "session-busy" and no points, which the caller can retry.

Wire method: session.history.listRewindPoints.

§Returns

Rewind points and file-change-tracking availability for the session.

Experimental. This API is part of an experimental wire-protocol surface and may change or be removed in future SDK or CLI releases. Pin both the SDK and CLI versions if your code depends on it.

Source

pub async fn preview_rewind( &self, params: HistoryPreviewRewindRequest, ) -> Result<HistoryPreviewRewindResult, Error>

Previews the files that a conversation-and-files rewind would restore.

Wire method: session.history.previewRewind.

§Parameters
  • params - Event boundary to preview for conversation-and-files rewind.
§Returns

Files and aggregate changes for a prospective rewind.

Experimental. This API is part of an experimental wire-protocol surface and may change or be removed in future SDK or CLI releases. Pin both the SDK and CLI versions if your code depends on it.

Source

pub async fn rewind( &self, params: HistoryRewindRequest, ) -> Result<HistoryRewindResult, Error>

Rewinds the session conversation, optionally restoring files changed by the discarded turns. Not crash-atomic: file restore and conversation truncation are separate stores, applied in that order, so a process crash between them can leave the workspace rewound while the conversation still contains the discarded turns. There is no recovery journal; re-running the same rewind is the recovery path for a crash before truncation lands, since file restore is idempotent (already-restored files are reported as skipped) and truncation is re-derived from the still-retained boundary event. After truncation lands that boundary no longer exists, so the same request is rejected; the only stage that can still be outstanding is snapshot pruning, whose failure leaves orphan snapshots the capture store tolerates. The reverse inconsistency cannot occur, because truncation is never applied before file restore succeeds.

Wire method: session.history.rewind.

§Parameters
  • params - Boundary and mode for rewinding session history.
§Returns

Structured outcome of a rewind request.

Experimental. This API is part of an experimental wire-protocol surface and may change or be removed in future SDK or CLI releases. Pin both the SDK and CLI versions if your code depends on it.

Source

pub async fn cancel_background_compaction( &self, ) -> Result<HistoryCancelBackgroundCompactionResult, Error>

Cancels any in-progress background compaction on a local session.

Wire method: session.history.cancelBackgroundCompaction.

§Returns

Indicates whether an in-progress background compaction was cancelled.

Experimental. This API is part of an experimental wire-protocol surface and may change or be removed in future SDK or CLI releases. Pin both the SDK and CLI versions if your code depends on it.

Source

pub async fn abort_manual_compaction( &self, ) -> Result<HistoryAbortManualCompactionResult, Error>

Aborts any in-progress manual compaction on a local session.

Wire method: session.history.abortManualCompaction.

§Returns

Indicates whether an in-progress manual compaction was aborted.

Experimental. This API is part of an experimental wire-protocol surface and may change or be removed in future SDK or CLI releases. Pin both the SDK and CLI versions if your code depends on it.

Source

pub async fn summarize_for_handoff( &self, ) -> Result<HistorySummarizeForHandoffResult, Error>

Produces a markdown summary of the session’s conversation context for hand-off scenarios.

Wire method: session.history.summarizeForHandoff.

§Returns

Markdown summary of the conversation context (empty when not available).

Experimental. This API is part of an experimental wire-protocol surface and may change or be removed in future SDK or CLI releases. Pin both the SDK and CLI versions if your code depends on it.

Source

pub async fn clear_context( &self, params: HistoryClearContextRequest, ) -> Result<HistoryClearContextResult, Error>

Clears the session’s conversation history, keeping only system and developer messages, and seeds the fresh context window with a first user message. Must be called from inside a tool handler: the clear has to drop the results of the tool calls its wipe orphans, and it rejects when no tool call is in flight.

Wire method: session.history.clearContext.

§Parameters
  • params - Parameters for clearing the conversation and seeding the window that replaces it.
§Returns

What a successful clear removed. A clear that could not be applied rejects instead of reporting a count.

Experimental. This API is part of an experimental wire-protocol surface and may change or be removed in future SDK or CLI releases. Pin both the SDK and CLI versions if your code depends on it.

Trait Implementations§

Source§

impl<'a> Clone for SessionRpcHistory<'a>

Source§

fn clone(&self) -> SessionRpcHistory<'a>

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<'a> Copy for SessionRpcHistory<'a>

Auto Trait Implementations§

§

impl<'a> !RefUnwindSafe for SessionRpcHistory<'a>

§

impl<'a> !UnwindSafe for SessionRpcHistory<'a>

§

impl<'a> Freeze for SessionRpcHistory<'a>

§

impl<'a> Send for SessionRpcHistory<'a>

§

impl<'a> Sync for SessionRpcHistory<'a>

§

impl<'a> Unpin for SessionRpcHistory<'a>

§

impl<'a> UnsafeUnpin for SessionRpcHistory<'a>

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<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

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> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
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<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

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