_diffctx/config/
filtering.rs1use once_cell::sync::Lazy;
2
3use crate::config::env_overrides::read_env_f64;
4
5pub struct FilteringConfig {
6 pub proximity_floor_max: f64,
7 pub proximity_half_decay: f64,
8 pub definition_proximity_half_decay: f64,
9 pub hub_reverse_threshold: usize,
10 pub max_context_fragments_per_file: usize,
11}
12
13impl Default for FilteringConfig {
14 fn default() -> Self {
15 Self {
16 proximity_floor_max: 0.04,
17 proximity_half_decay: 50.0,
18 definition_proximity_half_decay: 5.0,
19 hub_reverse_threshold: 2,
20 max_context_fragments_per_file: 30,
21 }
22 }
23}
24
25pub static FILTERING: Lazy<FilteringConfig> = Lazy::new(|| FilteringConfig {
26 proximity_half_decay: read_env_f64("DIFFCTX_OP_FILTERING_PROXIMITY_HALF_DECAY", 50.0),
27 definition_proximity_half_decay: read_env_f64(
28 "DIFFCTX_OP_FILTERING_DEFINITION_PROXIMITY_HALF_DECAY",
29 5.0,
30 ),
31 ..FilteringConfig::default()
32});