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
11 changes: 10 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand Down
2 changes: 1 addition & 1 deletion install.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -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)]
Expand Down
4 changes: 2 additions & 2 deletions src/version.h
Original file line number Diff line number Diff line change
@@ -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
10 changes: 8 additions & 2 deletions tests/test_installer.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -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*') {
Expand All @@ -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.'
Expand Down
Loading