pub struct TypeAwareComposeConfig {
pub enabled: bool,
pub default_compose_types: Vec<FunctionalType>,
pub intent_scoped: bool,
}Expand description
MemGuard-inspired type-aware memory retrieval composition (spec 004-16, issue #6086).
Retrieval-only, fetch-time gate: it does not touch write paths, does not add a new
Qdrant collection, and does not migrate stored data. When enabled = false (the default),
schedule_context_fetchers in zeph-context composes exactly the same memory sources it
does today — the empty active-type set produced by enabled = false is treated identically
to an empty default_compose_types, both meaning “all types” (byte-for-byte no-op).
BehavioralRule (past-correction) recall is deliberately excluded from gating: it is
safety-critical and is always composed regardless of this config.
§Example (TOML)
[memory.type_aware_compose]
enabled = false
default_compose_types = []
intent_scoped = falseFields§
§enabled: boolMaster switch. When false (default), context assembly composes all memory types
exactly as today. When true, only the types in the active set (default_compose_types
plus, when intent_scoped, the classified-intent widening) are composed.
default_compose_types: Vec<FunctionalType>Functional types composed under an un-specialized retrieval need.
Empty (default) means all types — the same composition as today. Strict parse: an unknown/typo’d type string is a hard config-load error, never a silent fallback to “all types” (spec 004-16 §4, critic finding S4).
intent_scoped: boolWhen true, additionally widen the active set per classified query intent using the
static IntentClass -> FunctionalType[] table (reuses the existing heuristic memory
router; adds no new LLM call). Default: false.
Trait Implementations§
Source§impl Clone for TypeAwareComposeConfig
impl Clone for TypeAwareComposeConfig
Source§fn clone(&self) -> TypeAwareComposeConfig
fn clone(&self) -> TypeAwareComposeConfig
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for TypeAwareComposeConfig
impl Debug for TypeAwareComposeConfig
Source§impl Default for TypeAwareComposeConfig
impl Default for TypeAwareComposeConfig
Source§fn default() -> TypeAwareComposeConfig
fn default() -> TypeAwareComposeConfig
Source§impl<'de> Deserialize<'de> for TypeAwareComposeConfigwhere
TypeAwareComposeConfig: Default,
impl<'de> Deserialize<'de> for TypeAwareComposeConfigwhere
TypeAwareComposeConfig: Default,
Source§fn deserialize<__D>(
__deserializer: __D,
) -> Result<TypeAwareComposeConfig, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<TypeAwareComposeConfig, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
Source§impl Serialize for TypeAwareComposeConfig
impl Serialize for TypeAwareComposeConfig
Source§fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
Auto Trait Implementations§
impl Freeze for TypeAwareComposeConfig
impl RefUnwindSafe for TypeAwareComposeConfig
impl Send for TypeAwareComposeConfig
impl Sync for TypeAwareComposeConfig
impl Unpin for TypeAwareComposeConfig
impl UnsafeUnpin for TypeAwareComposeConfig
impl UnwindSafe for TypeAwareComposeConfig
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
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 moreSource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::Request