use thiserror::Error;
#[derive(Debug, Error)]
pub enum SessionError {
#[error("session event log I/O error: {0}")]
Io(#[from] std::io::Error),
#[error("session event (de)serialization error: {0}")]
Serde(#[from] serde_json::Error),
#[error("session store database error: {0}")]
Db(#[from] zeph_db::SqlxError),
#[error("session not found: {0}")]
NotFound(String),
#[error("invalid fork point: {0}")]
InvalidForkPoint(String),
#[error("condensation range overlap: {0}")]
CondensationOverlap(String),
#[error("condensation summarization failed: {0}")]
Llm(#[from] zeph_llm::LlmError),
#[error("session event log at {0} is already locked by another process")]
AlreadyLocked(String),
#[error("invalid blob hash (must be a non-empty hex string): {0:?}")]
InvalidBlobHash(String),
}