From 016a0b11416fb70dc13e621e690819ea5828d2df Mon Sep 17 00:00:00 2001 From: 21pages Date: Tue, 10 Mar 2026 13:24:13 +0800 Subject: [PATCH] fix strategy cannot apply over default advanced options (#14502) Signed-off-by: 21pages --- src/hbbs_http/sync.rs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/hbbs_http/sync.rs b/src/hbbs_http/sync.rs index d3083acd1..1bb61943f 100644 --- a/src/hbbs_http/sync.rs +++ b/src/hbbs_http/sync.rs @@ -286,10 +286,14 @@ fn heartbeat_url() -> String { fn handle_config_options(config_options: HashMap) { let mut options = Config::get_options(); + let default_settings = config::DEFAULT_SETTINGS.read().unwrap().clone(); config_options .iter() .map(|(k, v)| { - if v.is_empty() { + // Priority: user config > default advanced options. + // Only when default advanced options are also empty, remove user option (fallback to built-in default); + // otherwise insert an empty value so user config remains present. + if v.is_empty() && default_settings.get(k).map_or("", |v| v).is_empty() { options.remove(k); } else { options.insert(k.to_string(), v.to_string());