From fd2186b14bd2ac7b704f7e1dd081a724a8ac1717 Mon Sep 17 00:00:00 2001 From: Sebastian Palencsar Date: Wed, 25 Feb 2026 19:43:06 +0100 Subject: [PATCH] Handle legacy profile_scope=default in app config --- src/main.rs | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/src/main.rs b/src/main.rs index a3444c3..a46133b 100755 --- a/src/main.rs +++ b/src/main.rs @@ -26,6 +26,7 @@ enum Backend { )] #[serde(rename_all = "lowercase")] enum ProfileScope { + #[serde(alias = "default")] Isolated, Shared, } @@ -264,9 +265,17 @@ fn read_app_config(id: &str) -> Result> { } let content = fs::read_to_string(&path) .with_context(|| format!("Failed to read app config {}", path.display()))?; - let cfg: DeskifyAppConfig = - serde_json::from_str(&content).context("Failed to parse app config JSON")?; - Ok(Some(cfg)) + match serde_json::from_str::(&content) { + Ok(cfg) => Ok(Some(cfg)), + Err(err) => { + eprintln!( + "Warning: Failed to parse app config {} ({}). Falling back to desktop entry metadata.", + path.display(), + err + ); + Ok(None) + } + } } fn write_app_config_from_args(args: &BuildArgs) -> Result<()> { @@ -1525,4 +1534,10 @@ mod tests { assert!(exec.contains("--force-dark-mode")); assert!(exec.contains("--user-agent=")); } + + #[test] + fn profile_scope_accepts_default_alias() { + let scope: ProfileScope = serde_json::from_str("\"default\"").unwrap(); + assert_eq!(scope, ProfileScope::Isolated); + } }