Skip to content
This repository was archived by the owner on May 13, 2026. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 17 additions & 14 deletions src/handlers/logs.rs
Original file line number Diff line number Diff line change
Expand Up @@ -6,27 +6,30 @@
use crate::fold_node::node::FoldNode;
use crate::fold_node::OperationProcessor;
use crate::handlers::response::{ApiResponse, HandlerError, HandlerResult, IntoHandlerError, SuccessResponse};
use serde::{Deserialize, Serialize};
use crate::handlers::handler_response;

#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct LogListResponse {
pub logs: serde_json::Value,
pub count: usize,
pub timestamp: u64,
handler_response! {
pub struct LogListResponse {
pub logs: serde_json::Value,
pub count: usize,
pub timestamp: u64,
}
}

#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct LogConfigResponse {
pub config: serde_json::Value,
handler_response! {
pub struct LogConfigResponse {
pub config: serde_json::Value,
}
}

#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct LogFeaturesResponse {
pub features: serde_json::Value,
pub available_levels: Vec<String>,
handler_response! {
pub struct LogFeaturesResponse {
pub features: serde_json::Value,
pub available_levels: Vec<String>,
}
}

const LOG_LEVELS: &[&str] = &["TRACE", "DEBUG", "INFO", "WARN", "ERROR"];
pub const LOG_LEVELS: &[&str] = &["TRACE", "DEBUG", "INFO", "WARN", "ERROR"];

pub async fn list_logs(
since: Option<i64>,
Expand Down
34 changes: 13 additions & 21 deletions src/ingestion/smart_folder_routes.rs
Original file line number Diff line number Diff line change
Expand Up @@ -173,28 +173,20 @@ pub async fn smart_folder_scan(
});
});

let result = if let Some(ref arc) = node_arc {
let node_guard = arc.read().await;
smart_folder::perform_smart_folder_scan_with_progress(
&folder_path,
max_depth,
max_files,
service_opt.as_deref(),
Some(&*node_guard),
Some(&on_progress),
)
.await
} else {
smart_folder::perform_smart_folder_scan_with_progress(
&folder_path,
max_depth,
max_files,
service_opt.as_deref(),
None,
Some(&on_progress),
)
.await
let node_guard;
let node_ref = match node_arc {
Some(ref arc) => { node_guard = arc.read().await; Some(&*node_guard) }
Comment thread
shiba4life marked this conversation as resolved.
None => None,
};
let result = smart_folder::perform_smart_folder_scan_with_progress(
&folder_path,
max_depth,
max_files,
service_opt.as_deref(),
node_ref,
Some(&on_progress),
)
.await;

// Let any in-flight spawned progress-update tasks drain before
// writing the final Completed/Failed status.
Expand Down
3 changes: 1 addition & 2 deletions src/server/routes/log.rs
Original file line number Diff line number Diff line change
Expand Up @@ -107,8 +107,7 @@ pub async fn update_feature_level(
level_update: web::Json<LogLevelUpdate>,
state: web::Data<AppState>,
) -> impl Responder {
let valid_levels = ["TRACE", "DEBUG", "INFO", "WARN", "ERROR"];
if !valid_levels.contains(&level_update.level.as_str()) {
if !crate::handlers::logs::LOG_LEVELS.contains(&level_update.level.as_str()) {
return HttpResponse::BadRequest().json(json!({
"error": format!("Invalid log level: {}", level_update.level)
}));
Expand Down
Loading