From 3a99d5e20e8a1e6cb55df5ea38de7dce255aee93 Mon Sep 17 00:00:00 2001 From: Mathias Bergqvist Date: Mon, 4 May 2026 22:55:35 +0200 Subject: [PATCH] refactor(routing): surface logger errors via slog.Warn Replace silent `_ = r.Logger.LogDecision(...)` discards with an if-err check that emits slog.Warn on failure. A brain outage now produces a visible warn line instead of swallowing the telemetry error entirely. Co-Authored-By: Claude Sonnet 4.6 --- internal/routing/router.go | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/internal/routing/router.go b/internal/routing/router.go index c808f66..b5615c6 100644 --- a/internal/routing/router.go +++ b/internal/routing/router.go @@ -46,7 +46,7 @@ func (r *Router) Run(ctx context.Context, in RunInput) (string, int64, error) { } out, ms, err := r.Complete(ctx, model, in.System, in.User) - _ = r.Logger.LogDecision(ctx, LogEntry{ + if lerr := r.Logger.LogDecision(ctx, LogEntry{ SessionID: in.SessionID, Skill: in.Skill, Decision: decision.String(), @@ -54,12 +54,14 @@ func (r *Router) Run(ctx context.Context, in RunInput) (string, int64, error) { ProjectRoot: in.ProjectRoot, DurationMs: ms, Failed: err != nil, - }) + }); lerr != nil { + slog.Warn("router: log decision failed", "skill", in.Skill, "err", lerr) + } if err != nil && decision == DecideLocal { slog.Warn("router: local failed, falling open to claude", "skill", in.Skill, "err", err) out, ms, err = r.Complete(ctx, r.ClaudeModel, in.System, in.User) - _ = r.Logger.LogDecision(ctx, LogEntry{ + if lerr := r.Logger.LogDecision(ctx, LogEntry{ SessionID: in.SessionID, Skill: in.Skill, Decision: "claude_fallback", @@ -67,7 +69,9 @@ func (r *Router) Run(ctx context.Context, in RunInput) (string, int64, error) { ProjectRoot: in.ProjectRoot, DurationMs: ms, Failed: err != nil, - }) + }); lerr != nil { + slog.Warn("router: log decision failed", "skill", in.Skill, "err", lerr) + } } return out, ms, err }