pub struct ExtractionSection {
pub background_enabled: bool,
pub idle_after_secs: u64,
pub batch_size: usize,
}Expand description
Background entity extraction inside the graph daemon ([extraction]).
Episodes arrive mechanically on SessionEnd; turning them into entities,
relationships and confidence used to require a human to run
recall-echo graph extract. The daemon already owns the store and knows
when it is unused, so it does that pass itself once the machine is quiet.
Defaults are on, because the alternative is a knowledge graph that stays
empty for everyone who did not read the docs closely. What it costs is
bounded by the provider: the daemon is started with a minimal environment
that deliberately excludes API keys (see serve_client), so an
auto-started daemon can only ever use a CLI provider whose credentials live
in $HOME — claude-code and friends — which bills nothing beyond a
subscription. An API-key provider reaches the daemon only when a human runs
recall-echo serve --foreground with the key exported — an explicit act.
Set background_enabled = false to turn the pass off entirely.
Fields§
§background_enabled: boolRun entity extraction in the daemon when the machine is quiet.
Default true.
idle_after_secs: u64Seconds without a client request before a background batch may start.
0 means “as soon as no connection is open”. Default 120.
batch_size: usizeArchives one batch extracts before going back to waiting. Bounds how
long a burst of background work lasts and how much it can cost in one
go; the next batch starts one quiet period later. Default 3.
Implementations§
Source§impl ExtractionSection
impl ExtractionSection
Sourcepub fn idle_after(&self) -> Duration
pub fn idle_after(&self) -> Duration
Quiet period before a batch may start.
Sourcepub fn effective_batch_size(&self) -> usize
pub fn effective_batch_size(&self) -> usize
Archives per batch — at least one, whatever the config says, or the worker would wake up only to do nothing.
Trait Implementations§
Source§impl Clone for ExtractionSection
impl Clone for ExtractionSection
Source§fn clone(&self) -> ExtractionSection
fn clone(&self) -> ExtractionSection
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 ExtractionSection
impl Debug for ExtractionSection
Source§impl Default for ExtractionSection
impl Default for ExtractionSection
Source§impl<'de> Deserialize<'de> for ExtractionSectionwhere
ExtractionSection: Default,
impl<'de> Deserialize<'de> for ExtractionSectionwhere
ExtractionSection: Default,
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>,
impl Eq for ExtractionSection
Source§impl PartialEq for ExtractionSection
impl PartialEq for ExtractionSection
Source§impl Serialize for ExtractionSection
impl Serialize for ExtractionSection
impl StructuralPartialEq for ExtractionSection
Auto Trait Implementations§
impl Freeze for ExtractionSection
impl RefUnwindSafe for ExtractionSection
impl Send for ExtractionSection
impl Sync for ExtractionSection
impl Unpin for ExtractionSection
impl UnsafeUnpin for ExtractionSection
impl UnwindSafe for ExtractionSection
Blanket Implementations§
impl<T> AsyncFriendly for T
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<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§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<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::RequestSource§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
Source§impl<R, P> ReadPrimitive<R> for P
impl<R, P> ReadPrimitive<R> for P
Source§fn read_from_little_endian(read: &mut R) -> Result<Self, Error>
fn read_from_little_endian(read: &mut R) -> Result<Self, Error>
ReadEndian::read_from_little_endian().