feat: add Copilot connection diagnostics

Add backend support for Copilot connection and account-status UX without introducing raw provider credential management.

This change extends sidecar capabilities with explicit connection diagnostics, adds a refreshable capabilities IPC path, classifies common Copilot CLI failure modes, and includes a frontend handover document describing the new payload and expected UI states.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
David Kaya
2026-03-22 12:58:40 +01:00
co-authored by Copilot
parent e25518a4c5
commit d68b1b99f3
11 changed files with 438 additions and 22 deletions
+1
View File
@@ -1,5 +1,6 @@
export const ipcChannels = {
describeSidecarCapabilities: 'sidecar:describe-capabilities',
refreshSidecarCapabilities: 'sidecar:refresh-capabilities',
loadWorkspace: 'workspace:load',
addProject: 'workspace:add-project',
removeProject: 'workspace:remove-project',
+1
View File
@@ -26,6 +26,7 @@ export interface UpdateScratchpadSessionConfigInput {
export interface ElectronApi {
describeSidecarCapabilities(): Promise<SidecarCapabilities>;
refreshSidecarCapabilities(): Promise<SidecarCapabilities>;
loadWorkspace(): Promise<WorkspaceState>;
addProject(): Promise<WorkspaceState>;
removeProject(projectId: string): Promise<WorkspaceState>;
+15
View File
@@ -6,6 +6,20 @@ export interface SidecarModeCapability {
reason?: string;
}
export type SidecarConnectionStatus =
| 'ready'
| 'copilot-cli-missing'
| 'copilot-auth-required'
| 'copilot-error';
export interface SidecarConnectionDiagnostics {
status: SidecarConnectionStatus;
summary: string;
detail?: string;
copilotCliPath?: string;
checkedAt: string;
}
export interface SidecarModelCapability {
id: string;
name: string;
@@ -17,6 +31,7 @@ export interface SidecarCapabilities {
runtime: 'dotnet-maf';
modes: Record<PatternDefinition['mode'], SidecarModeCapability>;
models: SidecarModelCapability[];
connection: SidecarConnectionDiagnostics;
}
export interface DescribeCapabilitiesCommand {