Add 'Build In Public' section to README #69
build-validation.yml
on: push
Quality Gate
6m 11s
Unit Test Suite
3m 40s
Coverage Suite
4m 16s
UI Test Suite
4m 21s
Annotations
12 errors
|
Unit Test Suite
Process completed with exit code 1.
|
|
SelectProviderSurfacesGeminiSuggestedAndSupportedModels:
DotPilot.Tests/Settings/ViewModels/SettingsModelTests.cs#L145
Expected details {
DotPilot.Presentation.ProviderDetailItem
{
Label = "Installed version",
Value = "0.34.0"
},
DotPilot.Presentation.ProviderDetailItem
{
Label = "Suggested model",
Value = "gemini-2.5-pro"
},
DotPilot.Presentation.ProviderDetailItem
{
Label = "Supported models",
Value = "gemini-2.5-pro"
}
} to have an item matching ((detail.Label == "Supported models") AndAlso detail.Value.Contains("gemini-2.5-flash", Ordinal)).
|
|
EnabledGeminiProviderReportsReadyRuntimeAndSuggestedModels:
DotPilot.Tests/Providers/Services/AgentProviderStatusReaderTests.cs#L198
Expected provider.SupportedModelNames {
"gemini-2.5-pro"
} to contain "gemini-2.5-flash".
|
|
SendMessageAsyncPersistsTranscriptErrorWhenLocalLlamaRuntimeFailsToLoad:
DotPilot.Tests/ChatSessions/Execution/AgentSessionServiceTests.cs#L524
Expected streamedResults.Where(result => result.IsSuccess).Select(result => result.Value!) {
DotPilot.Core.ChatSessions.Contracts.SessionStreamEntry
{
AccentLabel = <null>,
AgentProfileId = <null>,
Author = "You",
Id = "019d58e308ee792c8c739237afa30e7b",
Kind = SessionStreamEntryKind.UserMessage {value: 0},
SessionId = DotPilot.Core.SessionId
{
Value = {019d58e3-08ea-782b-8d1b-ac00fe5e85c6}
},
Text = "trigger the broken llama model",
Timestamp = <2026-04-04 14:26:07.2145808 +0h>
},
DotPilot.Core.ChatSessions.Contracts.SessionStreamEntry
{
AccentLabel = "status",
AgentProfileId = <null>,
Author = "System",
Id = "019d58e308ef7e6fb4fd4443ee8adbeb",
Kind = SessionStreamEntryKind.Status {value: 4},
SessionId = DotPilot.Core.SessionId
{
Value = {019d58e3-08ea-782b-8d1b-ac00fe5e85c6}
},
Text = "Running Editable Session Agent with LLamaSharp.",
Timestamp = <2026-04-04 14:26:07.2151139 +0h>
},
DotPilot.Core.ChatSessions.Contracts.SessionStreamEntry
{
AccentLabel = "error",
AgentProfileId = <null>,
Author = "System",
Id = "019d58e308f078e49492050ca1ff7441",
Kind = SessionStreamEntryKind.Error {value: 5},
SessionId = DotPilot.Core.SessionId
{
Value = {019d58e3-08ea-782b-8d1b-ac00fe5e85c6}
},
Text = "LLamaSharp failed before responding: Failed to load model 'C:\Users\runneradmin\AppData\Local\Temp\DotPilot.Tests\AgentSessionServiceTests\61ca33c270fe4d7d8f60cda3585b1dee\broken-mistral.gguf'.",
Timestamp = <2026-04-04 14:26:07.2167458 +0h>
}
} to have an item matching (((Convert(entry.Kind, Int32) == 5) AndAlso entry.Text.Contains("LlamaSharp failed before responding", Ordinal)) AndAlso entry.Text.Contains("Failed to load model", Ordinal)).
|
|
GetWorkspaceAsyncSeedsDefaultSystemAgentForANewStore:
DotPilot.Tests/ChatSessions/Execution/AgentSessionServiceTests.cs#L33
Expected workspace.Providers to contain 5 item(s), but found 7: DotPilot.Core.ChatSessions.Contracts.ProviderStatusDescriptor
{
Actions = {empty},
CanCreateAgents = True,
CommandName = "debug",
Details = {empty},
DisplayName = "Debug Provider",
Id = DotPilot.Core.ProviderId
{
Value = {badf33d9-9434-8b35-bc0d-ad13fbe96f6f}
},
InstalledVersion = "debug-echo",
IsEnabled = True,
Kind = AgentProviderKind.Debug {value: 0},
Status = AgentProviderStatus.Ready {value: 0},
StatusSummary = "Built in and ready for deterministic local testing.",
SuggestedModelName = "debug-echo",
SupportedModelNames = {"debug-echo"}
},
DotPilot.Core.ChatSessions.Contracts.ProviderStatusDescriptor
{
Actions = DotPilot.Core.ChatSessions.Contracts.ProviderActionDescriptor
{
{
Command = "npm install -g @openai/codex",
Kind = ProviderActionKind.CopyCommand {value: 0},
Label = "Install",
Summary = "Install the CLI, then refresh settings."
}
}
,
CanCreateAgents = False,
CommandName = "codex",
Details = DotPilot.Core.ChatSessions.Contracts.ProviderDetailDescriptor
{
{
Label = "Install command",
Value = "npm install -g @openai/codex"
}
}
,
DisplayName = "Codex",
Id = DotPilot.Core.ProviderId
{
Value = {487f6a88-d438-8239-8153-806c4fe41b28}
},
InstalledVersion = <null>,
IsEnabled = False,
Kind = AgentProviderKind.Codex {value: 1},
Status = AgentProviderStatus.Disabled {value: 2},
StatusSummary = "Provider is disabled for local agent creation. Codex CLI is not installed.",
SuggestedModelName = "",
SupportedModelNames = {empty}
},
DotPilot.Core.ChatSessions.Contracts.ProviderStatusDescriptor
{
Actions = DotPilot.Core.ChatSessions.Contracts.ProviderActionDescriptor
{
{
Command = "npm install -g @anthropic-ai/claude-code",
Kind = ProviderActionKind.CopyCommand {value: 0},
Label = "Install",
Summary = "Install the CLI, then refresh settings."
}
}
,
CanCreateAgents = False,
CommandName = "claude",
Details = DotPilot.Core.ChatSessions.Contracts.ProviderDetailDescriptor
{
{
Label = "Install command",
Value = "npm install -g @anthropic-ai/claude-code"
}
}
,
DisplayName = "Claude Code",
Id = DotPilot.Core.ProviderId
{
Value = {7f8bf571-b16a-8bda-84ee-d925f4dcfe23}
},
InstalledVersion = <null>,
IsEnabled = False,
Kind = AgentProviderKind.ClaudeCode {value: 2},
Status = AgentProviderStatus.Disabled {value: 2},
StatusSummary = "Provider is disabled for local agent creation. Claude Code CLI is not installed.",
SuggestedModelName = "",
SupportedModelNames = {empty}
}DotPilot.Core.ChatSessions.Contracts.ProviderStatusDescriptor
{
Actions = DotPilot.Core.ChatSessions.Contracts.ProviderActionDescriptor
{
{
Command = "npm install -g @github/copilot",
Kind = ProviderActionKind.CopyCommand {value: 0},
Label = "Install",
Summary = "Install the CLI, then refresh settings."
}
}
,
(Output has exceeded the maximum of 100 lines. Increase FormattingOptions.MaxLines on AssertionScope or AssertionConfiguration to include more lines.).
|
|
SendMessageShowsPersistedTranscriptErrorWhenLocalLlamaRuntimeFails:
DotPilot.Tests/Chat/ViewModels/ChatModelTests.cs#L103
Expected activeSession!.Messages {
DotPilot.Presentation.ChatTimelineItem
{
AccentLabel = "status",
Author = "System",
AvatarBrush = <null>,
Content = "Session started with Mutable Agent on Debug Provider. Send a message when ready.",
Id = "019d58e2eeff7bd99076c1529f8c1aff",
Initial = "S",
IsCurrentUser = False,
Kind = SessionStreamEntryKind.Status {value: 4},
Timestamp = "14:26"
},
DotPilot.Presentation.ChatTimelineItem
{
AccentLabel = <null>,
Author = "You",
AvatarBrush = <null>,
Content = "trigger the broken llama model",
Id = "019d58e2ef0774be87c1cc2ea7c360e9",
Initial = "Y",
IsCurrentUser = True,
Kind = SessionStreamEntryKind.UserMessage {value: 0},
Timestamp = "14:26"
},
DotPilot.Presentation.ChatTimelineItem
{
AccentLabel = "status",
Author = "System",
AvatarBrush = <null>,
Content = "Running Mutable Agent with LLamaSharp.",
Id = "019d58e2ef07775d95c16ee771cda408",
Initial = "S",
IsCurrentUser = False,
Kind = SessionStreamEntryKind.Status {value: 4},
Timestamp = "14:26"
},
DotPilot.Presentation.ChatTimelineItem
{
AccentLabel = "error",
Author = "System",
AvatarBrush = <null>,
Content = "LLamaSharp failed before responding: Failed to load model 'C:\Users\runneradmin\AppData\Local\Temp\DotPilot.Tests\ChatModelTests\b5f97fd781ae40fca727a228d8313042\broken-mistral.gguf'.",
Id = "019d58e2ef4c709d9fef32b2c55ed932",
Initial = "S",
IsCurrentUser = False,
Kind = SessionStreamEntryKind.Error {value: 5},
Timestamp = "14:26"
}
} to have an item matching (((Convert(message.Kind, Int32) == 5) AndAlso message.Content.Contains("LlamaSharp failed before responding", Ordinal)) AndAlso message.Content.Contains("Failed to load model", Ordinal)).
|
|
Coverage Suite
Process completed with exit code 1.
|
|
SelectProviderSurfacesGeminiSuggestedAndSupportedModels:
DotPilot.Tests/Settings/ViewModels/SettingsModelTests.cs#L145
Expected details {
DotPilot.Presentation.ProviderDetailItem
{
Label = "Installed version",
Value = "0.34.0"
},
DotPilot.Presentation.ProviderDetailItem
{
Label = "Suggested model",
Value = "gemini-2.5-pro"
},
DotPilot.Presentation.ProviderDetailItem
{
Label = "Supported models",
Value = "gemini-2.5-pro"
}
} to have an item matching ((detail.Label == "Supported models") AndAlso detail.Value.Contains("gemini-2.5-flash", Ordinal)).
|
|
EnabledGeminiProviderReportsReadyRuntimeAndSuggestedModels:
DotPilot.Tests/Providers/Services/AgentProviderStatusReaderTests.cs#L198
Expected provider.SupportedModelNames {
"gemini-2.5-pro"
} to contain "gemini-2.5-flash".
|
|
SendMessageAsyncPersistsTranscriptErrorWhenLocalLlamaRuntimeFailsToLoad:
DotPilot.Tests/ChatSessions/Execution/AgentSessionServiceTests.cs#L524
Expected streamedResults.Where(result => result.IsSuccess).Select(result => result.Value!) {
DotPilot.Core.ChatSessions.Contracts.SessionStreamEntry
{
AccentLabel = <null>,
AgentProfileId = <null>,
Author = "You",
Id = "019d58e38a7176de9c904d88100f0a10",
Kind = SessionStreamEntryKind.UserMessage {value: 0},
SessionId = DotPilot.Core.SessionId
{
Value = {019d58e3-8a6d-75a7-b77d-0bf7683cba4c}
},
Text = "trigger the broken llama model",
Timestamp = <2026-04-04 14:26:40.3690649 +0h>
},
DotPilot.Core.ChatSessions.Contracts.SessionStreamEntry
{
AccentLabel = "status",
AgentProfileId = <null>,
Author = "System",
Id = "019d58e38a7172d4aa389fa35c05c860",
Kind = SessionStreamEntryKind.Status {value: 4},
SessionId = DotPilot.Core.SessionId
{
Value = {019d58e3-8a6d-75a7-b77d-0bf7683cba4c}
},
Text = "Running Editable Session Agent with LLamaSharp.",
Timestamp = <2026-04-04 14:26:40.3696394 +0h>
},
DotPilot.Core.ChatSessions.Contracts.SessionStreamEntry
{
AccentLabel = "error",
AgentProfileId = <null>,
Author = "System",
Id = "019d58e38a73726c843449b233598953",
Kind = SessionStreamEntryKind.Error {value: 5},
SessionId = DotPilot.Core.SessionId
{
Value = {019d58e3-8a6d-75a7-b77d-0bf7683cba4c}
},
Text = "LLamaSharp failed before responding: Failed to load model 'C:\Users\runneradmin\AppData\Local\Temp\DotPilot.Tests\AgentSessionServiceTests\668b6ce49a964333810c222742bcbbed\broken-mistral.gguf'.",
Timestamp = <2026-04-04 14:26:40.3712891 +0h>
}
} to have an item matching (((Convert(entry.Kind, Int32) == 5) AndAlso entry.Text.Contains("LlamaSharp failed before responding", Ordinal)) AndAlso entry.Text.Contains("Failed to load model", Ordinal)).
|
|
GetWorkspaceAsyncSeedsDefaultSystemAgentForANewStore:
DotPilot.Tests/ChatSessions/Execution/AgentSessionServiceTests.cs#L33
Expected workspace.Providers to contain 5 item(s), but found 7: DotPilot.Core.ChatSessions.Contracts.ProviderStatusDescriptor
{
Actions = {empty},
CanCreateAgents = True,
CommandName = "debug",
Details = {empty},
DisplayName = "Debug Provider",
Id = DotPilot.Core.ProviderId
{
Value = {badf33d9-9434-8b35-bc0d-ad13fbe96f6f}
},
InstalledVersion = "debug-echo",
IsEnabled = True,
Kind = AgentProviderKind.Debug {value: 0},
Status = AgentProviderStatus.Ready {value: 0},
StatusSummary = "Built in and ready for deterministic local testing.",
SuggestedModelName = "debug-echo",
SupportedModelNames = {"debug-echo"}
},
DotPilot.Core.ChatSessions.Contracts.ProviderStatusDescriptor
{
Actions = DotPilot.Core.ChatSessions.Contracts.ProviderActionDescriptor
{
{
Command = "npm install -g @openai/codex",
Kind = ProviderActionKind.CopyCommand {value: 0},
Label = "Install",
Summary = "Install the CLI, then refresh settings."
}
}
,
CanCreateAgents = False,
CommandName = "codex",
Details = DotPilot.Core.ChatSessions.Contracts.ProviderDetailDescriptor
{
{
Label = "Install command",
Value = "npm install -g @openai/codex"
}
}
,
DisplayName = "Codex",
Id = DotPilot.Core.ProviderId
{
Value = {487f6a88-d438-8239-8153-806c4fe41b28}
},
InstalledVersion = <null>,
IsEnabled = False,
Kind = AgentProviderKind.Codex {value: 1},
Status = AgentProviderStatus.Disabled {value: 2},
StatusSummary = "Provider is disabled for local agent creation. Codex CLI is not installed.",
SuggestedModelName = "",
SupportedModelNames = {empty}
},
DotPilot.Core.ChatSessions.Contracts.ProviderStatusDescriptor
{
Actions = DotPilot.Core.ChatSessions.Contracts.ProviderActionDescriptor
{
{
Command = "npm install -g @anthropic-ai/claude-code",
Kind = ProviderActionKind.CopyCommand {value: 0},
Label = "Install",
Summary = "Install the CLI, then refresh settings."
}
}
,
CanCreateAgents = False,
CommandName = "claude",
Details = DotPilot.Core.ChatSessions.Contracts.ProviderDetailDescriptor
{
{
Label = "Install command",
Value = "npm install -g @anthropic-ai/claude-code"
}
}
,
DisplayName = "Claude Code",
Id = DotPilot.Core.ProviderId
{
Value = {7f8bf571-b16a-8bda-84ee-d925f4dcfe23}
},
InstalledVersion = <null>,
IsEnabled = False,
Kind = AgentProviderKind.ClaudeCode {value: 2},
Status = AgentProviderStatus.Disabled {value: 2},
StatusSummary = "Provider is disabled for local agent creation. Claude Code CLI is not installed.",
SuggestedModelName = "",
SupportedModelNames = {empty}
}DotPilot.Core.ChatSessions.Contracts.ProviderStatusDescriptor
{
Actions = DotPilot.Core.ChatSessions.Contracts.ProviderActionDescriptor
{
{
Command = "npm install -g @github/copilot",
Kind = ProviderActionKind.CopyCommand {value: 0},
Label = "Install",
Summary = "Install the CLI, then refresh settings."
}
}
,
(Output has exceeded the maximum of 100 lines. Increase FormattingOptions.MaxLines on AssertionScope or AssertionConfiguration to include more lines.).
|
|
SendMessageShowsPersistedTranscriptErrorWhenLocalLlamaRuntimeFails:
DotPilot.Tests/Chat/ViewModels/ChatModelTests.cs#L103
Expected activeSession!.Messages {
DotPilot.Presentation.ChatTimelineItem
{
AccentLabel = "status",
Author = "System",
AvatarBrush = <null>,
Content = "Session started with Mutable Agent on Debug Provider. Send a message when ready.",
Id = "019d58e366e17b6bae98cf71312ad47a",
Initial = "S",
IsCurrentUser = False,
Kind = SessionStreamEntryKind.Status {value: 4},
Timestamp = "14:26"
},
DotPilot.Presentation.ChatTimelineItem
{
AccentLabel = <null>,
Author = "You",
AvatarBrush = <null>,
Content = "trigger the broken llama model",
Id = "019d58e366e97596b3cd38f33553352c",
Initial = "Y",
IsCurrentUser = True,
Kind = SessionStreamEntryKind.UserMessage {value: 0},
Timestamp = "14:26"
},
DotPilot.Presentation.ChatTimelineItem
{
AccentLabel = "status",
Author = "System",
AvatarBrush = <null>,
Content = "Running Mutable Agent with LLamaSharp.",
Id = "019d58e366e97613a36cee1687a5b084",
Initial = "S",
IsCurrentUser = False,
Kind = SessionStreamEntryKind.Status {value: 4},
Timestamp = "14:26"
},
DotPilot.Presentation.ChatTimelineItem
{
AccentLabel = "error",
Author = "System",
AvatarBrush = <null>,
Content = "LLamaSharp failed before responding: Failed to load model 'C:\Users\runneradmin\AppData\Local\Temp\DotPilot.Tests\ChatModelTests\76bf707856cb4ae29292d727592a56b4\broken-mistral.gguf'.",
Id = "019d58e367507a6fbeab6e6a59de1c2d",
Initial = "S",
IsCurrentUser = False,
Kind = SessionStreamEntryKind.Error {value: 5},
Timestamp = "14:26"
}
} to have an item matching (((Convert(message.Kind, Int32) == 5) AndAlso message.Content.Contains("LlamaSharp failed before responding", Ordinal)) AndAlso message.Content.Contains("Failed to load model", Ordinal)).
|