pub struct AppConfig {Show 36 fields
pub theme: AppTheme,
pub thumbnail_size: u32,
pub face_detection_confidence: f32,
pub face_clustering_threshold: f32,
pub burst_time_window_seconds: i64,
pub trash_auto_delete_days: u32,
pub scan_hidden_folders: bool,
pub show_timeline_stacks: bool,
pub date_format: DateFormat,
pub remembered_drives: Vec<PathBuf>,
pub window_width: u32,
pub window_height: u32,
pub window_maximized: bool,
pub sidebar_collapsed: bool,
pub map_cache_limit_mb: u32,
pub weight_cooccurrence: f32,
pub weight_temporal: f32,
pub memories_enabled: bool,
pub home_city_override: Option<String>,
pub last_view: Option<String>,
pub auto_update_check_enabled: bool,
pub last_update_check_at_unix: Option<i64>,
pub show_first_run_update_prompt: bool,
pub date_logic_version: u32,
pub geonames_warning_seen: bool,
pub thumbnail_cache_gb: f64,
pub face_gpu_bridge_url: Option<String>,
pub face_gpu_bridge_enabled: bool,
pub config_version: u32,
pub face_embedder_model: String,
pub assistant_enabled: bool,
pub ai_features_enabled: bool,
pub assistant_provider: String,
pub assistant_base_url: String,
pub assistant_model: String,
pub assistant_api_key: Option<String>,
}Expand description
Application settings.
Fields§
§theme: AppTheme§thumbnail_size: u32§face_detection_confidence: f32§face_clustering_threshold: f32§burst_time_window_seconds: i64§trash_auto_delete_days: u32§show_timeline_stacks: bool§date_format: DateFormat§remembered_drives: Vec<PathBuf>§window_width: u32§window_height: u32§window_maximized: boolWhether the user’s window was maximised when they last closed the app. Restored at startup by the Tauri shell.
map_cache_limit_mb: u32§weight_cooccurrence: f32Weight applied to co-occurrence prior when multiple candidate clusters exist for an unassigned face. 0 disables the signal.
weight_temporal: f32Weight applied to temporal-neighbor prior (±60 s, same cluster).
memories_enabled: boolWhether the Memories feature (N years ago today, seasonal recaps) is on.
home_city_override: Option<String>Optional user-specified home city for album suggestions. When set, the suggestion engine skips auto-detection of the home city.
last_view: Option<String>Last-viewed top-level view; restored on app launch. Stored as a string for forward compatibility across View enum changes.
auto_update_check_enabled: boolOpt-in: whether Smriti should query GitHub Releases once every 24 hours to see if a new version is available. Off by default — the first-run prompt flips it on if the user agrees. See PRIVACY.md.
last_update_check_at_unix: Option<i64>Unix timestamp of the last update check. Used to rate-limit the background subscription to at most one check per 24 h.
show_first_run_update_prompt: boolTrue until the user accepts or declines the first-run update prompt. After that, toggling is done through Settings.
date_logic_version: u32Version of the EXIF date-extraction logic the user’s library was
last evaluated against. When the binary’s CURRENT_DATE_LOGIC_VERSION
is higher, the app auto-runs RefreshPhotoDates once on
first launch with the upgraded binary so users don’t keep
seeing 2012 ghosts on photos shot in 2026 etc. After the
refresh runs, this field is bumped to the new version.
geonames_warning_seen: boolTrue once the user has been shown the “Place names off — run scripts/setup_assets.sh” toast. Prevents the same toast appearing on every drive-select.
thumbnail_cache_gb: f64Disk budget for the on-drive thumbnail cache, expressed in
gigabytes. Drives the LRU eviction in ThumbnailService. Default
5 GB suits a mid-size phone library; small-disk users can dial
down, big-library users up.
face_gpu_bridge_url: Option<String>Optional GPU bridge URL for face embedding (opt-in).
face_gpu_bridge_enabled: boolWhether the GPU bridge is explicitly enabled by the user.
config_version: u32Version of config migrations applied. Bumped each time a default changes and existing installs need a one-time pick-up.
face_embedder_model: StringFace embedding model filename (relative to the models directory). AdaFace is the only supported local recognizer.
assistant_enabled: boolEnables the album-only in-app Assistant. Semantic search remains available when this is off.
ai_features_enabled: boolTop-level opt-in for provider-backed AI features. Local semantic search is not gated by this.
assistant_provider: StringAssistant provider identifier. local keeps the deterministic
album-only harness; openai_compatible enables the saved endpoint
configuration for a provider-backed assistant turn.
assistant_base_url: StringOpenAI-compatible chat completions base URL.
assistant_model: StringProvider model name.
assistant_api_key: Option<String>Provider API key. DTOs only expose whether this is set.
Implementations§
Source§impl AppConfig
impl AppConfig
Sourcepub fn config_path() -> PathBuf
pub fn config_path() -> PathBuf
Config file path.
Sourcepub fn remember_drive(&mut self, path: PathBuf)
pub fn remember_drive(&mut self, path: PathBuf)
Add drive to remembered list.
Trait Implementations§
Source§impl<'de> Deserialize<'de> for AppConfig
impl<'de> Deserialize<'de> for AppConfig
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>,
Auto Trait Implementations§
impl Freeze for AppConfig
impl RefUnwindSafe for AppConfig
impl Send for AppConfig
impl Sync for AppConfig
impl Unpin for AppConfig
impl UnsafeUnpin for AppConfig
impl UnwindSafe for AppConfig
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> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§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 more§impl<T> Pointable for T
impl<T> Pointable for T
§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().