pub struct SessionStore { /* private fields */ }Expand description
Session store for SRBN persistence
Implementations§
Source§impl SessionStore
impl SessionStore
Sourcepub fn new() -> Result<SessionStore, Error>
pub fn new() -> Result<SessionStore, Error>
Create a new session store with default path
Sourcepub fn open(path: &PathBuf) -> Result<SessionStore, Error>
pub fn open(path: &PathBuf) -> Result<SessionStore, Error>
Open a session store at the given path
Sourcepub fn default_db_path() -> Result<PathBuf, Error>
pub fn default_db_path() -> Result<PathBuf, Error>
Get the default database path (~/.local/share/perspt/perspt.db or similar)
Sourcepub fn create_session(&self, session: &SessionRecord) -> Result<(), Error>
pub fn create_session(&self, session: &SessionRecord) -> Result<(), Error>
Create a new session
Sourcepub fn update_merkle_root(
&self,
session_id: &str,
merkle_root: &[u8],
) -> Result<(), Error>
pub fn update_merkle_root( &self, session_id: &str, merkle_root: &[u8], ) -> Result<(), Error>
Update session merkle root
Sourcepub fn record_node_state(&self, record: &NodeStateRecord) -> Result<(), Error>
pub fn record_node_state(&self, record: &NodeStateRecord) -> Result<(), Error>
Record node state
Sourcepub fn record_energy(&self, record: &EnergyRecord) -> Result<(), Error>
pub fn record_energy(&self, record: &EnergyRecord) -> Result<(), Error>
Record energy measurement
Sourcepub fn get_session(
&self,
session_id: &str,
) -> Result<Option<SessionRecord>, Error>
pub fn get_session( &self, session_id: &str, ) -> Result<Option<SessionRecord>, Error>
Get session by ID
Sourcepub fn get_session_dir(&self, session_id: &str) -> Result<PathBuf, Error>
pub fn get_session_dir(&self, session_id: &str) -> Result<PathBuf, Error>
Get the directory for session artifacts (~/.local/share/perspt/sessions/<id>)
Sourcepub fn create_session_dir(&self, session_id: &str) -> Result<PathBuf, Error>
pub fn create_session_dir(&self, session_id: &str) -> Result<PathBuf, Error>
Ensure a session directory exists and return the path
Sourcepub fn get_energy_history(
&self,
session_id: &str,
node_id: &str,
) -> Result<Vec<EnergyRecord>, Error>
pub fn get_energy_history( &self, session_id: &str, node_id: &str, ) -> Result<Vec<EnergyRecord>, Error>
Get energy history for a node (query)
Sourcepub fn list_recent_sessions(
&self,
limit: usize,
) -> Result<Vec<SessionRecord>, Error>
pub fn list_recent_sessions( &self, limit: usize, ) -> Result<Vec<SessionRecord>, Error>
List recent sessions (newest first)
Sourcepub fn get_node_states(
&self,
session_id: &str,
) -> Result<Vec<NodeStateRecord>, Error>
pub fn get_node_states( &self, session_id: &str, ) -> Result<Vec<NodeStateRecord>, Error>
Get all node states for a session
Sourcepub fn update_session_status(
&self,
session_id: &str,
status: &str,
) -> Result<(), Error>
pub fn update_session_status( &self, session_id: &str, status: &str, ) -> Result<(), Error>
Update session status
Sourcepub fn record_llm_request(&self, record: &LlmRequestRecord) -> Result<(), Error>
pub fn record_llm_request(&self, record: &LlmRequestRecord) -> Result<(), Error>
Record an LLM request/response
Sourcepub fn get_llm_requests(
&self,
session_id: &str,
) -> Result<Vec<LlmRequestRecord>, Error>
pub fn get_llm_requests( &self, session_id: &str, ) -> Result<Vec<LlmRequestRecord>, Error>
Get LLM requests for a session
Sourcepub fn count_all_llm_requests(&self) -> Result<i64, Error>
pub fn count_all_llm_requests(&self) -> Result<i64, Error>
Count all LLM requests in the database (for debugging)
Sourcepub fn get_all_llm_requests(
&self,
limit: usize,
) -> Result<Vec<LlmRequestRecord>, Error>
pub fn get_all_llm_requests( &self, limit: usize, ) -> Result<Vec<LlmRequestRecord>, Error>
Get all LLM requests (for debugging)
Sourcepub fn record_structural_digest(
&self,
record: &StructuralDigestRecord,
) -> Result<(), Error>
pub fn record_structural_digest( &self, record: &StructuralDigestRecord, ) -> Result<(), Error>
Record a structural digest
Sourcepub fn get_structural_digests(
&self,
session_id: &str,
node_id: &str,
) -> Result<Vec<StructuralDigestRecord>, Error>
pub fn get_structural_digests( &self, session_id: &str, node_id: &str, ) -> Result<Vec<StructuralDigestRecord>, Error>
Get structural digests for a session and node
Sourcepub fn record_context_provenance(
&self,
record: &ContextProvenanceRecord,
) -> Result<(), Error>
pub fn record_context_provenance( &self, record: &ContextProvenanceRecord, ) -> Result<(), Error>
Record context provenance for a node
Sourcepub fn get_context_provenance(
&self,
session_id: &str,
node_id: &str,
) -> Result<Option<ContextProvenanceRecord>, Error>
pub fn get_context_provenance( &self, session_id: &str, node_id: &str, ) -> Result<Option<ContextProvenanceRecord>, Error>
Get context provenance for a session and node
Sourcepub fn record_escalation_report(
&self,
record: &EscalationReportRecord,
) -> Result<(), Error>
pub fn record_escalation_report( &self, record: &EscalationReportRecord, ) -> Result<(), Error>
Record an escalation report
Sourcepub fn get_escalation_reports(
&self,
session_id: &str,
) -> Result<Vec<EscalationReportRecord>, Error>
pub fn get_escalation_reports( &self, session_id: &str, ) -> Result<Vec<EscalationReportRecord>, Error>
Get escalation reports for a session
Sourcepub fn record_rewrite(&self, record: &RewriteRecordRow) -> Result<(), Error>
pub fn record_rewrite(&self, record: &RewriteRecordRow) -> Result<(), Error>
Record a local graph rewrite
Sourcepub fn get_rewrite_records(
&self,
session_id: &str,
) -> Result<Vec<RewriteRecordRow>, Error>
pub fn get_rewrite_records( &self, session_id: &str, ) -> Result<Vec<RewriteRecordRow>, Error>
Get rewrite records for a session
Sourcepub fn record_sheaf_validation(
&self,
record: &SheafValidationRow,
) -> Result<(), Error>
pub fn record_sheaf_validation( &self, record: &SheafValidationRow, ) -> Result<(), Error>
Record a sheaf validation result
Sourcepub fn get_sheaf_validations(
&self,
session_id: &str,
node_id: &str,
) -> Result<Vec<SheafValidationRow>, Error>
pub fn get_sheaf_validations( &self, session_id: &str, node_id: &str, ) -> Result<Vec<SheafValidationRow>, Error>
Get sheaf validation results for a session and node
Sourcepub fn record_provisional_branch(
&self,
record: &ProvisionalBranchRow,
) -> Result<(), Error>
pub fn record_provisional_branch( &self, record: &ProvisionalBranchRow, ) -> Result<(), Error>
Record a new provisional branch
Sourcepub fn update_branch_state(
&self,
branch_id: &str,
new_state: &str,
) -> Result<(), Error>
pub fn update_branch_state( &self, branch_id: &str, new_state: &str, ) -> Result<(), Error>
Update a provisional branch state
Sourcepub fn get_provisional_branches(
&self,
session_id: &str,
) -> Result<Vec<ProvisionalBranchRow>, Error>
pub fn get_provisional_branches( &self, session_id: &str, ) -> Result<Vec<ProvisionalBranchRow>, Error>
Get all provisional branches for a session
Sourcepub fn get_live_branches_for_parent(
&self,
session_id: &str,
parent_node_id: &str,
) -> Result<Vec<ProvisionalBranchRow>, Error>
pub fn get_live_branches_for_parent( &self, session_id: &str, parent_node_id: &str, ) -> Result<Vec<ProvisionalBranchRow>, Error>
Get live (active/sealed) provisional branches depending on a parent node
Sourcepub fn flush_branches_for_parent(
&self,
session_id: &str,
parent_node_id: &str,
) -> Result<Vec<String>, Error>
pub fn flush_branches_for_parent( &self, session_id: &str, parent_node_id: &str, ) -> Result<Vec<String>, Error>
Mark all live branches for a parent as flushed
Sourcepub fn record_branch_lineage(
&self,
record: &BranchLineageRow,
) -> Result<(), Error>
pub fn record_branch_lineage( &self, record: &BranchLineageRow, ) -> Result<(), Error>
Record a branch lineage edge
Sourcepub fn get_child_branches(
&self,
parent_branch_id: &str,
) -> Result<Vec<String>, Error>
pub fn get_child_branches( &self, parent_branch_id: &str, ) -> Result<Vec<String>, Error>
Get child branch IDs for a parent branch
Sourcepub fn record_interface_seal(
&self,
record: &InterfaceSealRow,
) -> Result<(), Error>
pub fn record_interface_seal( &self, record: &InterfaceSealRow, ) -> Result<(), Error>
Record an interface seal
Sourcepub fn get_interface_seals(
&self,
session_id: &str,
node_id: &str,
) -> Result<Vec<InterfaceSealRow>, Error>
pub fn get_interface_seals( &self, session_id: &str, node_id: &str, ) -> Result<Vec<InterfaceSealRow>, Error>
Get all interface seals for a node
Sourcepub fn has_interface_seals(
&self,
session_id: &str,
node_id: &str,
) -> Result<bool, Error>
pub fn has_interface_seals( &self, session_id: &str, node_id: &str, ) -> Result<bool, Error>
Check whether a node has any interface seals
Sourcepub fn record_branch_flush(&self, record: &BranchFlushRow) -> Result<(), Error>
pub fn record_branch_flush(&self, record: &BranchFlushRow) -> Result<(), Error>
Record a branch flush decision
Sourcepub fn get_branch_flushes(
&self,
session_id: &str,
) -> Result<Vec<BranchFlushRow>, Error>
pub fn get_branch_flushes( &self, session_id: &str, ) -> Result<Vec<BranchFlushRow>, Error>
Get all branch flush records for a session
Sourcepub fn get_latest_node_states(
&self,
session_id: &str,
) -> Result<Vec<NodeStateRecord>, Error>
pub fn get_latest_node_states( &self, session_id: &str, ) -> Result<Vec<NodeStateRecord>, Error>
Get the latest node state snapshot per node for a session (for resume reconstruction).
Returns at most one record per node_id, picking the most recently created row.
Sourcepub fn record_task_graph_edge(
&self,
record: &TaskGraphEdgeRow,
) -> Result<(), Error>
pub fn record_task_graph_edge( &self, record: &TaskGraphEdgeRow, ) -> Result<(), Error>
Record a task graph edge (parent→child dependency)
Sourcepub fn get_task_graph_edges(
&self,
session_id: &str,
) -> Result<Vec<TaskGraphEdgeRow>, Error>
pub fn get_task_graph_edges( &self, session_id: &str, ) -> Result<Vec<TaskGraphEdgeRow>, Error>
Get all task graph edges for a session
Sourcepub fn get_children_of_node(
&self,
session_id: &str,
parent_node_id: &str,
) -> Result<Vec<String>, Error>
pub fn get_children_of_node( &self, session_id: &str, parent_node_id: &str, ) -> Result<Vec<String>, Error>
Get child node IDs for a parent in a session’s task graph
Sourcepub fn record_review_outcome(
&self,
record: &ReviewOutcomeRow,
) -> Result<(), Error>
pub fn record_review_outcome( &self, record: &ReviewOutcomeRow, ) -> Result<(), Error>
Record a review outcome (approval, rejection, edit request)
Sourcepub fn get_review_outcomes(
&self,
session_id: &str,
node_id: &str,
) -> Result<Vec<ReviewOutcomeRow>, Error>
pub fn get_review_outcomes( &self, session_id: &str, node_id: &str, ) -> Result<Vec<ReviewOutcomeRow>, Error>
Get all review outcomes for a node
Sourcepub fn get_latest_review_outcome(
&self,
session_id: &str,
node_id: &str,
) -> Result<Option<ReviewOutcomeRow>, Error>
pub fn get_latest_review_outcome( &self, session_id: &str, node_id: &str, ) -> Result<Option<ReviewOutcomeRow>, Error>
Get the most recent review outcome for a node
Sourcepub fn get_all_review_outcomes(
&self,
session_id: &str,
) -> Result<Vec<ReviewOutcomeRow>, Error>
pub fn get_all_review_outcomes( &self, session_id: &str, ) -> Result<Vec<ReviewOutcomeRow>, Error>
Get all review outcomes for a session (across all nodes).
Sourcepub fn record_verification_result(
&self,
record: &VerificationResultRow,
) -> Result<(), Error>
pub fn record_verification_result( &self, record: &VerificationResultRow, ) -> Result<(), Error>
Record a verification result snapshot for a node
Sourcepub fn get_verification_result(
&self,
session_id: &str,
node_id: &str,
) -> Result<Option<VerificationResultRow>, Error>
pub fn get_verification_result( &self, session_id: &str, node_id: &str, ) -> Result<Option<VerificationResultRow>, Error>
Get the latest verification result for a node
Sourcepub fn get_all_verification_results(
&self,
session_id: &str,
) -> Result<Vec<VerificationResultRow>, Error>
pub fn get_all_verification_results( &self, session_id: &str, ) -> Result<Vec<VerificationResultRow>, Error>
Get all verification results for a session (for status display)
Sourcepub fn record_artifact_bundle(
&self,
record: &ArtifactBundleRow,
) -> Result<(), Error>
pub fn record_artifact_bundle( &self, record: &ArtifactBundleRow, ) -> Result<(), Error>
Record an artifact bundle snapshot for a node
Sourcepub fn get_artifact_bundle(
&self,
session_id: &str,
node_id: &str,
) -> Result<Option<ArtifactBundleRow>, Error>
pub fn get_artifact_bundle( &self, session_id: &str, node_id: &str, ) -> Result<Option<ArtifactBundleRow>, Error>
Get the latest artifact bundle for a node
Auto Trait Implementations§
impl !Freeze for SessionStore
impl RefUnwindSafe for SessionStore
impl Send for SessionStore
impl Sync for SessionStore
impl Unpin for SessionStore
impl UnsafeUnpin for SessionStore
impl UnwindSafe for SessionStore
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more