Development¶
Replacing the mock AI¶
MockAIService (IMockAIService) generates streamed responses locally. To integrate a real model:
- Implement a service that calls your provider (e.g. an
IChatClient). - Register it in
AddAIChatServices()in place ofMockAIService. - Update
ChatOrchestratorif your streaming contract differs.
Adding chat features¶
- New message UI -> add a component under
Components/Messages/and render fromMessageList. - 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.