fix(errors): surface errors in subagents

Kieran Klukas created

Change summary

internal/agent/coordinator.go      | 2 +-
internal/agent/coordinator_test.go | 4 ++--
2 files changed, 3 insertions(+), 3 deletions(-)

Detailed changes

internal/agent/coordinator.go 🔗

@@ -1075,7 +1075,7 @@ func (c *coordinator) runSubAgent(ctx context.Context, params subAgentParams) (f
 		NonInteractive:   true,
 	})
 	if err != nil {
-		return fantasy.NewTextErrorResponse("error generating response"), nil
+		return fantasy.NewTextErrorResponse(fmt.Sprintf("Failed to generate response: %s", err)), nil
 	}
 
 	// Update parent session cost

internal/agent/coordinator_test.go 🔗

@@ -196,7 +196,7 @@ func TestRunSubAgent(t *testing.T) {
 		require.NoError(t, err)
 
 		agent := newMockAgent(providerID, 4096, func(_ context.Context, _ SessionAgentCall) (*fantasy.AgentResult, error) {
-			return nil, errors.New("agent exploded")
+			return nil, errors.New("provider request failed")
 		})
 
 		resp, err := coord.runSubAgent(t.Context(), subAgentParams{
@@ -210,7 +210,7 @@ func TestRunSubAgent(t *testing.T) {
 		// runSubAgent returns (errorResponse, nil) when agent.Run fails — not a Go error.
 		require.NoError(t, err)
 		assert.True(t, resp.IsError)
-		assert.Equal(t, "error generating response", resp.Content)
+		assert.Equal(t, "Failed to generate response: provider request failed", resp.Content)
 	})
 
 	t.Run("session setup callback is invoked", func(t *testing.T) {