The backend /api/agents list endpoint returns a lightweight DTO without
configuration fields (temperature, maxTokens, systemPrompt, enableMemory,
conversationWindowSize). This caused a TypeError when parsing the response
as these fields were required in AgentDto.
Changes:
- Made 5 configuration fields nullable in AgentDto
- Updated constructor to accept optional values
- Fixed fromJson() to safely handle null values with explicit checks
- Maintains backward compatibility with full agent detail responses
This fix resolves the "Error Loading Agents" issue and allows the agents
page to display correctly. List endpoint now parses successfully while
detail endpoints still provide full configuration.
Fixes: TypeError: null: type 'Null' is not a subtype of type 'num'
Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Performance improvements for local development:
- Add indexes: Agents.Name, Conversations.Title, AgentExecutions.CompletedAt, ConversationMessages.CreatedAt
- Remove redundant ConversationMessages index (covered by composite)
- Add .Take() limit to SendMessage context query to prevent fetching excessive history
- Downgrade Microsoft.Extensions.Http from 9.0.10 to 8.0.1 for .NET 8 compatibility
All query handlers already had .AsNoTracking() for read operations.
Impact: Faster search/filter operations even with 10-20 agents, prevents N+1 on long conversations.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>