diff --git a/hive-priv/src/main.rs b/hive-priv/src/main.rs index 8728c93d..9610d605 100644 --- a/hive-priv/src/main.rs +++ b/hive-priv/src/main.rs @@ -1419,8 +1419,15 @@ async fn container_run(args: &[&str]) -> Result<(String, String)> { .context("invoke nixos-container")?; let stdout = String::from_utf8_lossy(&out.stdout).into_owned(); let stderr = String::from_utf8_lossy(&out.stderr).into_owned(); - for line in stdout.lines() { - tracing::info!(target: "nixos-container", "{line}"); + // `list` is a read-only enumeration called on the hot path (dashboard + // rescan, forge + boot sweeps) — its stdout is the return value, not + // progress, so logging every container name on every call floods the + // journal. Log stdout only for the mutating ops, where each line is + // genuine progress. stderr is always logged (errors matter regardless). + if args.first() != Some(&"list") { + for line in stdout.lines() { + tracing::info!(target: "nixos-container", "{line}"); + } } for line in stderr.lines() { tracing::warn!(target: "nixos-container", "{line}");