Skip to content

Development

Replacing the mock AI

MockAIService (IMockAIService) generates streamed responses locally. To integrate a real model:

  1. Implement a service that calls your provider (e.g. an IChatClient).
  2. Register it in AddAIChatServices() in place of MockAIService.
  3. Update ChatOrchestrator if your streaming contract differs.

Adding chat features

  • New message UI -> add a component under Components/Messages/ and render from MessageList.
  • New conversation actions -> extend ConversationActions / IConversationService.
  • Markdown extensions -> configure Markdig in MarkdownRenderer.
  • Keyboard shortcuts and screen-reader announcements are centralized in IKeyboardShortcutService / ScreenReaderAnnouncements.

Frontend

Edit Styles/app.tailwind.css; rebuild with npm run build:css (or watch:css).

Testing

<Name>.UnitTests uses MSTest + bUnit + Moq + FluentAssertions (~22 files): component tests (ChatContainerTests, ChatInputTests, ChatSettingsModalTests) and service tests (MockAIServiceTests, ChatOrchestratorTests, ConversationServiceGroupingTests). Add tests alongside new components/services.

See also