You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
fix: eliminate silent failures — add observability to critical data paths
FSM transitions (loop_driver.rs):
- Replace 9x `let _ = fsm.transition()` with `if let Err(e) = ... { debug!() }`
- State machine violations are now visible in traces instead of silently ignored
- Critical for debugging agent loops that stall or produce incorrect results
Desktop UI (chat.rs):
- Permission approval/denial: try_send failure now logs error!()
(security-critical: dropped permission decisions could hang executor)
- Chat message send: try_send failure logs error!() and resets streaming state
(prevents ghost "sending" state when message is actually dropped)
- Cancellation: try_send failure now logs warn!()
API permission handler (chat.rs):
- Permission decision forwarding now logs error!() when channel is closed
(was silently dropping approve/deny decisions)
Event bus (bus.rs):
- Broadcast with zero subscribers now logs at trace level
(was completely silent)
Strategy/Memory persistence (loop_driver.rs):
- Serialization failures now log warn!() before converting to None
(was silently discarding strategy learning and memory data)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
0 commit comments