From abdd2ff615b06f637f1b9a3931dcabb804352f1c Mon Sep 17 00:00:00 2001 From: "Rodrigo Rodriguez (Pragmatismo)" Date: Thu, 5 Feb 2026 09:44:20 -0300 Subject: [PATCH] Fix UI directory detection: skip filesystem checks when embed-ui is enabled --- src/ui_server/mod.rs | 51 +++++++++++++++++++++++++------------------- 1 file changed, 29 insertions(+), 22 deletions(-) diff --git a/src/ui_server/mod.rs b/src/ui_server/mod.rs index 7d6d645..7df8e0c 100644 --- a/src/ui_server/mod.rs +++ b/src/ui_server/mod.rs @@ -224,30 +224,37 @@ pub async fn index(OriginalUri(uri): OriginalUri) -> Response { } pub fn get_ui_root() -> PathBuf { - let candidates = [ - "ui", - "botui/ui", - "../botui/ui", - "../../botui/ui", - "../../../botui/ui", - ]; - - for path_str in candidates { - let path = PathBuf::from(path_str); - if path.exists() { - info!("Found UI root at: {:?}", path); - return path; - } + #[cfg(feature = "embed-ui")] + { + PathBuf::from("ui") } - // Fallback to "ui" but log a warning - let default = PathBuf::from("ui"); - error!( - "Could not find 'ui' directory in candidates: {:?}. Defaulting to 'ui' (CWD: {:?})", - candidates, - std::env::current_dir() - ); - default + #[cfg(not(feature = "embed-ui"))] + { + let candidates = [ + "ui", + "botui/ui", + "../botui/ui", + "../../botui/ui", + "../../../botui/ui", + ]; + + for path_str in candidates { + let path = PathBuf::from(path_str); + if path.exists() { + info!("Found UI root at: {:?}", path); + return path; + } + } + + let default = PathBuf::from("ui"); + error!( + "Could not find 'ui' directory in candidates: {:?}. Defaulting to 'ui' (CWD: {:?})", + candidates, + std::env::current_dir() + ); + default + } } pub async fn serve_minimal() -> impl IntoResponse {