Skip to main content

Crate seshat_storage

Crate seshat_storage 

Source
Expand description

§Seshat Storage

SQLite storage layer for Seshat. Owns ALL database interaction — no other crate touches SQL directly.

Responsibilities:

  • Database lifecycle (Database::open, migrations, WAL mode)
  • Repository traits and SQLite implementations for nodes, edges, files_ir, and branches
  • FTS5 full-text search
  • Automatic database backups
  • Schema migrations via refinery (embed_migrations!)

Connection management: single writer (Arc<Mutex<Connection>>) with pooled read-only connections for concurrent queries (SQLite WAL mode).

Re-exports§

pub use backup::backup_if_needed;
pub use db::Database;
pub use db::StaleIrWipeReport;
pub use db::wipe_stale_ir_cache;
pub use error::StorageError;
pub use ir_serialization::IR_SCHEMA_VERSION;
pub use ir_serialization::deserialize_ir;
pub use ir_serialization::serialize_ir;
pub use repository::BranchMetadataRepository;
pub use repository::BranchRepository;
pub use repository::Decision;
pub use repository::DecisionNature;
pub use repository::DecisionRepository;
pub use repository::DecisionState;
pub use repository::DecisionWeight;
pub use repository::EdgeRepository;
pub use repository::EmbeddingInput;
pub use repository::EmbeddingRepository;
pub use repository::EmbeddingRow;
pub use repository::ExampleEvidence;
pub use repository::FileIRRepository;
pub use repository::NodeRepository;
pub use repository::PackageMetadataRepository;
pub use repository::PackageMetadataRow;
pub use repository::RepoMetadataRepository;
pub use repository::SqliteBranchMetadataRepository;
pub use repository::SqliteBranchRepository;
pub use repository::SqliteDecisionRepository;
pub use repository::SqliteEdgeRepository;
pub use repository::SqliteEmbeddingRepository;
pub use repository::SqliteFileIRRepository;
pub use repository::SqliteNodeRepository;
pub use repository::SqlitePackageMetadataRepository;
pub use repository::SqliteRepoMetadataRepository;
pub use repository::SqliteSubmoduleRepository;
pub use repository::SqliteSymbolIndexRepository;
pub use repository::SubmoduleInput;
pub use repository::SubmoduleRepository;
pub use repository::SubmoduleRow;
pub use repository::SymbolDefinitionRow;
pub use repository::SymbolImportRow;
pub use repository::SymbolIndexRepository;
pub use repository::SymbolKind;
pub use repository::bytes_to_f32s;
pub use repository::extract_definitions;
pub use repository::extract_imports;
pub use repository::f32s_to_bytes;

Modules§

backup
Automatic database backup logic.
db
Database lifecycle: open, WAL mode, migrations.
error
ir_serialization
Postcard IR serialization with version prefix (ADR-16).
repository
Repository traits and SQLite implementations for Seshat’s knowledge graph.