diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index dec6258c..0b9327da 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -127,3 +127,42 @@ jobs:
generate_release_notes: true
draft: false
prerelease: ${{ contains(github.ref_name, '-') }}
+
+ # Open a PR on microsoft/winget-pkgs for the new version using Microsoft's wingetcreate.
+ # It downloads the just-published installer, computes the SHA256, bumps the version, and
+ # submits the PR. The existing manifest's fields (incl. the .NET PackageDependencies) are
+ # carried forward, so the runtime dependency stays intact across updates.
+ #
+ # Requirements / notes:
+ # * Secret WINGET_TOKEN: a GitHub PAT (classic, scope 'public_repo') whose account has a
+ # fork of microsoft/winget-pkgs. wingetcreate pushes the branch to that fork.
+ # * Skipped for prereleases (beta tags) since winget-pkgs only accepts stable versions.
+ # * Skipped (with a warning, not a failure) when the secret is absent.
+ # * The package must already exist in winget-pkgs; the very first submission is manual.
+ - name: Submit new version to winget community repo
+ if: ${{ !contains(github.ref_name, '-') }}
+ shell: pwsh
+ env:
+ WINGET_TOKEN: ${{ secrets.WINGET_TOKEN }}
+ run: |
+ if ([string]::IsNullOrWhiteSpace($env:WINGET_TOKEN)) {
+ Write-Host "::warning::WINGET_TOKEN secret not set; skipping winget submission."
+ exit 0
+ }
+
+ $installer = Get-ChildItem bin/LogExpert-Setup-*.exe | Select-Object -First 1
+ if (-not $installer) {
+ Write-Host "::error::No installer found in bin/; cannot submit winget update."
+ exit 1
+ }
+
+ $version = $installer.BaseName -replace '^LogExpert-Setup-', ''
+ $url = "https://github.com/${{ github.repository }}/releases/download/${{ github.ref_name }}/$($installer.Name)"
+ Write-Host "Submitting LogExperts.LogExpert $version -> $url"
+
+ Invoke-WebRequest -Uri https://aka.ms/wingetcreate/latest -OutFile wingetcreate.exe
+ ./wingetcreate.exe update LogExperts.LogExpert `
+ --version $version `
+ --urls $url `
+ --submit `
+ --token $env:WINGET_TOKEN
diff --git a/src/PluginRegistry/PluginHashGenerator.Generated.cs b/src/PluginRegistry/PluginHashGenerator.Generated.cs
index 68ccd604..172dc211 100644
--- a/src/PluginRegistry/PluginHashGenerator.Generated.cs
+++ b/src/PluginRegistry/PluginHashGenerator.Generated.cs
@@ -10,7 +10,7 @@ public static partial class PluginValidator
{
///
/// Gets pre-calculated SHA256 hashes for built-in plugins.
- /// Generated: 2026-06-10 15:04:17 UTC
+ /// Generated: 2026-06-12 09:51:39 UTC
/// Configuration: Release
/// Plugin count: 21
///
@@ -18,27 +18,27 @@ public static Dictionary GetBuiltInPluginHashes()
{
return new Dictionary(StringComparer.OrdinalIgnoreCase)
{
- ["AutoColumnizer.dll"] = "E4B38EF06D529544235164D80293F136C5A86926C182BA4C71BDFE3735D779FF",
+ ["AutoColumnizer.dll"] = "DF7871D88A3A75CAB45DB611492DA68EEB4BEB90C0CEE1C225C87E4AF5C424BE",
["BouncyCastle.Cryptography.dll"] = "E5EEAF6D263C493619982FD3638E6135077311D08C961E1FE128F9107D29EBC6",
["BouncyCastle.Cryptography.dll (x86)"] = "E5EEAF6D263C493619982FD3638E6135077311D08C961E1FE128F9107D29EBC6",
- ["CsvColumnizer.dll"] = "52FF4C445364D904AE5241A02159648931D665FF60C7FA9CCA7AFABE24E37D78",
- ["CsvColumnizer.dll (x86)"] = "52FF4C445364D904AE5241A02159648931D665FF60C7FA9CCA7AFABE24E37D78",
- ["DefaultPlugins.dll"] = "3AF02565D2295FAA391C7366396B3C1144B5EA09F369DE5566D9D34F2A68E5BC",
- ["FlashIconHighlighter.dll"] = "06686AC574387944C8F9F88D230533CE46B1673CCE259ABEDA7C06C6CD27A220",
- ["GlassfishColumnizer.dll"] = "C2A15B5A6604730BA1FA97720BE81006F9AB1B108FC921C5FE9ABD61ED967430",
- ["JsonColumnizer.dll"] = "CDBA1977A604A40AA9C271F03C118498882A96593FC265E3351B4238653FEC2A",
- ["JsonCompactColumnizer.dll"] = "EAE15E1AF60562D7B125BE71AC34D9F45AAEF543624F1CD2FAF11E005CFFEDEE",
- ["Log4jXmlColumnizer.dll"] = "18179D85706FB87E62AB0170C9677B96587E90E3E7B0F73BC1ED947FA4B8A4E0",
- ["LogExpert.Resources.dll"] = "47E64D27822A50093BB7D5508E6EECAD7AA852B92F8E4D27FD891706D6FA45C7",
+ ["CsvColumnizer.dll"] = "A4040D534C628537C4365C5A749F09605F8DD5D8750D0FA2BE1449C7DCA658CA",
+ ["CsvColumnizer.dll (x86)"] = "A4040D534C628537C4365C5A749F09605F8DD5D8750D0FA2BE1449C7DCA658CA",
+ ["DefaultPlugins.dll"] = "83079A302738E8B0CC369FDFA03ECADD15B23EFA9D069FF0A877A6C02B4BEE3B",
+ ["FlashIconHighlighter.dll"] = "B54EBA1E359B31E8BFF7F5EB3174D2B96C08213F9ADE069E04A0499C029972FF",
+ ["GlassfishColumnizer.dll"] = "05EFF3A4E0CF2407B16BC9DD5BCEB242A4D8A8D5E50A2C7C20358574E3242DEE",
+ ["JsonColumnizer.dll"] = "AA004D5491EF9700F877D187B8A83D4F390A5146EF69680AB7BC936BA954A9E0",
+ ["JsonCompactColumnizer.dll"] = "1A4AF5713658A53CCAAB20DF228B65BFC0C61862C74E601F028BE76F2BBAEFD3",
+ ["Log4jXmlColumnizer.dll"] = "1B644C874CE182C64D59F1228F36CB1598496C5667AE7269DA77A7742D092375",
+ ["LogExpert.Resources.dll"] = "10E8AD66C014A646D416418812981E41ECA943B7F502E415F542AC1884AC780F",
["Microsoft.Extensions.DependencyInjection.Abstractions.dll"] = "67FA4325000DB017DC0C35829B416F024F042D24EFB868BCF17A895EE6500A93",
["Microsoft.Extensions.DependencyInjection.Abstractions.dll (x86)"] = "67FA4325000DB017DC0C35829B416F024F042D24EFB868BCF17A895EE6500A93",
["Microsoft.Extensions.Logging.Abstractions.dll"] = "BB853130F5AFAF335BE7858D661F8212EC653835100F5A4E3AA2C66A4D4F685D",
["Microsoft.Extensions.Logging.Abstractions.dll (x86)"] = "BB853130F5AFAF335BE7858D661F8212EC653835100F5A4E3AA2C66A4D4F685D",
- ["RegexColumnizer.dll"] = "7897A2F4A62B6C19DACB3D6FFF69A4AB32C1647B46235403C6420AE0974D2AC0",
- ["SftpFileSystem.dll"] = "A8E38CBFC4D58FEA36B90292180305FA7D026D28878770AB5A07646E16A66251",
- ["SftpFileSystem.dll (x86)"] = "67C691E2416CD73EE81FE716719CCC70763266699C12A5D5296434665B632054",
- ["SftpFileSystem.Resources.dll"] = "2E2CDDD89ADBBDAAEC8C5231280A27B44807823BB4A617626005F12572459EF1",
- ["SftpFileSystem.Resources.dll (x86)"] = "2E2CDDD89ADBBDAAEC8C5231280A27B44807823BB4A617626005F12572459EF1",
+ ["RegexColumnizer.dll"] = "A06B809199FDFBA276DE3834488260D435A5349D60DC166482205A454FE4A106",
+ ["SftpFileSystem.dll"] = "62464A29F1C2A7D62E503BB8441A2C7872B45C500F14BE5136CC6CEB7B5E0166",
+ ["SftpFileSystem.dll (x86)"] = "034CF2ACF4ED737A4AB0D9F8575343B1BA96B45921816C6022FE747B3F229E44",
+ ["SftpFileSystem.Resources.dll"] = "C405004E2B7A7928BBFF551A8ED2E0AA7C6E27262C78688652E0EFCE3B3267FA",
+ ["SftpFileSystem.Resources.dll (x86)"] = "C405004E2B7A7928BBFF551A8ED2E0AA7C6E27262C78688652E0EFCE3B3267FA",
};
}