pub struct LoopPersisted {
pub schema_version: u32,
pub config: BTreeMap<String, AnalyzerConfig>,
pub state: LoopState,
pub status_index: BTreeMap<String, RecStatus>,
pub audit_heads: BTreeMap<String, String>,
pub creators: BTreeMap<String, String>,
pub co_creators: BTreeMap<String, String>,
pub cooldowns: BTreeMap<String, i64>,
pub cooldown_strikes: BTreeMap<String, u32>,
pub applied: BTreeMap<String, AppliedRecord>,
pub measured: BTreeMap<String, Vec<Checkpoint>>,
pub outcomes: BTreeMap<String, Vec<OutcomeResult>>,
}Expand description
The whole loop persisted blob.
Fields§
§schema_version: u32§config: BTreeMap<String, AnalyzerConfig>Per-analyzer config, keyed by full analyzer id.
state: LoopState§status_index: BTreeMap<String, RecStatus>Rebuildable lifecycle cache: recommendation hash → status.
audit_heads: BTreeMap<String, String>Per-recommendation latest audit hash, for hash-chaining.
creators: BTreeMap<String, String>The creating actor per recommendation (for the self-approval block).
co_creators: BTreeMap<String, String>The principal that triggered the run which stored an LLM or external-command recommendation — the self-approval block fires against these too (the trigger must not approve their own model’s output). Omitted when empty: deterministic-only histories never carry the key.
cooldowns: BTreeMap<String, i64>Rejection cooldowns keyed by dedup_key → cooldown-until epoch-ms.
cooldown_strikes: BTreeMap<String, u32>How many times each dedup_key has been rejected — drives the exponential
backoff of cooldowns (7d, 14d, 28d, …) so a repeatedly-rejected finding
stops re-surfacing on a fixed cadence. Omitted when empty (no churn for
states without a rejection).
applied: BTreeMap<String, AppliedRecord>Applied-recommendation records (inverse plan, metric, timing).
measured: BTreeMap<String, Vec<Checkpoint>>Per-recommendation set of checkpoints already measured, so each is measured exactly once. A time checkpoint serializes as its bare ms value, which is what this field held before checkpoints had units — so a state blob from then reads back as the same schedule.
outcomes: BTreeMap<String, Vec<OutcomeResult>>Measured outcome time series (the Verify gate’s output), keyed by recommendation — one entry per horizon checkpoint.
Implementations§
Trait Implementations§
Source§impl Clone for LoopPersisted
impl Clone for LoopPersisted
Source§fn clone(&self) -> LoopPersisted
fn clone(&self) -> LoopPersisted
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more