pub struct WorkspaceSnapshot {
pub session_id: Uuid,
pub repo_id: Uuid,
pub agent_id: String,
pub agent_name: String,
pub changeset_id: Uuid,
pub intent: String,
pub base_commit: String,
pub state: String,
pub mode: String,
}Expand description
A serializable point-in-time snapshot of a session workspace’s metadata.
This is what gets written to the L2 cache so that any pod in the cluster
can reconstruct the workspace context for a session it did not originally
create. It intentionally contains only plain, serializable fields — no
in-process state such as DashMap or Instant.
Fields§
§session_id: UuidThe workspace (changeset) UUID.
repo_id: UuidThe repository this workspace operates on.
agent_id: StringThe authenticated agent identifier (e.g. Clerk user ID or API key prefix).
agent_name: StringHuman-readable agent name assigned by the server (e.g. "agent-3").
changeset_id: UuidThe changeset UUID associated with this session.
intent: StringThe user-provided intent string for this session.
base_commit: StringThe Git commit hash that serves as the read-base for this workspace.
state: StringLifecycle state label (e.g. "active", "submitted", "merged").
mode: StringMode label ("ephemeral" or "persistent").
Trait Implementations§
Source§impl Clone for WorkspaceSnapshot
impl Clone for WorkspaceSnapshot
Source§fn clone(&self) -> WorkspaceSnapshot
fn clone(&self) -> WorkspaceSnapshot
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for WorkspaceSnapshot
impl Debug for WorkspaceSnapshot
Source§impl<'de> Deserialize<'de> for WorkspaceSnapshot
impl<'de> Deserialize<'de> for WorkspaceSnapshot
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl PartialEq for WorkspaceSnapshot
impl PartialEq for WorkspaceSnapshot
Source§impl Serialize for WorkspaceSnapshot
impl Serialize for WorkspaceSnapshot
impl Eq for WorkspaceSnapshot
impl StructuralPartialEq for WorkspaceSnapshot
Auto Trait Implementations§
impl Freeze for WorkspaceSnapshot
impl RefUnwindSafe for WorkspaceSnapshot
impl Send for WorkspaceSnapshot
impl Sync for WorkspaceSnapshot
impl Unpin for WorkspaceSnapshot
impl UnsafeUnpin for WorkspaceSnapshot
impl UnwindSafe for WorkspaceSnapshot
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more