From 6395ca3a27aeaf2904352fe4435f18881ccca483 Mon Sep 17 00:00:00 2001 From: kitbyte Date: Mon, 15 Jun 2026 00:32:32 +0300 Subject: [PATCH] =?UTF-8?q?release:=201.0.9.0=20=E2=80=94=20panel=20i18n?= =?UTF-8?q?=20+=20self-signed=20build=20signing?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Bump AssemblyInfo to 1.0.9.0 and add the CHANGELOG section. - build.ps1 now code-signs the Release exe with a self-signed certificate (reused across builds, generated on first use, no env or secrets needed) to lower false-positive AV/VirusTotal detections. --- CHANGELOG.md | 12 ++++++++ WandEnhancer/Properties/AssemblyInfo.cs | 4 +-- build.ps1 | 37 +++++++++++++++++++++++++ 3 files changed, 51 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9143bfd..597a4c1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,18 @@ This file is the source of truth for release notes. The newest entry must match the version in `WandEnhancer/Properties/AssemblyInfo.cs`. +## [1.0.9.0] - 2026-06-15 + +### Features + +- The Remote Web Panel now shows mod names, descriptions, and instructions translated to your WeMod account language. #98 +- Added a language selector to the Remote Web Panel (English, Russian, German, French, Spanish, Simplified Chinese) with automatic detection from the browser language. + +### Improvements + +- Release builds are now code-signed, which reduces false-positive antivirus and VirusTotal detections. +- Reworked the Remote Web Panel internals around feature capabilities for easier maintenance, with no change to existing behavior. + ## [1.0.8.4] - 2026-06-10 ### Fixes diff --git a/WandEnhancer/Properties/AssemblyInfo.cs b/WandEnhancer/Properties/AssemblyInfo.cs index fcb2d6b..471e072 100644 --- a/WandEnhancer/Properties/AssemblyInfo.cs +++ b/WandEnhancer/Properties/AssemblyInfo.cs @@ -51,5 +51,5 @@ using System.Windows; // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.8.4")] -[assembly: AssemblyFileVersion("1.0.8.4")] \ No newline at end of file +[assembly: AssemblyVersion("1.0.9.0")] +[assembly: AssemblyFileVersion("1.0.9.0")] \ No newline at end of file diff --git a/build.ps1 b/build.ps1 index f4ee2b4..db2a5c1 100644 --- a/build.ps1 +++ b/build.ps1 @@ -105,5 +105,42 @@ Invoke-Step 'Build solution' { & $msbuild $solutionPath /m /p:Configuration=$Configuration '/p:Platform=Any CPU' /t:Build } +# Code-sign the release executable. A self-signed signature notably lowers +# false-positive AV/VirusTotal detections. The cert is reused across builds and +# generated on first use, so no secrets or env configuration are required. +if ($Configuration -eq 'Release') { + Write-Host '==> Sign WandEnhancer.exe' -ForegroundColor Cyan + + $exePath = Join-Path $repoRoot "WandEnhancer/bin/$Configuration/WandEnhancer.exe" + if (-not (Test-Path $exePath)) { + throw "Executable not found for signing: $exePath" + } + + $signingSubject = 'CN=Wand-Enhancer' + $cert = Get-ChildItem Cert:\CurrentUser\My | + Where-Object { $_.Subject -eq $signingSubject -and $_.HasPrivateKey } | + Select-Object -First 1 + if (-not $cert) { + $cert = New-SelfSignedCertificate ` + -Subject $signingSubject ` + -Type CodeSigningCert ` + -CertStoreLocation Cert:\CurrentUser\My ` + -KeyExportPolicy Exportable ` + -KeyUsage DigitalSignature ` + -KeyAlgorithm RSA ` + -KeyLength 2048 ` + -HashAlgorithm SHA256 ` + -NotAfter (Get-Date).AddYears(5) + Write-Host "Generated self-signed code-signing certificate: $($cert.Subject) [$($cert.Thumbprint)]" + } + + $signature = Set-AuthenticodeSignature -FilePath $exePath -Certificate $cert -HashAlgorithm SHA256 + if ($signature.Status -ne 'Valid') { + throw "Signing failed: $($signature.Status) - $($signature.StatusMessage)" + } + + Write-Host "Signed $exePath [$($cert.Thumbprint)]" +} + Write-Host '' Write-Host "Build completed successfully ($Configuration)." -ForegroundColor Green \ No newline at end of file