Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions .ai-team/decisions/inbox/copilot-directive-sln-revert.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
### 2026-02-20: Revert to .sln format for CI compatibility

**By:** mpaulosky (via Copilot)

**What:** CI/CD pipeline failing with .slnx format. Reverting all processes to use legacy .sln solution format. GitHub Actions workflows and build commands must reference .sln instead of .slnx.

**Why:** The squad-ci.yml build step is failing because `dotnet restore` and `dotnet build` do not properly support the modern .slnx format in the CI environment. GitHub Actions on ubuntu-latest cannot parse .slnx files correctly. Reverting to .sln ensures compatibility with existing CI infrastructure.
2 changes: 1 addition & 1 deletion .github/workflows/squad-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,7 @@ jobs:
run: dotnet restore
Copy link

Copilot AI Feb 20, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The workflow still runs dotnet restore without specifying a solution/project. Since IssueManager.slnx still exists at the repo root, restore can pick up the .slnx (and fail) depending on how MSBuild resolves the default. Call dotnet restore IssueManager.sln (or pass the same solution used for build) to make the CI behavior deterministic.

Suggested change
run: dotnet restore
run: dotnet restore IssueManager.sln

Copilot uses AI. Check for mistakes.

- name: Build solution
run: dotnet build IssueManager.slnx --configuration Release --no-restore
run: dotnet build IssueManager.sln --configuration Release --no-restore

- name: Run Tests
id: run-tests
Expand Down
79 changes: 79 additions & 0 deletions IssueManager.sln
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@

Copy link

Copilot AI Feb 20, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

IssueManager.sln starts with an empty first line. MSBuild’s solution parser expects the format header to be the first line; the leading blank line can cause solution load/build failures in CI. Remove the initial blank line so the file begins with Microsoft Visual Studio Solution File, Format Version 12.00.

Suggested change

Copilot uses AI. Check for mistakes.
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.11.35312.102
MinimumVisualStudioVersion = 10.0.40219.1
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AppHost", "src\AppHost\AppHost.csproj", "{7B8D5A1A-1C1B-4E5F-8F5A-1B1B1B1B1B1B}"
Comment on lines +2 to +6
Copy link

Copilot AI Feb 20, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This PR’s goal is to revert processes to the legacy .sln format, but IssueManager.slnx is still present in the repo root. Keeping both formats increases the chance that local scripts/CI steps that omit an explicit solution (e.g., dotnet restore from the repo root) will select the wrong one. Consider removing IssueManager.slnx (or clearly documenting that only IssueManager.sln should be used) to avoid ongoing ambiguity.

Copilot uses AI. Check for mistakes.
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ServiceDefaults", "src\ServiceDefaults\ServiceDefaults.csproj", "{7B8D5A1B-1C1B-4E5F-8F5A-1B1B1B1B1B1B}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Shared", "src\Shared\Shared.csproj", "{7B8D5A1C-1C1B-4E5F-8F5A-1B1B1B1B1B1B}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Api", "src\Api\Api.csproj", "{7B8D5A1D-1C1B-4E5F-8F5A-1B1B1B1B1B1B}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Web", "src\Web\Web.csproj", "{7B8D5A1E-1C1B-4E5F-8F5A-1B1B1B1B1B1B}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Unit", "tests\Unit\Unit.csproj", "{7B8D5A2A-1C1B-4E5F-8F5A-1B1B1B1B1B1B}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Architecture", "tests\Architecture\Architecture.csproj", "{7B8D5A2B-1C1B-4E5F-8F5A-1B1B1B1B1B1B}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BlazorTests", "tests\BlazorTests\BlazorTests.csproj", "{7B8D5A2C-1C1B-4E5F-8F5A-1B1B1B1B1B1B}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Integration", "tests\Integration\Integration.csproj", "{7B8D5A2D-1C1B-4E5F-8F5A-1B1B1B1B1B1B}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Aspire", "tests\Aspire\Aspire.csproj", "{7B8D5A2E-1C1B-4E5F-8F5A-1B1B1B1B1B1B}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "E2E", "tests\E2E\E2E.csproj", "{7B8D5A2F-1C1B-4E5F-8F5A-1B1B1B1B1B1B}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{7B8D5A1A-1C1B-4E5F-8F5A-1B1B1B1B1B1B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{7B8D5A1A-1C1B-4E5F-8F5A-1B1B1B1B1B1B}.Debug|Any CPU.Build.0 = Debug|Any CPU
{7B8D5A1A-1C1B-4E5F-8F5A-1B1B1B1B1B1B}.Release|Any CPU.ActiveCfg = Release|Any CPU
{7B8D5A1A-1C1B-4E5F-8F5A-1B1B1B1B1B1B}.Release|Any CPU.Build.0 = Release|Any CPU
{7B8D5A1B-1C1B-4E5F-8F5A-1B1B1B1B1B1B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{7B8D5A1B-1C1B-4E5F-8F5A-1B1B1B1B1B1B}.Debug|Any CPU.Build.0 = Debug|Any CPU
{7B8D5A1B-1C1B-4E5F-8F5A-1B1B1B1B1B1B}.Release|Any CPU.ActiveCfg = Release|Any CPU
{7B8D5A1B-1C1B-4E5F-8F5A-1B1B1B1B1B1B}.Release|Any CPU.Build.0 = Release|Any CPU
{7B8D5A1C-1C1B-4E5F-8F5A-1B1B1B1B1B1B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{7B8D5A1C-1C1B-4E5F-8F5A-1B1B1B1B1B1B}.Debug|Any CPU.Build.0 = Debug|Any CPU
{7B8D5A1C-1C1B-4E5F-8F5A-1B1B1B1B1B1B}.Release|Any CPU.ActiveCfg = Release|Any CPU
{7B8D5A1C-1C1B-4E5F-8F5A-1B1B1B1B1B1B}.Release|Any CPU.Build.0 = Release|Any CPU
{7B8D5A1D-1C1B-4E5F-8F5A-1B1B1B1B1B1B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{7B8D5A1D-1C1B-4E5F-8F5A-1B1B1B1B1B1B}.Debug|Any CPU.Build.0 = Debug|Any CPU
{7B8D5A1D-1C1B-4E5F-8F5A-1B1B1B1B1B1B}.Release|Any CPU.ActiveCfg = Release|Any CPU
{7B8D5A1D-1C1B-4E5F-8F5A-1B1B1B1B1B1B}.Release|Any CPU.Build.0 = Release|Any CPU
{7B8D5A1E-1C1B-4E5F-8F5A-1B1B1B1B1B1B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{7B8D5A1E-1C1B-4E5F-8F5A-1B1B1B1B1B1B}.Debug|Any CPU.Build.0 = Debug|Any CPU
{7B8D5A1E-1C1B-4E5F-8F5A-1B1B1B1B1B1B}.Release|Any CPU.ActiveCfg = Release|Any CPU
{7B8D5A1E-1C1B-4E5F-8F5A-1B1B1B1B1B1B}.Release|Any CPU.Build.0 = Release|Any CPU
{7B8D5A2A-1C1B-4E5F-8F5A-1B1B1B1B1B1B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{7B8D5A2A-1C1B-4E5F-8F5A-1B1B1B1B1B1B}.Debug|Any CPU.Build.0 = Debug|Any CPU
{7B8D5A2A-1C1B-4E5F-8F5A-1B1B1B1B1B1B}.Release|Any CPU.ActiveCfg = Release|Any CPU
{7B8D5A2A-1C1B-4E5F-8F5A-1B1B1B1B1B1B}.Release|Any CPU.Build.0 = Release|Any CPU
{7B8D5A2B-1C1B-4E5F-8F5A-1B1B1B1B1B1B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{7B8D5A2B-1C1B-4E5F-8F5A-1B1B1B1B1B1B}.Debug|Any CPU.Build.0 = Debug|Any CPU
{7B8D5A2B-1C1B-4E5F-8F5A-1B1B1B1B1B1B}.Release|Any CPU.ActiveCfg = Release|Any CPU
{7B8D5A2B-1C1B-4E5F-8F5A-1B1B1B1B1B1B}.Release|Any CPU.Build.0 = Release|Any CPU
{7B8D5A2C-1C1B-4E5F-8F5A-1B1B1B1B1B1B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{7B8D5A2C-1C1B-4E5F-8F5A-1B1B1B1B1B1B}.Debug|Any CPU.Build.0 = Debug|Any CPU
{7B8D5A2C-1C1B-4E5F-8F5A-1B1B1B1B1B1B}.Release|Any CPU.ActiveCfg = Release|Any CPU
{7B8D5A2C-1C1B-4E5F-8F5A-1B1B1B1B1B1B}.Release|Any CPU.Build.0 = Release|Any CPU
{7B8D5A2D-1C1B-4E5F-8F5A-1B1B1B1B1B1B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{7B8D5A2D-1C1B-4E5F-8F5A-1B1B1B1B1B1B}.Debug|Any CPU.Build.0 = Debug|Any CPU
{7B8D5A2D-1C1B-4E5F-8F5A-1B1B1B1B1B1B}.Release|Any CPU.ActiveCfg = Release|Any CPU
{7B8D5A2D-1C1B-4E5F-8F5A-1B1B1B1B1B1B}.Release|Any CPU.Build.0 = Release|Any CPU
{7B8D5A2E-1C1B-4E5F-8F5A-1B1B1B1B1B1B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{7B8D5A2E-1C1B-4E5F-8F5A-1B1B1B1B1B1B}.Debug|Any CPU.Build.0 = Debug|Any CPU
{7B8D5A2E-1C1B-4E5F-8F5A-1B1B1B1B1B1B}.Release|Any CPU.ActiveCfg = Release|Any CPU
{7B8D5A2E-1C1B-4E5F-8F5A-1B1B1B1B1B1B}.Release|Any CPU.Build.0 = Release|Any CPU
{7B8D5A2F-1C1B-4E5F-8F5A-1B1B1B1B1B1B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{7B8D5A2F-1C1B-4E5F-8F5A-1B1B1B1B1B1B}.Debug|Any CPU.Build.0 = Debug|Any CPU
{7B8D5A2F-1C1B-4E5F-8F5A-1B1B1B1B1B1B}.Release|Any CPU.ActiveCfg = Release|Any CPU
{7B8D5A2F-1C1B-4E5F-8F5A-1B1B1B1B1B1B}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
EndGlobal
26 changes: 0 additions & 26 deletions IssueManager.slnx

This file was deleted.