fix: prevent panic when tracing subscriber already initialized

Use try_init() instead of init() for tracing subscriber setup to
gracefully handle cases where a global subscriber is already set.

This fixes a panic in the scout agent subprocess when spawned by the
research tool, where a dependency may have already initialized tracing.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
Connor Justice
2026-01-14 15:33:22 -05:00
parent 03143ec7f8
commit 505225c0bd
2 changed files with 5 additions and 5 deletions

View File

@@ -26,17 +26,17 @@ pub async fn run_agent_mode(
use g3_core::find_incomplete_agent_session;
use g3_core::get_agent_system_prompt;
// Initialize logging
// Initialize logging (use try_init to avoid panic if subscriber already set by a dependency)
use tracing_subscriber::{layer::SubscriberExt, util::SubscriberInitExt, EnvFilter};
let filter = EnvFilter::from_default_env()
.add_directive("g3_core=info".parse().unwrap())
.add_directive("g3_cli=info".parse().unwrap())
.add_directive("llama_cpp=off".parse().unwrap())
.add_directive("llama=off".parse().unwrap());
tracing_subscriber::registry()
let _ = tracing_subscriber::registry()
.with(tracing_subscriber::fmt::layer())
.with(filter)
.init();
.try_init();
let output = SimpleOutput::new();

View File

@@ -169,8 +169,8 @@ pub fn initialize_logging(verbose: bool) {
.add_directive("llama=off".parse().unwrap())
};
tracing_subscriber::registry()
let _ = tracing_subscriber::registry()
.with(tracing_subscriber::fmt::layer())
.with(filter)
.init();
.try_init();
}