Skip to main content

MemoryPanelStore

Trait MemoryPanelStore 

Source
pub trait MemoryPanelStore: StewardStore {
    // Required methods
    fn panel_realms<'life0, 'async_trait>(
        &'life0 self,
    ) -> Pin<Box<dyn Future<Output = Result<Vec<String>, AgentMemoryError>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait;
    fn record_by_id<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        realm: &'life1 str,
        memory_id: &'life2 str,
    ) -> Pin<Box<dyn Future<Output = Result<Option<MemoryRecord>, AgentMemoryError>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait,
             'life1: 'async_trait,
             'life2: 'async_trait;
    fn records_page<'life0, 'life1, 'life2, 'life3, 'life4, 'async_trait>(
        &'life0 self,
        realm: &'life1 str,
        scope_kind: Option<&'life2 str>,
        scope_key: Option<&'life3 str>,
        status_kind: Option<&'life4 str>,
        limit: usize,
        cursor: Option<(u64, String)>,
    ) -> Pin<Box<dyn Future<Output = Result<PanelRecordsPage, AgentMemoryError>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait,
             'life1: 'async_trait,
             'life2: 'async_trait,
             'life3: 'async_trait,
             'life4: 'async_trait;
    fn supersede_chain<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        realm: &'life1 str,
        memory_id: &'life2 str,
        max_len: usize,
    ) -> Pin<Box<dyn Future<Output = Result<Vec<MemoryRecord>, AgentMemoryError>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait,
             'life1: 'async_trait,
             'life2: 'async_trait;
    fn injection_log_for_record<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        realm: &'life1 str,
        record_id: &'life2 str,
        limit: usize,
    ) -> Pin<Box<dyn Future<Output = Result<Vec<InjectionLogEntry>, AgentMemoryError>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait,
             'life1: 'async_trait,
             'life2: 'async_trait;
    fn dream_runs<'life0, 'life1, 'async_trait>(
        &'life0 self,
        realm: &'life1 str,
        limit: usize,
    ) -> Pin<Box<dyn Future<Output = Result<Vec<PersistedDreamRun>, AgentMemoryError>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait,
             'life1: 'async_trait;
    fn open_dream_audit_verdicts<'life0, 'life1, 'async_trait>(
        &'life0 self,
        realm: &'life1 str,
        limit: usize,
    ) -> Pin<Box<dyn Future<Output = Result<Vec<DreamAuditVerdict>, AgentMemoryError>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait,
             'life1: 'async_trait;
    fn dream_history<'life0, 'life1, 'async_trait>(
        &'life0 self,
        realm: &'life1 str,
        max_runs: usize,
    ) -> Pin<Box<dyn Future<Output = Result<Vec<DreamRunAudit>, AgentMemoryError>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait,
             'life1: 'async_trait;
}
Expand description

The console Memory panel’s read API (§9.3): the ten read-only mobkit/memory/panel/* RPCs. Seven of the panel’s reads are steward reads (overview, proposals, quarantine, promotions, harvests, injection ledger, scope floors) — the StewardStore supertrait carries those; this trait adds the panel-only listing, lineage, and dream-ledger reads. Everything the panel renders is judgment-plane output, so requiring the steward surface is the honest capability bar, not an over-ask.

Required Methods§

Source

fn panel_realms<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = Result<Vec<String>, AgentMemoryError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Realms with store state (panel realm picker).

Source

fn record_by_id<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, realm: &'life1 str, memory_id: &'life2 str, ) -> Pin<Box<dyn Future<Output = Result<Option<MemoryRecord>, AgentMemoryError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

One record by id, any status.

Source

fn records_page<'life0, 'life1, 'life2, 'life3, 'life4, 'async_trait>( &'life0 self, realm: &'life1 str, scope_kind: Option<&'life2 str>, scope_key: Option<&'life3 str>, status_kind: Option<&'life4 str>, limit: usize, cursor: Option<(u64, String)>, ) -> Pin<Box<dyn Future<Output = Result<PanelRecordsPage, AgentMemoryError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, 'life3: 'async_trait, 'life4: 'async_trait,

Panel record listing: optional scope/status filters, newest-updated first, keyset cursor. Any status is visible here — the panel is an inspection surface and renders status explicitly.

Source

fn supersede_chain<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, realm: &'life1 str, memory_id: &'life2 str, max_len: usize, ) -> Pin<Box<dyn Future<Output = Result<Vec<MemoryRecord>, AgentMemoryError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

Supersede lineage around one record, oldest first: ancestors via the supersedes pointer, the record itself, then committed successors via the Superseded { by } status link. When the tip has no committed successor, records claiming to supersede it (e.g. a quarantined supersede that left the prior active, §10.1) are appended without recursing — claims are visible but never extend the walk. Bounded by max_len, cycle-safe.

Source

fn injection_log_for_record<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, realm: &'life1 str, record_id: &'life2 str, limit: usize, ) -> Pin<Box<dyn Future<Output = Result<Vec<InjectionLogEntry>, AgentMemoryError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

Newest-first injection-ledger rows for one record (panel usage view).

Source

fn dream_runs<'life0, 'life1, 'async_trait>( &'life0 self, realm: &'life1 str, limit: usize, ) -> Pin<Box<dyn Future<Output = Result<Vec<PersistedDreamRun>, AgentMemoryError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Persisted dream runs, newest first.

Source

fn open_dream_audit_verdicts<'life0, 'life1, 'async_trait>( &'life0 self, realm: &'life1 str, limit: usize, ) -> Pin<Box<dyn Future<Output = Result<Vec<DreamAuditVerdict>, AgentMemoryError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Open (unresolved) audit verdicts, newest first — the operator review queue. One row per (run, record); the console dedups by record.

Source

fn dream_history<'life0, 'life1, 'async_trait>( &'life0 self, realm: &'life1 str, max_runs: usize, ) -> Pin<Box<dyn Future<Output = Result<Vec<DreamRunAudit>, AgentMemoryError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Dream-run summaries reconstructed from steward audit rows, newest run first. Bounded scan; runs older than the scan window fall off the panel, which is acceptable for a history summary surface.

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§