From e6ab243dfde79c50ce5661b630ed26b9a1504dae Mon Sep 17 00:00:00 2001 From: Michelle Tilley Date: Thu, 5 Mar 2026 08:36:31 -0800 Subject: feat: Allow setting multipliers for frequency, recency, and frecency scores (#3235) --- crates/atuin-client/src/settings.rs | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'crates/atuin-client/src/settings.rs') diff --git a/crates/atuin-client/src/settings.rs b/crates/atuin-client/src/settings.rs index bfa94f6e..ddd047cd 100644 --- a/crates/atuin-client/src/settings.rs +++ b/crates/atuin-client/src/settings.rs @@ -27,6 +27,7 @@ mod dotfiles; mod kv; pub(crate) mod meta; mod scripts; +pub mod watcher; #[derive(Clone, Debug, Deserialize, Copy, ValueEnum, PartialEq, Serialize)] pub enum SearchMode { @@ -472,6 +473,18 @@ pub struct Daemon { pub struct Search { /// The list of enabled filter modes, in order of priority. pub filters: Vec, + + /// The recency score multiplier for the search index (default: 1.0). + /// Values < 1.0 reduce weight, > 1.0 increase weight, 0.0 disables. + pub recency_score_multiplier: f64, + + /// The frequency score multiplier for the search index (default: 1.0). + /// Values < 1.0 reduce weight, > 1.0 increase weight, 0.0 disables. + pub frequency_score_multiplier: f64, + + /// The overall frecency score multiplier for the search index (default: 1.0). + /// Applied after combining recency and frequency scores. + pub frecency_score_multiplier: f64, } #[derive(Clone, Debug, Deserialize, Serialize)] @@ -720,6 +733,10 @@ impl Default for Search { FilterMode::Workspace, FilterMode::Directory, ], + + recency_score_multiplier: 1.0, + frequency_score_multiplier: 1.0, + frecency_score_multiplier: 1.0, } } } @@ -1299,6 +1316,9 @@ impl Settings { .set_default("logs.ai.file", "ai.log")? .set_default("kv.db_path", kv_path.to_str())? .set_default("scripts.db_path", scripts_path.to_str())? + .set_default("search.recency_score_multiplier", 1.0)? + .set_default("search.frequency_score_multiplier", 1.0)? + .set_default("search.frecency_score_multiplier", 1.0)? .set_default("meta.db_path", meta_path.to_str())? .set_default( "search.filters", -- cgit v1.3.1