on main help sign in
fix(errors): surface errors in subagents
11eabdfKieran Klukas
internal/agent/coordinator.go+1−1
@@ -1075,7 +1075,7 @@ func (c *coordinator) runSubAgent(ctx context.Context, params subAgentParams) (f
1075 NonInteractive: true,
1075 NonInteractive: true,
1076 })
1076 })
1077 if err != nil {
1077 if err != nil {
1078− return fantasy.NewTextErrorResponse("error generating response"), nil
1078+ return fantasy.NewTextErrorResponse(fmt.Sprintf("Failed to generate response: %s", err)), nil
1079 }
1079 }
1080
1080
1081 // Update parent session cost
1081 // Update parent session cost
internal/agent/coordinator_test.go+2−2
@@ -196,7 +196,7 @@ func TestRunSubAgent(t *testing.T) {
196 require.NoError(t, err)
196 require.NoError(t, err)
197
197
198 agent := newMockAgent(providerID, 4096, func(_ context.Context, _ SessionAgentCall) (*fantasy.AgentResult, error) {
198 agent := newMockAgent(providerID, 4096, func(_ context.Context, _ SessionAgentCall) (*fantasy.AgentResult, error) {
199− return nil, errors.New("agent exploded")
199+ return nil, errors.New("provider request failed")
200 })
200 })
201
201
202 resp, err := coord.runSubAgent(t.Context(), subAgentParams{
202 resp, err := coord.runSubAgent(t.Context(), subAgentParams{
@@ -210,7 +210,7 @@ func TestRunSubAgent(t *testing.T) {
210 // runSubAgent returns (errorResponse, nil) when agent.Run fails — not a Go error.
210 // runSubAgent returns (errorResponse, nil) when agent.Run fails — not a Go error.
211 require.NoError(t, err)
211 require.NoError(t, err)
212 assert.True(t, resp.IsError)
212 assert.True(t, resp.IsError)
213− assert.Equal(t, "error generating response", resp.Content)
213+ assert.Equal(t, "Failed to generate response: provider request failed", resp.Content)
214 })
214 })
215
215
216 t.Run("session setup callback is invoked", func(t *testing.T) {
216 t.Run("session setup callback is invoked", func(t *testing.T) {