on main help sign in
fix(mcp): make sure to cancel context on error (#1246)
015632aCarlos Alexandro Becker
Taskfile.yaml+1−1
@@ -99,7 +99,7 @@ tasks:
99 cmds:
99 cmds:
100 - task: fetch-tags
100 - task: fetch-tags
101 - git commit --allow-empty -m "{{.NEXT}}"
101 - git commit --allow-empty -m "{{.NEXT}}"
102− - git tag --annotate -m "{{.NEXT}}" {{.NEXT}} {{.CLI_ARGS}}
102+ - git tag --annotate --sign -m "{{.NEXT}}" {{.NEXT}} {{.CLI_ARGS}}
103 - echo "Pushing {{.NEXT}}..."
103 - echo "Pushing {{.NEXT}}..."
104 - git push origin main --follow-tags
104 - git push origin main --follow-tags
105
105
internal/llm/agent/mcp-tools.go+3
@@ -365,6 +365,8 @@ func createMCPSession(ctx context.Context, name string, m config.MCPConfig, reso
365 if err != nil {
365 if err != nil {
366 updateMCPState(name, MCPStateError, err, nil, 0)
366 updateMCPState(name, MCPStateError, err, nil, 0)
367 slog.Error("error creating mcp client", "error", err, "name", name)
367 slog.Error("error creating mcp client", "error", err, "name", name)
368+ cancel()
369+ cancelTimer.Stop()
368 return nil, err
370 return nil, err
369 }
371 }
370
372
@@ -391,6 +393,7 @@ func createMCPSession(ctx context.Context, name string, m config.MCPConfig, reso
391 updateMCPState(name, MCPStateError, maybeTimeoutErr(err, timeout), nil, 0)
393 updateMCPState(name, MCPStateError, maybeTimeoutErr(err, timeout), nil, 0)
392 slog.Error("error starting mcp client", "error", err, "name", name)
394 slog.Error("error starting mcp client", "error", err, "name", name)
393 cancel()
395 cancel()
396+ cancelTimer.Stop()
394 return nil, err
397 return nil, err
395 }
398 }
396
399