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 <noreply@anthropic.com>
This commit is contained in:
Mathias Bergqvist
2026-05-04 22:55:35 +02:00
parent 9a258ca32a
commit 3a99d5e20e

View File

@@ -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
}