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§
Sourcefn 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 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).
Sourcefn 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 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.
Sourcefn 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 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.
Sourcefn 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 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.
Sourcefn 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 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).
Sourcefn 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 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.
Sourcefn 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 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.
Sourcefn 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,
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".