pub struct BrainState {
pub profiles: HashMap<String, ProfileRecord>,
pub balanced_recall: BalancedRecallState,
pub profile_states: HashMap<String, BalancedRecallState>,
pub bindings: Vec<ProfileBinding>,
pub section_states: HashMap<String, SectionPosteriorState>,
}Expand description
Runtime brain state — profile registry + active state per profile.
ADR-032 §1: BrainState holds profile registry and lifecycle metadata. Posteriors live inside each profile’s own state, opaque to brain.
Per-profile state: balanced_recall holds the live state for the built-in
balanced-recall-v1 profile. profile_states holds live BalancedRecallState
for every user-created Bayesian profile. Both maps are initialised at profile
creation and cleared on hard-delete; they are never absent for a living profile
whose state_class == "Bayesian".
section_states: per-profile section-level Beta posteriors (ADR-048 §Phase1).
Keys are profile_id; values are SectionPosteriorState.
Fields§
§profiles: HashMap<String, ProfileRecord>Registered profiles indexed by profile_id.
balanced_recall: BalancedRecallStateIn-memory BalancedRecallState for the built-in balanced-recall-v1 profile.
profile_states: HashMap<String, BalancedRecallState>Per-profile live state for user-created Bayesian profiles.
bindings: Vec<ProfileBinding>Profile binding table — maps (actor, namespace, consumer_kind) → profile_id.
section_states: HashMap<String, SectionPosteriorState>Per-profile section posteriors (ADR-048).
Implementations§
Source§impl BrainState
impl BrainState
pub fn new(entity_capacity: usize) -> Self
pub fn to_snapshot(&self) -> BrainStateSnapshot
pub fn from_snapshot( snapshot: BrainStateSnapshot, entity_capacity: usize, ) -> Self
Sourcepub fn reset_posteriors(&mut self)
pub fn reset_posteriors(&mut self)
Reset the balanced-recall profile posteriors to priors.
Sourcepub fn reset_profile_posteriors(&mut self, profile_id: &str)
pub fn reset_profile_posteriors(&mut self, profile_id: &str)
Reset posteriors for a user-created Bayesian profile.
Sourcepub fn resolve(
&self,
actor: Option<&str>,
namespace: Option<&str>,
consumer_kind: &str,
) -> Option<&ProfileRecord>
pub fn resolve( &self, actor: Option<&str>, namespace: Option<&str>, consumer_kind: &str, ) -> Option<&ProfileRecord>
Resolve a profile_id for the given caller context (ADR-032 §10).
Longest-match wins: actor + namespace + consumer_kind beats actor + consumer_kind
beats namespace + consumer_kind beats consumer_kind alone. Returns the
balanced-recall-v1 default when no explicit binding matches.
Archived profiles are never returned, whether reached via binding or fallback.
Sourcepub fn resolve_with_match(
&self,
actor: Option<&str>,
namespace: Option<&str>,
consumer_kind: &str,
) -> Option<(&ProfileRecord, String)>
pub fn resolve_with_match( &self, actor: Option<&str>, namespace: Option<&str>, consumer_kind: &str, ) -> Option<(&ProfileRecord, String)>
Like resolve, but also returns the consumer_kind field from the matched
binding row (H3: lets the caller distinguish a wildcard match from an exact match).
Returns (profile_record, matched_binding_consumer_kind).
For the implicit default fallback the matched kind equals the profile’s own
consumer_kind.