SessionState

Struct SessionState 

Source
pub struct SessionState {
    pub session_id: String,
    pub project_root: Option<PathBuf>,
    pub log_path: Option<PathBuf>,
    pub start_time: DateTime<Utc>,
    pub last_activity: DateTime<Utc>,
    pub model: Option<String>,
    pub context_window_limit: Option<u64>,
    pub current_usage: ContextWindowUsage,
    pub current_reasoning_tokens: i32,
    pub error_count: u32,
    pub event_count: usize,
    pub turn_count: usize,
}
Expand description

Real-time session state for live monitoring and watch operations.

Tracks cumulative metrics, token usage, and context window state as events stream in. Used by the watch service to provide live updates.

Fields§

§session_id: String

Session UUID.

§project_root: Option<PathBuf>

Project root directory, if known.

§log_path: Option<PathBuf>

Path to the session’s log file.

§start_time: DateTime<Utc>

Session start timestamp.

§last_activity: DateTime<Utc>

Timestamp of the most recent event.

§model: Option<String>

Model name/ID being used in this session.

§context_window_limit: Option<u64>

Maximum context window size for the model.

§current_usage: ContextWindowUsage

Current cumulative token usage.

§current_reasoning_tokens: i32

Current cumulative reasoning tokens (o1-style extended thinking).

§error_count: u32

Count of errors encountered so far.

§event_count: usize

Total number of events processed.

§turn_count: usize

Total number of user turns.

Implementations§

Source§

impl SessionState

Source

pub fn new( session_id: String, project_root: Option<PathBuf>, log_path: Option<PathBuf>, start_time: DateTime<Utc>, ) -> Self

Source

pub fn total_input_side_tokens(&self) -> i32

Source

pub fn total_output_side_tokens(&self) -> i32

Source

pub fn total_tokens(&self) -> TokenCount

Get total tokens as type-safe TokenCount

Source

pub fn context_limit(&self) -> Option<ContextLimit>

Get context limit as type-safe ContextLimit

Trait Implementations§

Source§

impl Clone for SessionState

Source§

fn clone(&self) -> SessionState

Returns a duplicate of the value. Read more
1.0.0 · Source§

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

Performs copy-assignment from source. Read more
Source§

impl Debug for SessionState

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> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

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.