🎯 Overview
Version 2.0.0 represents a major architectural evolution of TaskAgent, introducing a complete migration to .NET 10, a modern Next.js frontend with persistent conversation management, and dual-database architecture with PostgreSQL. This release includes breaking changes that require .NET 10 SDK and brings significant improvements to user experience, scalability, and maintainability through REST API modernization and enhanced chat functionality.
✨ What's New
🚀 New Features
-
Next.js Frontend Integration: Complete migration from MVC to modern Next.js 16 frontend with TypeScript, featuring responsive design, mobile optimization, and real-time chat interface with markdown rendering support including GitHub Flavored Markdown
-
Persistent Conversation Management: Full conversation lifecycle management with PostgreSQL-backed storage, including conversation listing, loading, deletion, and automatic thread restoration. Users can now maintain conversation history across sessions with metadata tracking and pagination support
-
Intelligent Suggestions System: AI agent now provides contextual, clickable suggestions (up to 3 per response) that enhance user interaction by recommending relevant next actions based on conversation context
-
Advanced Error Handling: Comprehensive content safety and prompt injection error handling that maintains conversation continuity by saving blocked messages and restoring threads, ensuring users never lose conversation context even when security violations occur
-
REST API Architecture: Modernized API with 5 core endpoints (send message, create thread, list threads, get history, delete thread) featuring Swagger/OpenAPI documentation, CORS support for frontend integration, and standardized JSON responses with camelCase serialization
-
PostgreSQL Thread Persistence: Dual-database architecture with PostgreSQL for conversation storage using JSON blob pattern, enabling efficient metadata extraction (title, preview, message count) and scalable thread management
-
Rich Message Metadata: Messages now include function call information, citations, and attachments, providing transparency into AI agent operations and enabling advanced UI features
-
Conversation Sidebar: Intuitive sidebar interface for managing conversations with auto-generated titles from first user message, preview text from last assistant message, message counts, and timestamps
-
Enhanced Loading States: Contextual loading indicators with rotating status messages that provide feedback during AI processing, improving perceived performance and user engagement
🐛 Bug Fixes
-
Thread ID Management: Fixed issue where blocked messages would not update thread IDs correctly, ensuring sidebar reloads properly after security violations followed by valid messages
-
Conversation Deletion: Implemented proper cleanup when current conversation is deleted from sidebar, resetting thread ID and clearing messages to prevent stale state
-
Project Name Configuration: Corrected project name reference in AppHost.cs to ensure proper Aspire orchestration
🔧 Improvements & Refactoring
-
Clean Architecture Alignment: Renamed TaskAgent.WebApp to TaskAgent.WebApi to better reflect REST API-only responsibilities, maintaining clear separation of concerns
-
Constant Extraction: Moved AI agent instructions and success messages to centralized constants, improving maintainability and adhering to DRY principles
-
Database Organization: Reorganized Entity Framework migrations into separate folders (Migrations/TaskDb for SQL Server, Migrations/ConversationDb for PostgreSQL) for better multi-database management
-
Component Architecture: Restructured frontend components into logical folders (chat/, conversations/, shared/) and split ChatInterface into smaller, focused components following Single Responsibility Principle
-
Code Quality: Applied React.memo optimization to ChatMessage component for performance, extracted duplicate logic from hooks, added explicit return types for type safety, and replaced magic numbers with named constants
-
Terminology Consistency: Standardized naming from "conversation" to "chat" across codebase for consistency, and updated PostgreSQL storage terminology from JSONB to JSON to accurately reflect implementation
-
CORS Configuration: Configured cross-origin resource sharing for localhost:3000 to enable seamless Next.js frontend development
-
Mobile Responsiveness: Enhanced chat interface with improved mobile handling, touch action optimization, and responsive design patterns for better mobile user experience
⚡ Performance Enhancements
-
Component Memoization: Applied React.memo to frequently rendered ChatMessage components, reducing unnecessary re-renders in message lists
-
Code Splitting: Implemented dynamic imports for heavy components, reducing initial bundle size and improving time-to-interactive
-
Optimized Rendering: Enhanced chat message list with virtualization-ready architecture and efficient state management
📚 Documentation
-
Comprehensive README Updates: Expanded documentation with features overview, installation instructions, environment variables, project structure, and complete API endpoint reference for both frontend and backend
-
Architecture Documentation: Added detailed documentation for dual-database architecture, PostgreSQL migration guide, and frontend E2E testing strategies
-
Code Generation Guidelines: Updated Copilot instructions with Next.js code review guidelines, .NET 10 best practices, and project-specific conventions
-
Git Commit Standards: Clarified commit message types for CI/CD changes, emphasizing use of
citype for workflow files instead ofbuild -
Prerequisites Update: Updated .NET version requirements to reflect .NET 10 across all documentation
-
Folder Structure Guide: Documented new backend services organization and updated working directory instructions for Entity Framework commands
-
Article Index: Updated README article links for improved navigation and accuracy
⚠️ Breaking Changes
.NET 10 Upgrade
Impact: All consumers and deployment environments must upgrade to .NET 10
Required Actions:
- Install .NET 10 SDK: Download and install from https://dotnet.microsoft.com/download/dotnet/10.0
- Update Project Target Framework: If consuming this project as a library, update your
TargetFrameworktonet10.0 - Review Breaking Changes: Consult .NET 10 breaking changes documentation for any API changes affecting your code
- Azure App Service: Ensure your Azure App Service supports .NET 10 runtime (update runtime stack if necessary)
- CI/CD Pipelines: Update GitHub Actions workflows or other CI/CD tools to use .NET 10 SDK (version 10.0.x)
Benefits:
- Access to new C# 14 language features
- Improved runtime performance characteristics
- Enhanced security and bug fixes
- Better compatibility with modern Azure services
Modified Components:
Directory.Build.props: TargetFramework updated to net10.0, AspireVersion updated to 13.0.0Directory.Packages.props: All package versions upgraded to 10.0.0global.json: SDK version changed to 10.0.0, Aspire.AppHost.Sdk to 13.0.0- backend.yml: DOTNET_CORE_VERSION updated to 10.0.x
Migration Timeline: Immediate for new deployments, allow 30 days for existing production environments
📊 Statistics
- Total Commits: 47
- Contributors: 1
- Major Version Bump: 1.2.0 → 2.0.0
- Files Changed: 100+
- New Features: 9
- Bug Fixes: 3
- Documentation Updates: 10
- Refactoring Improvements: 10
👥 Contributors
Special thanks to all contributors who made this release possible:
- @cristofima (Cristopher Coronado Moreira)
📦 Installation
Prerequisites
- .NET 10 SDK (required)
- Node.js 20+ (for frontend)
- pnpm (package manager)
- PostgreSQL 14+ (for conversation storage)
- SQL Server (for task management)
Clone and Setup
# Clone the repository
git clone https://github.com/cristofima/TaskAgent-AgenticAI.git
cd TaskAgent-AgenticAI
git checkout v2.0.0
# Backend setup
cd src/backend/services/TaskAgent/src
dotnet restore
dotnet build
# Apply database migrations (both SQL Server and PostgreSQL)
dotnet ef database update --context TaskDbContext --project TaskAgent.Infrastructure --startup-project TaskAgent.WebApi
dotnet ef database update --context ConversationDbContext --project TaskAgent.Infrastructure --startup-project TaskAgent.WebApi
# Frontend setup
cd ../../../../../frontend/task-agent-web
pnpm install
pnpm dev
# Run with Aspire (recommended)
cd ../../
dotnet run --project TaskAgent.AppHostConfiguration
Update appsettings.Development.json with your connection strings:
{
"ConnectionStrings": {
"TasksConnection": "Server=localhost;Database=TaskAgentDb;Trusted_Connection=true;",
"ConversationsConnection": "Host=localhost;Port=5432;Database=taskagent_conversations;Username=postgres;Password=your-password"
},
"AzureOpenAI": {
"Endpoint": "https://your-resource.openai.azure.com/",
"ApiKey": "your-key",
"DeploymentName": "gpt-4o-mini"
}
}🙏 Acknowledgments
This major release represents a significant architectural evolution, bringing TaskAgent into the modern era with cutting-edge frontend technology, robust dual-database architecture, and production-ready REST APIs. Special thanks to the .NET and Next.js communities for their excellent documentation and tooling that made this transformation possible.
Full Changelog: v1.2.0...v2.0.0