pub trait Store {
// Required methods
fn index(
&mut self,
project_id: &str,
content: &str,
meta: &SessionMeta,
) -> Result<String, Error>;
fn search(
&mut self,
project_id: &str,
query: &str,
limit: usize,
) -> Result<Vec<SearchResult>, Error>;
fn delete_by_session(
&mut self,
project_id: &str,
session_id: &str,
) -> Result<usize, Error>;
fn cleanup_stale(
&mut self,
project_id: &str,
max_age_secs: i64,
) -> Result<usize, Error>;
}