diff --git a/internal/providers/openai.go b/internal/providers/openai.go index 97ac6fe2..ed51c8ff 100644 --- a/internal/providers/openai.go +++ b/internal/providers/openai.go @@ -103,6 +103,7 @@ func (p *OpenAIProvider) ChatStream(ctx context.Context, req ChatRequest, onChun accumulators := make(map[int]*toolCallAccumulator) scanner := bufio.NewScanner(respBody) + scanner.Buffer(make([]byte, 0, 64*1024), 1024*1024) // 1MB max line for large tool call / thinking chunks for scanner.Scan() { line := scanner.Text() if !strings.HasPrefix(line, "data:") { @@ -185,11 +186,6 @@ func (p *OpenAIProvider) ChatStream(ctx context.Context, req ChatRequest, onChun return nil, fmt.Errorf("%s: stream read error: %w", p.name, err) } - // Check for scanner errors (timeout, connection reset, etc.) - if err := scanner.Err(); err != nil { - return nil, fmt.Errorf("%s: stream read error: %w", p.name, err) - } - // Parse accumulated tool call arguments for i := 0; i < len(accumulators); i++ { acc := accumulators[i]