From f18da11854211f86bd4df84cb6bc93bb0c88d632 Mon Sep 17 00:00:00 2001 From: Bryan Helmkamp Date: Thu, 30 Apr 2026 08:25:37 -0400 Subject: [PATCH] chore(logs): promote run lifecycle traces to info level Promotes per-run observability events (stage start/complete, edge selection, checkpoint, fidelity resolution, agent session, LLM stream finish, tool calls, sandbox cleanup, PR build/create) from debug to info so default-level operators see end-to-end run progress. Co-Authored-By: Claude Opus 4.7 (1M context) --- lib/crates/fabro-agent/src/types.rs | 4 ++-- lib/crates/fabro-github/src/lib.rs | 2 +- lib/crates/fabro-llm/src/generate.rs | 4 ++-- lib/crates/fabro-sandbox/src/sandbox.rs | 4 ++-- lib/crates/fabro-workflow/src/event.rs | 10 +++++----- lib/crates/fabro-workflow/src/handler/llm/api.rs | 2 +- lib/crates/fabro-workflow/src/lifecycle/fidelity.rs | 2 +- lib/crates/fabro-workflow/src/pipeline/pull_request.rs | 2 +- 8 files changed, 15 insertions(+), 15 deletions(-) diff --git a/lib/crates/fabro-agent/src/types.rs b/lib/crates/fabro-agent/src/types.rs index 965c98ee6..2245272c9 100644 --- a/lib/crates/fabro-agent/src/types.rs +++ b/lib/crates/fabro-agent/src/types.rs @@ -268,7 +268,7 @@ impl AgentEvent { tool_call_id, .. } => { - debug!( + info!( session_id, tool = tool_name.as_str(), tool_call_id, @@ -281,7 +281,7 @@ impl AgentEvent { is_error, .. } => { - debug!( + info!( session_id, tool = tool_name.as_str(), tool_call_id, diff --git a/lib/crates/fabro-github/src/lib.rs b/lib/crates/fabro-github/src/lib.rs index e9f5aa196..368fb2e4c 100644 --- a/lib/crates/fabro-github/src/lib.rs +++ b/lib/crates/fabro-github/src/lib.rs @@ -612,7 +612,7 @@ pub async fn create_pull_request_with_client( ) .await?; - tracing::debug!(title = %title, head = %head, base = %base, draft, "Creating pull request"); + tracing::info!(title = %title, head = %head, base = %base, draft, "Creating pull request"); let pr_body = serde_json::json!({ "title": title, diff --git a/lib/crates/fabro-llm/src/generate.rs b/lib/crates/fabro-llm/src/generate.rs index 798e434c5..df0106162 100644 --- a/lib/crates/fabro-llm/src/generate.rs +++ b/lib/crates/fabro-llm/src/generate.rs @@ -8,7 +8,7 @@ use tokio::sync::mpsc; use tokio::time; use tokio_stream::wrappers::ReceiverStream; use tokio_util::sync::CancellationToken; -use tracing::{debug, warn}; +use tracing::{debug, info, warn}; use crate::client::Client; use crate::error::Error; @@ -492,7 +492,7 @@ impl StreamAccumulator { self.finish_reason = Some(finish_reason.clone()); self.usage = Some(usage.clone()); self.response = Some(*response.clone()); - debug!( + info!( model = %response.model, input_tokens = response.usage.input_tokens, output_tokens = response.usage.output_tokens, diff --git a/lib/crates/fabro-sandbox/src/sandbox.rs b/lib/crates/fabro-sandbox/src/sandbox.rs index 82bc8c6b7..bf160f2ae 100644 --- a/lib/crates/fabro-sandbox/src/sandbox.rs +++ b/lib/crates/fabro-sandbox/src/sandbox.rs @@ -295,13 +295,13 @@ impl SandboxEvent { error!(provider, error, causes = ?causes, duration_ms, "Sandbox init failed"); } Self::CleanupStarted { provider } => { - debug!(provider, "Sandbox cleanup started"); + info!(provider, "Sandbox cleanup started"); } Self::CleanupCompleted { provider, duration_ms, } => { - debug!(provider, duration_ms, "Sandbox cleanup completed"); + info!(provider, duration_ms, "Sandbox cleanup completed"); } Self::CleanupFailed { provider, diff --git a/lib/crates/fabro-workflow/src/event.rs b/lib/crates/fabro-workflow/src/event.rs index e9d19f655..036dbb5dc 100644 --- a/lib/crates/fabro-workflow/src/event.rs +++ b/lib/crates/fabro-workflow/src/event.rs @@ -715,7 +715,7 @@ impl Event { duration_ms, .. } => { - debug!(%phase, branch, duration_ms, "Metadata snapshot completed"); + info!(%phase, branch, duration_ms, "Metadata snapshot completed"); } Self::MetadataSnapshotFailed { phase, @@ -743,7 +743,7 @@ impl Event { max_attempts, .. } => { - debug!( + info!( node_id, stage = name.as_str(), index, @@ -763,7 +763,7 @@ impl Event { max_attempts, .. } => { - debug!( + info!( node_id, stage = name.as_str(), index, @@ -888,7 +888,7 @@ impl Event { completed_nodes, .. } => { - debug!( + info!( node_id, status, completed_count = completed_nodes.len(), @@ -937,7 +937,7 @@ impl Event { reason, .. } => { - debug!( + info!( from_node, to_node, label = label.as_deref().unwrap_or(""), diff --git a/lib/crates/fabro-workflow/src/handler/llm/api.rs b/lib/crates/fabro-workflow/src/handler/llm/api.rs index a66a3b630..a5efe74b5 100644 --- a/lib/crates/fabro-workflow/src/handler/llm/api.rs +++ b/lib/crates/fabro-workflow/src/handler/llm/api.rs @@ -460,7 +460,7 @@ impl CodergenBackend for AgentApiBackend { ) }; - tracing::debug!( + tracing::info!( node = %node.id, fidelity = %fidelity, reused = is_reused, diff --git a/lib/crates/fabro-workflow/src/lifecycle/fidelity.rs b/lib/crates/fabro-workflow/src/lifecycle/fidelity.rs index c39eded75..32b170ad2 100644 --- a/lib/crates/fabro-workflow/src/lifecycle/fidelity.rs +++ b/lib/crates/fabro-workflow/src/lifecycle/fidelity.rs @@ -209,7 +209,7 @@ fn resolve_fidelity( (keys::Fidelity::default(), "default") }; - tracing::debug!( + tracing::info!( node = %node.id, fidelity = %resolved, source = source, diff --git a/lib/crates/fabro-workflow/src/pipeline/pull_request.rs b/lib/crates/fabro-workflow/src/pipeline/pull_request.rs index 791ae3fa9..91a34b367 100644 --- a/lib/crates/fabro-workflow/src/pipeline/pull_request.rs +++ b/lib/crates/fabro-workflow/src/pipeline/pull_request.rs @@ -349,7 +349,7 @@ async fn build_pr_body_with_client_and_state( client: Arc, run_state: Option<&fabro_store::RunProjection>, ) -> Result { - debug!("Building PR body"); + info!("Building PR body"); let loaded_run_state = if run_state.is_none() { run_store