pub enum GoalSourceKind {
RawTurn,
UserProvided,
RecallSummary,
Memory,
Inferred,
}Expand description
Provenance category for a declared session goal.
GoalSourceKind describes the evidence source used to create a session
objective. Consumers should treat variants as a rough trust hierarchy:
direct raw-turn or user-provided goals are stronger than summarized recall,
memory-derived, or inferred goals.
The default is GoalSourceKind::Inferred, which is intentionally the
weakest category. This keeps older log entries and omitted provenance fields
safe by marking them as unverified rather than pretending they came from a
canonical user turn.
Variants§
RawTurn
The goal was anchored to a raw transcript turn.
Use this when the objective is derived directly from canonical session
history, such as a specific user message returned by context_browse.
UserProvided
The goal was explicitly provided by the user.
This is appropriate for direct goal-setting interfaces such as a TUI
/goal set ... command or a user request that intentionally declares the
current objective.
RecallSummary
The goal was derived from summarized session recall.
Recall summaries are useful for recovery but may omit, blend, or mis-rank details from raw history. Consumers should verify this kind against transcript turns before treating it as authoritative.
Memory
The goal was derived from curated durable memory.
Memory can preserve important decisions across sessions, but it may be stale or broader than the current conversation. Consumers should consider memory scope and timestamp before using it as a hard constraint.
Inferred
The goal was inferred without stronger provenance.
This is the fallback for missing provenance and should be treated as low-confidence until confirmed by the user or anchored to raw transcript evidence.
Trait Implementations§
Source§impl Clone for GoalSourceKind
impl Clone for GoalSourceKind
Source§fn clone(&self) -> GoalSourceKind
fn clone(&self) -> GoalSourceKind
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 GoalSourceKind
impl Debug for GoalSourceKind
Source§impl Default for GoalSourceKind
impl Default for GoalSourceKind
Source§fn default() -> GoalSourceKind
fn default() -> GoalSourceKind
Source§impl<'de> Deserialize<'de> for GoalSourceKind
impl<'de> Deserialize<'de> for GoalSourceKind
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl PartialEq for GoalSourceKind
impl PartialEq for GoalSourceKind
Source§fn eq(&self, other: &GoalSourceKind) -> bool
fn eq(&self, other: &GoalSourceKind) -> bool
self and other values to be equal, and is used by ==.Source§impl Serialize for GoalSourceKind
impl Serialize for GoalSourceKind
impl Eq for GoalSourceKind
impl StructuralPartialEq for GoalSourceKind
Auto Trait Implementations§
impl Freeze for GoalSourceKind
impl RefUnwindSafe for GoalSourceKind
impl Send for GoalSourceKind
impl Sync for GoalSourceKind
impl Unpin for GoalSourceKind
impl UnsafeUnpin for GoalSourceKind
impl UnwindSafe for GoalSourceKind
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,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<S> FromSample<S> for S
impl<S> FromSample<S> for S
fn from_sample_(s: S) -> S
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