diff --git a/CHANGELOG.md b/CHANGELOG.md index c6c309b..b6c2df4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,14 @@ All notable user-facing changes are documented here. This project follows [Seman ## [Unreleased] +## [1.1.4] - 2026-07-13 + +### Fixed + +- Execute the curl bootstrap through PowerShell's text pipeline instead of an unreliable native-to-native stdin pipe. +- Allow the optional version selector to remain omitted when the downloaded script text is evaluated directly. +- Exercise the README's downloaded-text execution behavior in the installer lifecycle test. + ## [1.1.3] - 2026-07-13 ### Added @@ -47,7 +55,8 @@ All notable user-facing changes are documented here. This project follows [Seman - Added `/W4 /WX /sdl`, control-flow protection, ASLR/DEP/CET-compatible linker flags, reproducible Release builds, MSVC AddressSanitizer tests, CRT leak checks, static analysis, CodeQL, and pinned CI dependencies. -[Unreleased]: https://github.com/xptea/VGPU-Mon/compare/v1.1.3...HEAD +[Unreleased]: https://github.com/xptea/VGPU-Mon/compare/v1.1.4...HEAD +[1.1.4]: https://github.com/xptea/VGPU-Mon/compare/v1.1.3...v1.1.4 [1.1.3]: https://github.com/xptea/VGPU-Mon/compare/v1.1.2...v1.1.3 [1.1.2]: https://github.com/xptea/VGPU-Mon/compare/v1.1.1...v1.1.2 [1.1.1]: https://github.com/xptea/VGPU-Mon/releases/tag/v1.1.1 diff --git a/README.md b/README.md index 705e0c7..7c5c1e0 100644 --- a/README.md +++ b/README.md @@ -48,7 +48,7 @@ Some protected processes cannot be inspected or terminated without elevation. VG Open PowerShell or Windows Terminal and paste this one command: ```powershell -curl.exe -fsSL https://raw.githubusercontent.com/xptea/VGPU-Mon/main/install.ps1 | powershell.exe -NoProfile -ExecutionPolicy Bypass -Command - +curl.exe -fsSL https://raw.githubusercontent.com/xptea/VGPU-Mon/main/install.ps1 | Out-String | Invoke-Expression ``` The bootstrap script finds the latest stable [GitHub Release](https://github.com/xptea/VGPU-Mon/releases), downloads its per-user installer and `SHA256SUMS.txt`, verifies the installer SHA-256, and only then runs it silently. It does not require administrator access. Open a new terminal tab after installation, then run: diff --git a/install.ps1 b/install.ps1 index 6b407f1..3ef326d 100644 --- a/install.ps1 +++ b/install.ps1 @@ -3,7 +3,7 @@ param( [ValidatePattern('^[A-Za-z0-9_.-]+/[A-Za-z0-9_.-]+$')] [string]$Repository = 'xptea/VGPU-Mon', - [ValidatePattern('^v?[0-9]+\.[0-9]+\.[0-9]+$')] + [ValidatePattern('^$|^v?[0-9]+\.[0-9]+\.[0-9]+$')] [string]$Version, [Parameter(DontShow)] diff --git a/src/version.h b/src/version.h index 2290b4a..69cf882 100644 --- a/src/version.h +++ b/src/version.h @@ -1,7 +1,7 @@ #ifndef VGPU_VERSION_H #define VGPU_VERSION_H -#define VGPU_VERSION "1.1.3" -#define VGPU_VERSION_NUM 1,1,3,0 +#define VGPU_VERSION "1.1.4" +#define VGPU_VERSION_NUM 1,1,4,0 #endif diff --git a/tests/test_installer.ps1 b/tests/test_installer.ps1 index 7010437..69433b2 100644 --- a/tests/test_installer.ps1 +++ b/tests/test_installer.ps1 @@ -122,12 +122,18 @@ if (Test-Path -LiteralPath 'HKCU:\Software\VGPU-Mon') { $checksumPath = Join-Path ([IO.Path]::GetTempPath()) "vgpu-mon-checksums-$([Guid]::NewGuid().ToString('N')).txt" $bootstrapInstalled = $false try { + # The README executes the downloaded text in the current PowerShell + # process. Compile the source text into a script block here so CI covers + # the same parameter-binding and execution behavior without using the + # network or installing a previously published release. + $bootstrapSource = Get-Content -LiteralPath (Join-Path $root 'install.ps1') -Raw + $bootstrapScript = [scriptblock]::Create($bootstrapSource) $installerHash = (Get-FileHash -LiteralPath $installer -Algorithm SHA256).Hash.ToLowerInvariant() "$('0' * 64) $(Split-Path -Leaf $installer)" | Set-Content -LiteralPath $checksumPath -Encoding ascii $rejectedBadChecksum = $false try { - & (Join-Path $root 'install.ps1') -InstallerPath $installer -ChecksumPath $checksumPath + & $bootstrapScript -InstallerPath $installer -ChecksumPath $checksumPath } catch { if ($_.Exception.Message -like 'SHA-256 verification failed*') { @@ -147,7 +153,7 @@ try { "$installerHash $(Split-Path -Leaf $installer)" | Set-Content -LiteralPath $checksumPath -Encoding ascii - & (Join-Path $root 'install.ps1') -InstallerPath $installer -ChecksumPath $checksumPath + & $bootstrapScript -InstallerPath $installer -ChecksumPath $checksumPath $bootstrapInstalled = $true if (-not (Test-Path -LiteralPath $installedExe)) { throw 'Bootstrap installer did not create vgpu.exe.'