Skip to main content

OpenReport

Struct OpenReport 

Source
pub struct OpenReport {
    pub schema_version_before: u32,
    pub schema_version_after: u32,
    pub migration_steps: Vec<MigrationStepReport>,
    pub embedder_warmup_ms: u64,
    pub query_backend: &'static str,
    pub default_embedder: EmbedderIdentity,
    pub embedder_download_ms: Option<u64>,
    pub embedder_events: Vec<EmbedderEvent>,
    pub embedder_mean_centering_required: bool,
    pub embedder_mean_vec_pinned: bool,
    pub dense_disabled: bool,
    pub dense_disabled_reason: Option<String>,
}

Fields§

§schema_version_before: u32§schema_version_after: u32§migration_steps: Vec<MigrationStepReport>§embedder_warmup_ms: u64§query_backend: &'static str§default_embedder: EmbedderIdentity§embedder_download_ms: Option<u64>

Total wall time the loader spent materializing default-embedder weights — covers HF GETs, sha256 verification, atomic rename, parent-dir fsync (POSIX), and cache directory writes. This is the “engine open paid by the embedder” envelope, useful for SLA budgeting; it is intentionally wider than just the bytes-flowing time so callers see the full first-use cost.

Some(ms) when network bytes flowed (bytes_downloaded > 0); None for caller-supplied embedders (loader bypassed) and on full cache hits (no bytes flowed). For pure per-file network analysis, use the DefaultEmbedderDownload events on embedder_events — each event carries the file’s bytes + sha256 + cache path.

§embedder_events: Vec<EmbedderEvent>

Structured loader events (dev/design/embedder.md §7). Empty for caller-supplied embedders; populated from LoadedWeights.events for the Default path.

§embedder_mean_centering_required: bool

Static identity capability (dev/design/embedder.md §0.6). True iff the live embedder identity is the bge-small default, which is the only identity that ships with the EU-5a2 mean-centering apply paths. false for fathomdb-noop and for any other caller-supplied identity. EU-5b’s identity flip makes the Default path return true here.

§embedder_mean_vec_pinned: bool

Dynamic workspace state (dev/design/embedder.md §0.6). True iff _fathomdb_embedder_profiles.mean_vec IS NOT NULL for the default profile. EU-5a2 reads from the schema column added in migration step 10; the value is dimension-validated (§0.2) at open time and fails closed via EmbedderIdentityMismatch on drift.

§dense_disabled: bool

0.8.18 Slice 5 (#5 vector-equivalence probe, R-VEQ-6) — degraded-open observability. true iff the open-time #5 self-check re-embedded the 45 committed probes and found a divergence beyond the frozen D4 floor (a Phase-1 mean-centered embedding_bin sign flip OR a Phase-2 un-centered L2 over VECTOR_EQUIVALENCE_L2_EPSILON). When true, Engine::open SUCCEEDED but every vector-dependent arm refuses at query time with EngineError::VectorEquivalenceMismatch; the text-only/FTS-only path stays serviceable. The state is RE-DERIVED at every open (the probe re-runs), so a reopen with a still-divergent backend stays degraded (never silently re-enables dense) and a reopen with a matching backend clears it.

§dense_disabled_reason: Option<String>

R-VEQ-6 — human-readable reason for dense_disabled (which representation tripped: P1 flip count or P2 L2). None when dense_disabled == false.

Trait Implementations§

Source§

impl Clone for OpenReport

Source§

fn clone(&self) -> OpenReport

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for OpenReport

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Eq for OpenReport

Source§

impl PartialEq for OpenReport

Source§

fn eq(&self, other: &OpenReport) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl StructuralPartialEq for OpenReport

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.