From 36c7f3d1c7a7f9035b62b6b0f9d90af25c66ecc4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?m=C3=BCde?= Date: Sat, 16 May 2026 15:30:03 +0200 Subject: [PATCH] mirror claude stderr to tracing so journald captures it bus-only note made post-mortems require the web UI / events sqlite; now stderr lines also land in 'journalctl -M -b' alongside the existing LiveEvent::Note for the dashboard. --- hive-ag3nt/src/turn.rs | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/hive-ag3nt/src/turn.rs b/hive-ag3nt/src/turn.rs index 651f2a7..b9fe6fe 100644 --- a/hive-ag3nt/src/turn.rs +++ b/hive-ag3nt/src/turn.rs @@ -290,6 +290,11 @@ async fn run_claude(prompt: &str, files: &TurnFiles, bus: &Bus) -> Result if line.contains(PROMPT_TOO_LONG_MARKER) { flag_err.store(true, Ordering::Relaxed); } + // Mirror to journald so post-mortems work without the web UI + // or the events sqlite. The bus event is what the dashboard + // renders; the tracing line is what `journalctl -M -b` + // surfaces when claude exits non-zero. + tracing::warn!(line = %line, "claude stderr"); bus_err.emit(LiveEvent::Note(format!("stderr: {line}"))); } });