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
4 changes: 2 additions & 2 deletions .github/workflows/Build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -93,10 +93,10 @@ jobs:
# ------------------------------------------------------------------------------------------------------
# Install .Net core SDK 8.0.100
# ------------------------------------------------------------------------------------------------------
- name: 'Install .NET 8'
- name: 'Install .NET 10'
uses: actions/setup-dotnet@v3
with:
dotnet-version: 8.0.100
dotnet-version: 10.0.103
# ------------------------------------------------------------------------------------------------------
# Install Mono - for Ubuntu as pre-requisite for building Ginger
# ------------------------------------------------------------------------------------------------------
Expand Down
15 changes: 8 additions & 7 deletions .github/workflows/Release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,11 +24,11 @@ jobs:

- name: Make Ginger macOS Runtime file executable
run: |
find ./Ginger/GingerRuntime/bin/Release/net8.0/osx-x64/selenium-manager -type f -print0 | xargs -0 chmod +x
find ./Ginger/GingerRuntime/bin/Release/net10.0/osx-x64/selenium-manager -type f -print0 | xargs -0 chmod +x

- uses: sibiraj-s/action-archiver@v1
with:
path: './Ginger/GingerRuntime/bin/Release/net8.0/osx-x64'
path: './Ginger/GingerRuntime/bin/Release/net10.0/osx-x64'
format: tar
gzip: true
output: ./Runtime/GingerRuntime_MacOS.tar.gz
Expand Down Expand Up @@ -72,11 +72,11 @@ jobs:
- name: Make Ginger Runtime file executable
run: |
ls -altr
find ./Ginger/GingerRuntime/bin/Release/net8.0/linux-x64/selenium-manager -type f -print0 | xargs -0 chmod +x
find ./Ginger/GingerRuntime/bin/Release/net10.0/linux-x64/selenium-manager -type f -print0 | xargs -0 chmod +x

- uses: sibiraj-s/action-archiver@v1
with:
path: './Ginger/GingerRuntime/bin/Release/net8.0/linux-x64'
path: './Ginger/GingerRuntime/bin/Release/net10.0/linux-x64'
format: tar
gzip: true
output: ./Runtime/GingerRuntime_Linux.tar.gz
Expand Down Expand Up @@ -124,13 +124,13 @@ jobs:
true

- name: 'delete Help\Library'
run: rmdir /s /q Ginger\Ginger\bin\Release\net8.0-windows10.0.17763.0\Help\Library
run: rmdir /s /q Ginger\Ginger\bin\Release\net10.0-windows10.0.17763.0\Help\Library
shell: cmd

- name: 'add help Library'
shell: cmd
run: |
cd Ginger\Ginger\bin\Release\net8.0-windows10.0.17763.0\Help
cd Ginger\Ginger\bin\Release\net10.0-windows10.0.17763.0\Help
git clone https://github.com/Ginger-Automation/Ginger-Web-Help.git
move Ginger-Web-Help\docs .
rename docs Library
Expand Down Expand Up @@ -206,7 +206,7 @@ jobs:
- name: Create Signed Directory for dll
if: ${{ github.event.inputs.SSLCert != 'No' }}
run: |
mkdir -p D:\a\Ginger\Ginger\Ginger\Ginger\bin\Release\net8.0-windows10.0.17763.0\dist
mkdir -p D:\a\Ginger\Ginger\Ginger\Ginger\bin\Release\net10.0-windows10.0.17763.0\dist
shell: cmd

- name: Signing using Signtool dll
Expand All @@ -216,6 +216,7 @@ jobs:
#recursive: true
#if {% ${{ folder }}='Ginger'%}
run: |
dir "D:\a\Ginger\Ginger\Ginger\Ginger\bin\Release\"
copy D:\a\Ginger\Ginger\Ginger\Ginger\bin\Release\net8.0-windows10.0.17763.0\GingerCore.dll D:\a\Ginger\Ginger\Ginger\Ginger\bin\Release\net8.0-windows10.0.17763.0\dist\GingerCore.dll
copy D:\a\Ginger\Ginger\Ginger\Ginger\bin\Release\net8.0-windows10.0.17763.0\Ginger.dll D:\a\Ginger\Ginger\Ginger\Ginger\bin\Release\net8.0-windows10.0.17763.0\dist\Ginger.dll
copy D:\a\Ginger\Ginger\Ginger\Ginger\bin\Release\net8.0-windows10.0.17763.0\Ginger.ExecuterService.Contracts.dll D:\a\Ginger\Ginger\Ginger\Ginger\bin\Release\net8.0-windows10.0.17763.0\dist\Ginger.ExecuterService.Contracts.dll
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/Test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -53,12 +53,12 @@ jobs:


# ------------------------------------------------------------------------------------------------------
# Install .Net core SDK 8.0.100
# Install .Net core SDK 10.0.103
# ------------------------------------------------------------------------------------------------------
- name: Setup .NET
uses: actions/setup-dotnet@v3
with:
dotnet-version: 8.0.100
dotnet-version: 10.0.103
# ------------------------------------------------------------------------------------------------------
# Install Mono - for Ubuntu as pre-requisite for building Ginger
# ------------------------------------------------------------------------------------------------------
Expand Down
2 changes: 1 addition & 1 deletion CLITests.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ Write-Host "-------------------------------------------------------------"
Write-Host "- Run CLI Tests -"
Write-Host "-------------------------------------------------------------"

cd /home/vsts/work/1/s/Ginger/GingerRuntime/bin/Release/net8.0/publish/
cd /home/vsts/work/1/s/Ginger/GingerRuntime/bin/Release/net10.0/publish/


Write-Host "******************************************************************************************************************************"
Expand Down
2 changes: 1 addition & 1 deletion CLITestsGithub.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ echo "-------------------------------------------------------------"
echo "- Run CLI Tests -"
echo "-------------------------------------------------------------"

cd /home/runner/work/Ginger/Ginger/Ginger/GingerRuntime/bin/Release/net8.0/publish/
cd /home/runner/work/Ginger/Ginger/Ginger/GingerRuntime/bin/Release/net10.0/publish/

pwd
ls -alt
Expand Down
2 changes: 1 addition & 1 deletion CLITestsGithub.sh
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ echo "-------------------------------------------------------------"
echo "- Run CLI Tests -"
echo "-------------------------------------------------------------"

cd /home/runner/work/Ginger/Ginger/Ginger/GingerRuntime/bin/Release/net8.0/linux-x64/publish/
cd /home/runner/work/Ginger/Ginger/Ginger/GingerRuntime/bin/Release/net10.0/linux-x64/publish/

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

Guard cd against failure.

If the publish directory doesn't exist (e.g., build wasn't published or path typo), the script silently continues in the wrong directory, causing confusing failures downstream.

Proposed fix
-cd /home/runner/work/Ginger/Ginger/Ginger/GingerRuntime/bin/Release/net10.0/linux-x64/publish/
+cd /home/runner/work/Ginger/Ginger/Ginger/GingerRuntime/bin/Release/net10.0/linux-x64/publish/ || { echo "ERROR: publish directory not found"; exit 1; }
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
cd /home/runner/work/Ginger/Ginger/Ginger/GingerRuntime/bin/Release/net10.0/linux-x64/publish/
cd /home/runner/work/Ginger/Ginger/Ginger/GingerRuntime/bin/Release/net10.0/linux-x64/publish/ || { echo "ERROR: publish directory not found"; exit 1; }
🧰 Tools
🪛 Shellcheck (0.11.0)

[warning] 5-5: Use 'cd ... || exit' or 'cd ... || return' in case cd fails.

(SC2164)

🤖 Prompt for AI Agents
In `@CLITestsGithub.sh` at line 5, Guard the cd to the publish directory by first
checking that the target directory
"/home/runner/work/Ginger/Ginger/Ginger/GingerRuntime/bin/Release/net10.0/linux-x64/publish/"
exists and is accessible; if it does not exist or is not a directory, print a
clear error message and exit with a non-zero status instead of continuing,
otherwise perform the cd. This change should be applied around the existing cd
invocation so the script fails fast with an explanatory message when the publish
directory is missing.

pwd
ls -alt

Expand Down
Binary file not shown.
Binary file not shown.
10 changes: 7 additions & 3 deletions Ginger/Ginger/DataSource/DataSourceExportToExcelPage.xaml
Original file line number Diff line number Diff line change
Expand Up @@ -43,16 +43,20 @@
<Ginger:ucGrid x:Name="xColumnListGrid" MaxHeight="250" AutomationProperties.AutomationId="ColumnListGrid AID" ShowTitle="Collapsed" ShowAdd="Collapsed" Width="500" HorizontalAlignment="Left" ShowClearAll="Collapsed" ShowUpDown="Collapsed" ShowRefresh="Collapsed" ShowEdit="Collapsed" ShowDelete="Collapsed" />

<CheckBox x:Name="xExportWhereChkBox" Content="Filter Record Based On Where Clause :" Click="xExportWhereChkBox_Click" Margin="0,20,0,5" FontWeight="Medium"/>


<Grid Name ="WhereGrid" Background="{StaticResource $BackgroundColor_White}">
<Grid.Resources>
<DataTemplate x:Key="ValueExpressionButton">
<Button x:Name="GridVEButton" Content="..." Click="GridVEButton_Click" Style="{DynamicResource DataGridCellButtonStyle}"/>
</DataTemplate>
</Grid.Resources>
<Grid.ColumnDefinitions/>
<Grid.RowDefinitions/>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Ginger:ucGrid Grid.Row="0" x:Name="xGrdExportCondition" Height="190" Title="Where Condition(s)" Visibility="Collapsed" ShowUpDown="Collapsed"></Ginger:ucGrid>
</Grid>
</StackPanel>
Expand Down
33 changes: 18 additions & 15 deletions Ginger/Ginger/Ginger.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net8.0-windows10.0.17763.0</TargetFramework>
<TargetFramework>net10.0-windows10.0.17763.0</TargetFramework>

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major

Target framework change violates coding guidelines.

Same as GingerCoreTest.csproj — the TargetFramework has been updated to net10.0-windows10.0.17763.0, which conflicts with the repository guideline requiring .NET 8.0. Please confirm this is an intentional, approved deviation.

As per coding guidelines: **/*.csproj: Target framework should be .NET 8.0 with Windows 10.0.17763.0 compatibility.

🤖 Prompt for AI Agents
In `@Ginger/Ginger/Ginger.csproj` at line 5, The project file Ginger.csproj has
its TargetFramework set to net10.0-windows10.0.17763.0 which violates the
repository guideline requiring .NET 8.0; update the <TargetFramework> element in
Ginger.csproj to use net8.0-windows10.0.17763.0 (matching the policy and
GingerCoreTest.csproj) so the project target aligns with the mandated .NET 8.0
framework and Windows compatibility setting.

<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
<Nullable>enable</Nullable>
<UseWPF>true</UseWPF>
Expand Down Expand Up @@ -734,26 +734,28 @@
</ItemGroup>

<ItemGroup>
<PackageReference Include="AvalonEdit" Version="6.3.0.90" />
<PackageReference Include="AvalonEdit" Version="6.3.1.120" />
<PackageReference Include="CommandLineParser" Version="2.9.1" />
<PackageReference Include="DocumentFormat.OpenXml" Version="3.0.1" />
<PackageReference Include="DocumentFormat.OpenXml" Version="3.4.1" />
<PackageReference Include="EPPlus" Version="6.0.4" />
<PackageReference Include="FontAwesome6.Fonts" Version="2.5.1" />
<PackageReference Include="FontAwesome6.Svg" Version="2.5.1" />
<PackageReference Include="Gherkin" Version="5.1.0" />
<PackageReference Include="Ginger.AccountReport.Contracts" Version="2025.4.0" />
<PackageReference Include="Ginger.ExecuterService.Contracts" Version="2025.4.2.1" />
<PackageReference Include="HtmlAgilityPack" Version="1.11.58" />
<PackageReference Include="HtmlAgilityPack" Version="1.12.4" />
<PackageReference Include="IdentityModel" Version="7.0.0" />
<PackageReference Include="LiteDB" Version="5.0.21" />
<PackageReference Include="LiveCharts.Wpf.NetCore3" Version="0.9.7" />
<PackageReference Include="LiveCharts.Wpf.NetCore3" Version="0.9.8" />
<PackageReference Include="log4net" Version="2.0.15" />
<PackageReference Include="Magick.NET-Q16-AnyCPU" Version="14.10.0" />
<PackageReference Include="Microsoft.Extensions.AI.OpenAI" Version="9.4.0-preview.1.25207.5" />
<PackageReference Include="Magick.NET-Q16-AnyCPU" Version="14.10.2" />
<PackageReference Include="Microsoft.Extensions.AI.OpenAI" Version="10.3.0" />
<PackageReference Include="Microsoft.IdentityModel.JsonWebTokens" Version="8.15.0" />
<PackageReference Include="Microsoft.IdentityModel.Tokens" Version="8.15.0" />
<PackageReference Include="Microsoft.NETCore.App" Version="2.1.30" />

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

🧩 Analysis chain

🏁 Script executed:

# First, check the actual TargetFramework in the csproj file
head -50 Ginger/Ginger/Ginger.csproj | grep -i targetframework

Repository: Ginger-Automation/Ginger

Length of output: 134


🏁 Script executed:

# Read around line 755 to see the context
sed -n '750,760p' Ginger/Ginger/Ginger.csproj

Repository: Ginger-Automation/Ginger

Length of output: 972


🏁 Script executed:

# Check if there are other .NET Core 2.1 related references
rg -n 'Microsoft\.NETCore\.App|net21|netcore21' Ginger/Ginger/Ginger.csproj

Repository: Ginger-Automation/Ginger

Length of output: 145


🏁 Script executed:

# Check the entire PropertyGroup for target framework
rg -A 20 '<PropertyGroup>' Ginger/Ginger/Ginger.csproj | head -30

Repository: Ginger-Automation/Ginger

Length of output: 1026


Remove the Microsoft.NETCore.App 2.1.30 package reference.

This package targets .NET Core 2.1, which has been out of support since August 2021. It should not be explicitly referenced in projects targeting .NET 10.0. Explicitly specifying an older runtime package contradicts the target framework and should be removed.

🤖 Prompt for AI Agents
In `@Ginger/Ginger/Ginger.csproj` at line 755, Remove the explicit
PackageReference for Microsoft.NETCore.App Version="2.1.30" from the project
file: locate the PackageReference element with Include="Microsoft.NETCore.App"
and delete that entry so the project relies on the target framework (net10.0)
implicit runtime instead of pinning an out-of-support .NET Core 2.1 runtime.

<PackageReference Include="Microsoft.Office.Interop.Excel" Version="15.0.4795.1001" />
<PackageReference Include="Microsoft.VisualStudio.Services.MemberEntitlementManagement.WebApi" Version="16.205.1" />
<PackageReference Include="Microsoft.Web.WebView2" Version="1.0.3179.45" />
<PackageReference Include="Microsoft.VisualStudio.Services.MemberEntitlementManagement.WebApi" Version="19.225.2" />
<PackageReference Include="Microsoft.Web.WebView2" Version="1.0.3719.77" />
<PackageReference Include="Mono.Posix" Version="7.1.0-final.1.21458.1" />
<PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
<PackageReference Include="NSwag.Core.Yaml" Version="12.0.9" />
Expand All @@ -762,16 +764,17 @@
<PackageReference Include="Selenium.WebDriver.IEDriver" Version="4.14.0" />
<PackageReference Include="sharpadbclient" Version="2.3.23" />
<PackageReference Include="Syncfusion.Shared.WPF" Version="20.1.0.55" />
<PackageReference Include="System.Data.OleDb" Version="8.0.0" />
<PackageReference Include="System.Data.OleDb" Version="10.0.3" />
<PackageReference Include="System.Data.SqlClient" Version="4.9.0" />
<PackageReference Include="System.Drawing.Common" Version="9.0.5" />
<PackageReference Include="System.Drawing.Common" Version="10.0.2" />
<PackageReference Include="System.Formats.Asn1" Version="9.0.1" />
<PackageReference Include="System.IdentityModel.Tokens.Jwt" Version="8.15.0" />
<PackageReference Include="System.IO.Packaging" Version="9.0.1" />
<PackageReference Include="System.Linq.Dynamic.Core" Version="1.6.0.1" />
<PackageReference Include="System.Management" Version="8.0.0" />
<PackageReference Include="System.Security.Cryptography.Pkcs" Version="9.0.1" />
<PackageReference Include="System.Text.Json" Version="9.0.1" />
<PackageReference Include="System.Web.Services.Description" Version="8.0.0" />
<PackageReference Include="System.Management" Version="10.0.3" />
<PackageReference Include="System.Security.Cryptography.Pkcs" Version="10.0.3" />
<PackageReference Include="System.Text.Json" Version="10.0.2" />
Comment on lines +767 to +776

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major

🧩 Analysis chain

🌐 Web query:

.NET 10 release status February 2026

💡 Result:

As of February 2026, .NET 10 is already released and in active support:

  • Release (GA): November 11, 2025 (it’s an LTS release). [1][2]
  • Current status: Supported / Active (production-ready). [1]
  • Latest servicing update noted by Microsoft: .NET 10.0.3 update dated February 10, 2026 (security fixes). [3]
  • End of support: November 14, 2028 (per Microsoft support/lifecycle listings). [1][4]

Sources:
[1] https://dotnet.microsoft.com/en-us/platform/support/policy
[2] https://devblogs.microsoft.com/dotnet/announcing-dotnet-10/
[3] https://support.microsoft.com/en-gb/topic/-net-10-0-update-february-10-2026-8f92b4a7-5f32-4943-a6aa-4abac452bb34
[4] https://learn.microsoft.com/en-us/lifecycle/products/microsoft-net-and-net-core


🌐 Web query:

System.Text.Json 10.0.2 NuGet stable release

💡 Result:

System.Text.Json 10.0.2 is a stable (non-prerelease) NuGet release, published January 13, 2026. [1]

As of February 10, 2026, 10.0.3 is available as a newer stable version. [1]


🌐 Web query:

System.Data.OleDb 10.0.3 NuGet release

💡 Result:

There is no System.Data.OleDb NuGet release 10.0.3 on NuGet.org as of February 13, 2026. The latest available 10.x version shown is 10.0.2, last updated January 13, 2026. [1]


🏁 Script executed:

# Check the TargetFramework and TargetPlatformVersion in Ginger.csproj
cd Ginger/Ginger
head -50 Ginger.csproj | grep -E "(TargetFramework|TargetPlatformVersion|RuntimeIdentifier)"

Repository: Ginger-Automation/Ginger

Length of output: 134


🌐 Web query:

System.Drawing.Common 10.0.2 NuGet release stable

💡 Result:

System.Drawing.Common 10.0.2 is a stable (non–pre-release) NuGet package—it has no -preview, -rc, or other prerelease suffix and is listed on NuGet as Last Updated / published: January 13, 2026. [1]

Install:

dotnet add package System.Drawing.Common --version 10.0.2

[2]

Sources
[1] NuGet package page (System.Drawing.Common 10.0.2) (nuget.org)
[2] NuGet version-specific page with install command (nuget.org)

Citations:


🌐 Web query:

System.Management 10.0.3 NuGet release

💡 Result:

System.Management 10.0.3 is available on NuGet and was last updated (released) on Feb 10, 2026. A newer 11.0.0-preview.1 prerelease is also listed. [1]

Install:

dotnet add package System.Management --version 10.0.3

[1]


🌐 Web query:

System.Security.Cryptography.Pkcs 10.0.3 NuGet release

💡 Result:

System.Security.Cryptography.Pkcs NuGet 10.0.3 was published/last updated on February 10, 2026. [1]

Install:

dotnet add package System.Security.Cryptography.Pkcs --version 10.0.3

Or:

<PackageReference Include="System.Security.Cryptography.Pkcs" Version="10.0.3" />

Targets .NET Framework 4.6.2, .NET Standard 2.0/2.1, and is compatible with net8.0, net9.0, and net10.0 (with net10.0 having no package dependencies). [1]

Notable dependency version bumps in 10.0.3 include Microsoft.Bcl.Cryptography (>= 10.0.3) and System.Formats.Asn1 (>= 10.0.3) (plus others depending on TFM). [1]

Source: NuGet package page. [1]


System.Data.OleDb 10.0.3 does not exist on NuGet.org; only 10.0.2 is available.

The version specified for System.Data.OleDb (10.0.3) is not available. NuGet shows only 10.0.3 as the latest 10.x release (published January 13, 2026). Either downgrade to 10.0.2 or verify the intended version. Additionally, the project's TargetFramework is set to net10.0-windows10.0.17763.0, which differs from the stated guideline of .NET 8.0; confirm this is intentional.

🤖 Prompt for AI Agents
In `@Ginger/Ginger/Ginger.csproj` around lines 767 - 776, The csproj references a
non-existent NuGet version for System.Data.OleDb (PackageReference
Include="System.Data.OleDb" Version="10.0.3"); change this Version to 10.0.2 (or
confirm and pin the intended available version) and restore to ensure package
resolution succeeds, and also verify the project's TargetFramework element
(currently set to "net10.0-windows10.0.17763.0") — if the guideline requires
.NET 8.0, update TargetFramework to the appropriate net8.0(-windows...) value or
document/confirm that targeting .NET 10 is intentional.

<PackageReference Include="System.Web.Services.Description" Version="8.1.2" />
<PackageReference Include="System.Windows.Forms.DataVisualization" Version="1.0.0-prerelease.20110.1" />
<PackageReference Include="TWP.Selenium.Axe.Html" Version="0.0.1" />
<PackageReference Include="UIAComWrapperNetstandard" Version="1.0.1">
Expand Down
2 changes: 1 addition & 1 deletion Ginger/GingerAutoPilot/GingerAutoPilot.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
</PropertyGroup>

<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
<TargetFramework>net10.0</TargetFramework>
<Version>4.1.0</Version>
<AssemblyVersion>4.1.0.0</AssemblyVersion>
<FileVersion>4.1.1.0</FileVersion>
Expand Down
4 changes: 2 additions & 2 deletions Ginger/GingerAutoPilotTest/GingerAutoPilotTest.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
</PropertyGroup>

<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
<TargetFramework>net10.0</TargetFramework>

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major

🧩 Analysis chain

🌐 Web query:

.NET 10 release status February 2026

💡 Result:

As of February 2026, .NET 10 is already generally available (GA) and is an LTS release.

  • GA (original release): November 11, 2025; Support: Active; End of support: November 14, 2028. [1]
  • Latest servicing release (as of Feb 2026): .NET 10.0.3, released February 10, 2026 (includes security fixes). [2][3]
  • Latest SDK shown for .NET 10.0.3: SDK 10.0.103. [2]

Sources: [1] .NET Support Policy (Microsoft) [2] .NET 10.0 downloads page (Microsoft) [3] .NET 10.0 Update – Feb 10, 2026 (Microsoft Support)


🏁 Script executed:

# Read the GingerAutoPilotTest.csproj file to confirm the current state
cat -n Ginger/GingerAutoPilotTest/GingerAutoPilotTest.csproj | head -30

Repository: Ginger-Automation/Ginger

Length of output: 1227


🏁 Script executed:

# Check other .csproj files in the repository to see if they follow the .NET 8.0 guideline
fd -e csproj -x head -15 {} \; | grep -B5 "TargetFramework" | head -50

Repository: Ginger-Automation/Ginger

Length of output: 1634


Update target framework to follow coding guidelines, or update guidelines consistently across the PR.

The repository's coding guidelines require .csproj files to target .NET 8.0 with Windows 10.0.17763.0 compatibility. This change to net10.0 violates that guideline. Additionally, the file is missing the <TargetPlatformVersion>10.0.17763.0</TargetPlatformVersion> property required by the guideline.

If this migration to .NET 10 is intentional, the coding guidelines in .github/copilot-instructions.md should be updated in this same PR to remain consistent across the repository.

🤖 Prompt for AI Agents
In `@Ginger/GingerAutoPilotTest/GingerAutoPilotTest.csproj` at line 11, The
project currently sets <TargetFramework>net10.0</TargetFramework> which violates
the repo guideline requiring .NET 8.0 with Windows compatibility and is also
missing the required <TargetPlatformVersion>10.0.17763.0</TargetPlatformVersion>
property; change the <TargetFramework> element back to net8.0 and add a
<TargetPlatformVersion>10.0.17763.0</TargetPlatformVersion> entry in the csproj
(or, if the migration to net10.0 is intentional, update the repository guideline
file .github/copilot-instructions.md in this PR to reflect net10.0 and
remove/add the appropriate TargetPlatformVersion requirement so the change is
consistent).

<IsPackable>false</IsPackable>

<ApplicationIcon />
Expand All @@ -22,7 +22,7 @@

<ItemGroup>
<PackageReference Include="GingerTestHelper" Version="2.0.2" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.8.0" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="18.0.1" />
<PackageReference Include="MSTest.TestAdapter" Version="2.1.2" />
<PackageReference Include="MSTest.TestFramework" Version="2.1.2" />
<PackageReference Include="System.Net.Http" Version="4.3.4" />
Expand Down
12 changes: 8 additions & 4 deletions Ginger/GingerConsoleTest/GingerConsoleTest.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -8,24 +8,28 @@
</PropertyGroup>

<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
<TargetFramework>net10.0</TargetFramework>

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major

Missing -windows10.0.17763.0 TFM suffix and guideline violation.

The target framework was changed from net8.0-windows10.0.17763.0 to net10.0, dropping the Windows platform specifier. This will prevent the project from accessing Windows-specific APIs and may break compilation if any dependency (direct or transitive) requires the Windows TFM.

If the .NET 10 upgrade is intentional and approved, the TFM should at minimum be net10.0-windows10.0.17763.0 to maintain parity with the previous configuration.

Additionally, the repository's coding guidelines for **/*.csproj state that the target framework should be .NET 8.0 with Windows 10.0.17763.0 compatibility. Please confirm this upgrade has been discussed and the guidelines will be updated accordingly.

Suggested fix (assuming .NET 10 upgrade is approved)
-    <TargetFramework>net10.0</TargetFramework>
+    <TargetFramework>net10.0-windows10.0.17763.0</TargetFramework>

As per coding guidelines, **/*.csproj: "Target framework should be .NET 8.0 with Windows 10.0.17763.0 compatibility". Based on learnings, "The Ginger project primarily targets .NET 8.0" and the copilot-instructions.md also specifies .NET 8.0 with Windows 10.0.17763.0 compatibility.

📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
<TargetFramework>net10.0</TargetFramework>
<TargetFramework>net10.0-windows10.0.17763.0</TargetFramework>
🤖 Prompt for AI Agents
In `@Ginger/GingerConsoleTest/GingerConsoleTest.csproj` at line 11, The
TargetFramework element in GingerConsoleTest.csproj was changed to net10.0 which
removes the Windows TFM suffix; either restore the previous Windows-specific TFM
or follow repo guidelines: change the <TargetFramework> value to
net10.0-windows10.0.17763.0 if the .NET 10 upgrade is approved, otherwise revert
to the mandated value net8.0-windows10.0.17763.0 in the <TargetFramework>
element to preserve Windows API compatibility and comply with the repository
csproj guideline.

<IsPackable>false</IsPackable>
<PlatformTarget>AnyCPU</PlatformTarget>
</PropertyGroup>

<ItemGroup>
<PackageReference Include="Ginger.ExecuterService.Contracts" Version="2025.4.2.1" />
<PackageReference Include="GingerTestHelper" Version="2.0.2" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.8.0" />
<PackageReference Include="Microsoft.IdentityModel.JsonWebTokens" Version="8.15.0" />
<PackageReference Include="Microsoft.IdentityModel.Tokens" Version="8.15.0" />
Comment on lines +19 to +20

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Check if IdentityModel packages are directly used in GingerConsoleTest source files
echo "=== Direct usage of IdentityModel in GingerConsoleTest ==="
fd -e cs . 'Ginger/GingerConsoleTest' --exec rg 'using.*IdentityModel|JsonWebToken|IdentityModel.Tokens' {} + 2>/dev/null | head -20

echo ""
echo "=== Check GingerConsoleTest.csproj context (lines around 19-20) ==="
cat -n Ginger/GingerConsoleTest/GingerConsoleTest.csproj | sed -n '1,30p'

echo ""
echo "=== Check if these packages appear in other csproj files ==="
rg -n 'Microsoft.IdentityModel.JsonWebTokens|Microsoft.IdentityModel.Tokens' --glob '*.csproj' | head -30

echo ""
echo "=== Look for OWASPZAPDotNetAPI usage pattern (similar to learnings) ==="
rg -n 'OWASPZAPDotNetAPI' --glob '*.csproj'

Repository: Ginger-Automation/Ginger

Length of output: 5284


Consolidate Microsoft.IdentityModel packages using central package management rather than repeating across multiple projects.

No direct usage of Microsoft.IdentityModel.JsonWebTokens or Microsoft.IdentityModel.Tokens is found in GingerConsoleTest source code. However, these packages are pinned identically (8.15.0) across the entire solution—appearing in 10+ projects including GingerCore, GingerCoreNET, and multiple test projects. This pattern indicates intentional transitive dependency pinning for consistency.

Rather than adding PrivateAssets="all" to individual project files, use a Directory.Packages.props file at the solution root to centrally manage these versions. This ensures consistent versioning across all projects and makes dependency intent explicit and maintainable.

🤖 Prompt for AI Agents
In `@Ginger/GingerConsoleTest/GingerConsoleTest.csproj` around lines 19 - 20,
Remove the two explicit PackageReference entries for
Microsoft.IdentityModel.JsonWebTokens and Microsoft.IdentityModel.Tokens from
GingerConsoleTest.csproj and instead centralize their versions by adding
PackageVersion entries in the solution-level Directory.Packages.props (e.g.,
<PackageVersion Include="Microsoft.IdentityModel.JsonWebTokens" Version="8.15.0"
/> and <PackageVersion Include="Microsoft.IdentityModel.Tokens" Version="8.15.0"
/>); also ensure the solution is configured for central package management (add
or confirm <ManagePackageVersionsCentrally>true</ManagePackageVersionsCentrally>
in Directory.Packages.props or equivalent) so other projects can reference these
packages without embedding the version.

<PackageReference Include="Microsoft.NET.Test.Sdk" Version="18.0.1" />
<PackageReference Include="Microsoft.NETCore.App" Version="2.1.30" />
<PackageReference Include="MSTest.TestAdapter" Version="2.1.2" />
<PackageReference Include="MSTest.TestFramework" Version="2.1.2" />
<PackageReference Include="SixLabors.ImageSharp" Version="3.1.12" />
<PackageReference Include="System.Data.SqlClient" Version="4.9.0" />
<PackageReference Include="System.Formats.Asn1" Version="9.0.1" />
<PackageReference Include="System.IdentityModel.Tokens.Jwt" Version="8.15.0" />
<PackageReference Include="System.IO.Packaging" Version="9.0.1" />
<PackageReference Include="System.Resources.Extensions" Version="8.0.0" />
<PackageReference Include="System.Security.Cryptography.Pkcs" Version="9.0.1" />
<PackageReference Include="System.Text.Json" Version="9.0.1" />
<PackageReference Include="System.Security.Cryptography.Pkcs" Version="10.0.3" />
<PackageReference Include="System.Text.Json" Version="10.0.2" />

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major

🧩 Analysis chain

🌐 Web query:

System.Text.Json 10.0.2 stable release NuGet

💡 Result:

System.Text.Json 10.0.2 is a stable NuGet release and is published on NuGet.org (last updated Jan 13, 2026). [1]

Install it with:

dotnet add package System.Text.Json --version 10.0.2

or

Install-Package System.Text.Json -Version 10.0.2

[2]

Note: NuGet.org currently lists 10.0.3 (stable) as a newer version (posted Feb 10, 2026). [2]

Sources: [1] [2]


🏁 Script executed:

# Check the target framework in the csproj file
cat Ginger/GingerConsoleTest/GingerConsoleTest.csproj | head -50

Repository: Ginger-Automation/Ginger

Length of output: 2482


Change TargetFramework to .NET 8.0 to comply with coding guidelines. This project targets net10.0, but the coding guidelines require .NET 8.0 with Windows 10.0.17763.0 compatibility. Additionally, if changing to .NET 8.0, consider downgrading System.Text.Json to a version compatible with that framework (e.g., 8.0.x), since 10.0.2 is aligned with .NET 10.

🤖 Prompt for AI Agents
In `@Ginger/GingerConsoleTest/GingerConsoleTest.csproj` at line 30, Update the
project TargetFramework from net10.0 to the required .NET 8 target (use
TargetFramework value net8.0-windows10.0.17763.0) in the
GingerConsoleTest.csproj and also adjust the System.Text.Json package reference
(the PackageReference Include="System.Text.Json" Version="10.0.2" entry) to a
version compatible with .NET 8 (e.g., change Version to an 8.0.x release);
ensure the PackageReference stays present but with a downgraded 8.x version that
matches the new TargetFramework.

</ItemGroup>

<ItemGroup>
Expand Down
8 changes: 4 additions & 4 deletions Ginger/GingerControls/GingerControls.csproj
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net8.0-windows7.0</TargetFramework>
<TargetFramework>net10.0-windows7.0</TargetFramework>

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major

🧩 Analysis chain

🌐 Web query:

.NET 10 GA release date stable production 2026

💡 Result:

  • .NET 10 GA (General Availability) / production release date: November 11, 2025. [1][2]
  • Is it stable for production use in 2026? Yes — .NET 10 is an LTS release and is in Active support during 2026. [1]
  • Support end date (LTS): November 14, 2028 (Microsoft lifecycle listing shows the same timeframe). [1][2]
  • Latest patch as of Jan 13, 2026: .NET 10.0.2. [1]

Sources: [1] .NET Support Policy (dotnet.microsoft.com) · [2] Microsoft Learn Lifecycle page · [3] .NET Blog announcement of .NET 10


🏁 Script executed:

cat -n Ginger/GingerControls/GingerControls.csproj

Repository: Ginger-Automation/Ginger

Length of output: 1583


Target framework change violates coding guidelines.

The coding guideline for **/*.csproj requires the target framework to be .NET 8.0 with Windows 10.0.17763.0 compatibility. This change targets net10.0-windows7.0, which deviates on both axes:

  1. .NET 10.0 instead of .NET 8.0
  2. windows7.0 instead of windows10.0.17763.0

If this upgrade is intentional and approved, the coding guideline in .github/copilot-instructions.md should be updated accordingly to reflect the new baseline. Note that package versions for Microsoft.Windows.Compatibility and System.Resources.Extensions remain at 8.0.0 — verify these are compatible with .NET 10.0 or update them accordingly.

🤖 Prompt for AI Agents
In `@Ginger/GingerControls/GingerControls.csproj` at line 3, The TargetFramework
in GingerControls.csproj was changed to net10.0-windows7.0 which violates the
repo guideline; revert or update it to net8.0-windows10.0.17763.0 by restoring
the <TargetFramework> value (look for the TargetFramework XML element in
GingerControls.csproj), and if the net10.0 change is intentional, update the
guideline file (.github/copilot-instructions.md) to document the new baseline
and verify/update package versions (e.g., Microsoft.Windows.Compatibility and
System.Resources.Extensions) for compatibility with .NET 10.0.

<OutputType>Library</OutputType>
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
<UseWPF>true</UseWPF>
Expand All @@ -10,17 +10,17 @@
<ItemGroup>
<PackageReference Include="Microsoft.CSharp" Version="4.7.0" />
<PackageReference Include="System.Data.DataSetExtensions" Version="4.5.0" />
<PackageReference Include="Microsoft.DotNet.UpgradeAssistant.Extensions.Default.Analyzers" Version="0.3.310801">
<PackageReference Include="Microsoft.DotNet.UpgradeAssistant.Extensions.Default.Analyzers" Version="0.4.421302">
<PrivateAssets>all</PrivateAssets>
</PackageReference>
<PackageReference Include="Microsoft.Windows.Compatibility" Version="8.0.0" />
<PackageReference Include="Microsoft.Windows.Compatibility" Version="10.0.3" />

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🔴 Critical

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Check if the specified package versions exist on NuGet
echo "=== Microsoft.Windows.Compatibility 10.0.3 ==="
curl -s -o /dev/null -w "HTTP Status: %{http_code}\n" "https://api.nuget.org/v3-flatcontainer/microsoft.windows.compatibility/10.0.3/microsoft.windows.compatibility.nuspec"

echo "=== System.Security.Cryptography.Pkcs 10.0.3 ==="
curl -s -o /dev/null -w "HTTP Status: %{http_code}\n" "https://api.nuget.org/v3-flatcontainer/system.security.cryptography.pkcs/10.0.3/system.security.cryptography.pkcs.nuspec"

Repository: Ginger-Automation/Ginger

Length of output: 197


🏁 Script executed:

# Read the .csproj file to check target framework and see all package references
cat -n Ginger/GingerControls/GingerControls.csproj

Repository: Ginger-Automation/Ginger

Length of output: 1585


Update target framework to .NET 8.0 and set Windows compatibility to 10.0.17763.0.

The packages Microsoft.Windows.Compatibility 10.0.3 and System.Security.Cryptography.Pkcs 10.0.3 exist and are valid. However, the project's target framework violates the coding guidelines: the file currently specifies net10.0-windows7.0 (line 3), but guidelines require .NET 8.0 with Windows 10.0.17763.0 compatibility.

🤖 Prompt for AI Agents
In `@Ginger/GingerControls/GingerControls.csproj` at line 16, Update the project's
TargetFramework element from net10.0-windows7.0 to net8.0-windows10.0.17763.0
and ensure the Windows compatibility version is set to 10.0.17763.0; locate the
TargetFramework XML node (and any <TargetFramework> or <PropertyGroup> entries)
and change its value accordingly, and also verify the
Microsoft.Windows.Compatibility PackageReference (package id
Microsoft.Windows.Compatibility) is compatible or updated if needed to match the
new target framework.

<PackageReference Include="System.Data.SqlClient" Version="4.9.0" />
<PackageReference Include="System.Formats.Asn1" Version="9.0.1" />
<PackageReference Include="System.IO.Packaging" Version="9.0.1" />
Comment on lines 18 to 19

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

🧩 Analysis chain

🏁 Script executed:

# First, examine the full csproj file to see the target framework and all PackageReferences
cat -n Ginger/GingerControls/GingerControls.csproj

Repository: Ginger-Automation/Ginger

Length of output: 1585


🏁 Script executed:

# Check latest available versions for the packages mentioned in the review
for pkg in "system.formats.asn1" "system.io.packaging" "system.resources.extensions"; do
  echo "=== $pkg ==="
  curl -s "https://api.nuget.org/v3-flatcontainer/$pkg/index.json" | jq -r '.versions | .[-10:]' 2>/dev/null || echo "Failed to fetch"
  echo ""
done

Repository: Ginger-Automation/Ginger

Length of output: 861


Update packages to match net10.0 target and align with System.Security.Cryptography.Pkcs.

System.Formats.Asn1, System.IO.Packaging, and System.Resources.Extensions are outdated relative to the net10.0 target. Version 10.0.3 is available and stable for all three; update them to match the 10.0.3 version already in use by System.Security.Cryptography.Pkcs.

🤖 Prompt for AI Agents
In `@Ginger/GingerControls/GingerControls.csproj` around lines 18 - 19, The
project references for System.Formats.Asn1 and System.IO.Packaging (and
add/update System.Resources.Extensions if present) are pinned to 9.0.1 which is
older than the net10.0 target and the System.Security.Cryptography.Pkcs
dependency; update the PackageReference Version attributes for
System.Formats.Asn1 and System.IO.Packaging to "10.0.3" and ensure
System.Resources.Extensions is also set to "10.0.3" so all these packages align
with the net10.0 target and the existing System.Security.Cryptography.Pkcs
version.

</ItemGroup>
<ItemGroup>
<PackageReference Include="System.Resources.Extensions" Version="8.0.0" />
<PackageReference Include="System.Security.Cryptography.Pkcs" Version="9.0.1" />
<PackageReference Include="System.Security.Cryptography.Pkcs" Version="10.0.3" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\GingerUtils\GingerUtils.csproj" />
Expand Down
3 changes: 3 additions & 0 deletions Ginger/GingerCore/Actions/ScreenCapture/SnippingTool.cs
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ limitations under the License.
using System.Drawing.Imaging;
using System.IO;
using System.Windows.Forms;
using System.ComponentModel;

namespace ScreenSnipApplication
{
Expand Down Expand Up @@ -55,10 +56,12 @@ public SnippingTool(Image screenShot, string argsFilePath)
this.DoubleBuffered = true;
this.FilePath = argsFilePath;
}
[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
public Image Image { get; set; }

public Rectangle rcSelect = new Rectangle();
public Point pntStart;
[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
public string FilePath { get; set; }

protected override void OnMouseDown(MouseEventArgs e)
Expand Down
Loading
Loading