Skip to content

Commit bc05a72

Browse files
authored
Prepare the 4.2.1 release (#63)
Bump the version to 4.2.1 in Winnow.ps1 (.VERSION and WINNOW_VERSION) and the Initialize-Environment fallback, date the CHANGELOG 4.2.1 section, add the HISTORY entry, and rebuild the standalone. Patch release: reliable user-hive unload (GC before reg unload) and qword/hex(2)/hex(7) support in the PowerShell registry writer, plus the Sandbox-only mutating tests for Scope B and the watchdog.
1 parent c72c63e commit bc05a72

5 files changed

Lines changed: 18 additions & 5 deletions

File tree

‎CHANGELOG.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ Document all notable Winnow changes in this file. Releases before 4.0.0 were pub
44

55
Follow [Keep a Changelog](https://keepachangelog.com/en/1.1.0/) and [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
66

7-
## [Unreleased]
7+
## [4.2.1] - 2026-09-18
88

99
### Fixed
1010

‎HISTORY.md‎

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,16 @@
1+
## [v4.2.1] - 2026-09-18
2+
### Artifacts
3+
- **Release Package**: Winnow-v4.2.1.zip
4+
- **Standalone**: Winnow-Standalone.ps1
5+
- Both built and published by the release workflow on tag push. Checksums are on the release page.
6+
### Fixed
7+
- Unload the target user's registry hive reliably: force a GC to release the .NET RegistryKey handles the apply/verify/restore work opened into the mounted hive, and retry, so `reg unload` no longer fails and leaves the hive mounted (could lock the profile) on `-Sysprep`/`-User` runs.
8+
- The PowerShell registry writer now applies `qword`, `hex(2)` (REG_EXPAND_SZ), and `hex(7)` (REG_MULTI_SZ) values instead of throwing; the parser and verifier already handled all three, so the writer was the only part out of step.
9+
### Added
10+
- Sandbox-only mutating integration tests for Scope B module registry rollback and the update watchdog (real install, ACL lockdown, integrity, policy re-assertion, tamper detection).
11+
### Known limitation
12+
- The mutating end-to-end paths are unit-tested and read-path-verified but have not yet been run in Windows Sandbox.
13+
114
## [v4.2.0] - 2026-09-17
215
### Artifacts
316
- **Release Package**: Winnow-v4.2.0.zip

‎Scripts/Helpers/Initialize-Environment.ps1‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ $script:Version = if (Get-Variable -Name WINNOW_VERSION -Scope Global -ErrorActi
66
} elseif ($WINNOW_VERSION) {
77
$WINNOW_VERSION
88
} else {
9-
"4.2.0"
9+
"4.2.1"
1010
}
1111
$script:AppVersion = $script:Version
1212
$rootDir = Split-Path (Split-Path $PSScriptRoot -Parent) -Parent

‎Winnow-Standalone.ps1‎

Lines changed: 1 addition & 1 deletion
Large diffs are not rendered by default.

‎Winnow.ps1‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
purge AI/Copilot integrations, and reclaim your Windows experience.
77
Created by Bios-System | https://github.com/BiosSystem/Winnow
88
.VERSION
9-
4.2.0
9+
4.2.1
1010
#>
1111
[CmdletBinding(SupportsShouldProcess)]
1212
param (
@@ -155,7 +155,7 @@ if ($PSVersionTable.PSEdition -eq 'Core') {
155155
exit 1
156156
}
157157

158-
Set-Variable -Name 'WINNOW_VERSION' -Value '4.2.0' -Option Constant
158+
Set-Variable -Name 'WINNOW_VERSION' -Value '4.2.1' -Option Constant
159159

160160
# Call Helper Scripts
161161
. (Join-Path $PSScriptRoot 'Scripts\Helpers\Ensure-Admin.ps1') -OriginalCommandPath $PSCommandPath -OriginalBoundParameters $PSBoundParameters -OriginalUnboundArguments $MyInvocation.UnboundArguments

0 commit comments

Comments
 (0)