Skip to content

Phase 1: Add AppChat sessions powered by on-device SLM#204

Draft
mattleibow wants to merge 1 commit intomainfrom
feature/phase1-appchat
Draft

Phase 1: Add AppChat sessions powered by on-device SLM#204
mattleibow wants to merge 1 commit intomainfrom
feature/phase1-appchat

Conversation

@mattleibow
Copy link
Collaborator

@mattleibow mattleibow commented Feb 24, 2026

Implement local AI-powered chat sessions using Microsoft.Extensions.AI and Microsoft Agent Framework. AppChat sessions appear alongside Copilot sessions in the sidebar with distinct visual treatment.

New files:

Key changes:

  • SessionState.Session is now nullable (CopilotSession?)
  • AgentSessionInfo gains Kind property (defaults to Copilot)
  • CopilotService routes SendPromptAsync by SessionKind
  • MauiProgram registers keyed 'local' IChatClient pipeline
  • ExpandedSessionView hides Copilot-only controls for AppChat (Fiesta, ReflectionCycle, Plan/Autopilot, model selector)
  • Sidebar gets '✨ App Chat' button in both desktop and flyout

Found a bug: dotnet/maui#34124

@mattleibow mattleibow force-pushed the feature/phase1-appchat branch from 843eb87 to 939eff9 Compare February 24, 2026 16:25
- Revert SessionKind enum, nullable CopilotSession, and routing changes
- Revert ExpandedSessionView/SessionSidebar AppChat integration
- Create AppChatPopover.razor — floating overlay with ChatMessageList reuse
- Add ✨ FAB toggle in MainLayout
- Keep AI services: DirectLocalChatService, AppChatTools, NonFunctionInvokingChatClient
- Remove Kind reference from AppChatTools (SessionKind deleted)
- 610 tests passing, build clean

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@mattleibow mattleibow force-pushed the feature/phase1-appchat branch from 939eff9 to 1d7995b Compare February 24, 2026 18:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant