Skip to main content

starweaver_session/
error.rs

1//! Session store errors.
2
3use thiserror::Error;
4
5/// Session store failure.
6#[derive(Debug, Error)]
7pub enum SessionStoreError {
8    /// Record was not found.
9    #[error("session record not found: {0}")]
10    NotFound(String),
11    /// Record already exists.
12    #[error("session record already exists: {0}")]
13    AlreadyExists(String),
14    /// Optimistic revision or lifecycle conflict.
15    #[error("session record conflict: {0}")]
16    Conflict(String),
17    /// One idempotency key was reused for a different normalized command.
18    #[error("session idempotency conflict: {0}")]
19    IdempotencyConflict(String),
20    /// A trusted host retention or admission quota was exceeded.
21    #[error("session quota exceeded: {0}")]
22    QuotaExceeded(String),
23    /// The session already owns a live run admission.
24    #[error("session run conflict: {0}")]
25    RunConflict(String),
26    /// Store failed.
27    #[error("session store failed: {0}")]
28    Failed(String),
29}
30
31/// Result alias for session store operations.
32pub type SessionStoreResult<T> = Result<T, SessionStoreError>;
33
34impl From<SessionStoreError> for starweaver_context::AgentExecutorError {
35    fn from(error: SessionStoreError) -> Self {
36        Self::Failed(error.to_string())
37    }
38}