From ff49e7ce93078c09ebbf85e9cb20772b2dc55db3 Mon Sep 17 00:00:00 2001 From: vikingowl Date: Sat, 1 Nov 2025 16:50:45 +0100 Subject: [PATCH] fix(config): correct environment variable precedence and update prefix MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fix configuration loading order to ensure environment variables have highest precedence over config files. Also update env prefix from CODE_ to OWLEN_ for consistency with project naming. Changes: - Move env variable merge to end of chain for proper precedence - Update environment prefix from CODE_ to OWLEN_ - Add precedence tests to verify correct override behavior - Clean up unused dependencies (serde_json, toml) - Add tempfile dev dependency for testing 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- crates/config/Cargo.toml | 3 +-- crates/config/src/lib.rs | 6 ++++-- crates/config/tests/precedence.rs | 19 +++++++++++++++++++ 3 files changed, 24 insertions(+), 4 deletions(-) create mode 100644 crates/config/tests/precedence.rs diff --git a/crates/config/Cargo.toml b/crates/config/Cargo.toml index edb1c06..8855b88 100644 --- a/crates/config/Cargo.toml +++ b/crates/config/Cargo.toml @@ -7,7 +7,6 @@ rust-version.workspace = true [dependencies] serde = { version = "1", features = ["derive"] } -serde_json = "1" directories = "5" figment = { version = "0.10", features = ["toml", "env"] } -toml = "0.8" +tempfile = "3.23.0" diff --git a/crates/config/src/lib.rs b/crates/config/src/lib.rs index 299d03e..aed4988 100644 --- a/crates/config/src/lib.rs +++ b/crates/config/src/lib.rs @@ -37,8 +37,7 @@ impl Default for Settings { } pub fn load_settings(project_root: Option<&str>) -> Result { - let mut fig = Figment::from(Serialized::defaults(Settings::default())) - .merge(Env::prefixed("CODE_").split("__")); + let mut fig = Figment::from(Serialized::defaults(Settings::default())); // User file: ~/.config/owlen/config.toml if let Some(pd) = ProjectDirs::from("dev", "owlibou", "owlen") { @@ -51,5 +50,8 @@ pub fn load_settings(project_root: Option<&str>) -> Result