aether-sessions 0.1.1

Persisted session logs and transcript reconstruction for Aether
Documentation
use std::path::PathBuf;

#[derive(Debug, thiserror::Error)]
pub enum SessionIndexError {
    #[error("could not resolve Aether home; set AETHER_HOME or HOME")]
    MissingAetherHome,
    #[error("io error: {0}")]
    Io(#[from] std::io::Error),
    #[error("sqlite error: {0}")]
    Sqlx(#[from] sqlx::Error),
    #[error("sqlite migration error: {0}")]
    Migrate(#[from] sqlx::migrate::MigrateError),
    #[error("json error in {path} line {line_number}: {source}")]
    JsonLine { path: PathBuf, line_number: usize, source: serde_json::Error },
    #[error("invalid session metadata in {path}: {message}")]
    InvalidMetadata { path: PathBuf, message: String },
    #[error("query is empty")]
    EmptyQuery,
    #[error("query timed out after {timeout_ms}ms")]
    QueryTimeout { timeout_ms: u64 },
    #[error("background ingest task failed: {0}")]
    BackgroundTask(#[from] tokio::task::JoinError),
    #[error("json serialization error: {0}")]
    Json(#[from] serde_json::Error),
}