v1.0.4
unslop-windows v1.0.4
Added
- Pester 5 Unit & Mocking Test Suite (
tests/unslop.Tests.ps1): Introduced 17 isolated unit and integration tests mocking native cmdlets (Set-ItemProperty,Remove-ItemProperty,Set-Service,Disable-ScheduledTask,Enable-ScheduledTask), parameter flags (-KeepXbox,-KeepOneDrive) and non-elevated exit contracts with 100% test pass rate. - Dedicated Dot-Source Test Guard (
unslop.ps1): Added early top-level exit guard (if ($MyInvocation.InvocationName -eq '.') { return }) allowing the engine to export its helper functions into test harnesses without triggering elevation checks or executing debloat logic. - Dual PowerShell Runtime Matrix in CI (
.github/workflows/lint.yml): Multi-runtime matrix testing across bothpwsh(PowerShell 7 Core) andpowershell(Windows PowerShell 5.1 Desktop) onwindows-latestwith automated Pester 5 module provisioning. - 7-Pillar Local Master Quality Gate (
scripts/Test-MasterGate.ps1): Expanded the gate to 7 verification pillars by decoupling the batch launcher smoke test (cmd.exe /c ".\unslop.bat -DryRun") into dedicated Pillar 7, restoring sub-second (0.1s) execution speed to-Fastchecks. Added-TestResultsPathfor NUnit XML export. - Gated Production Releases (
.github/workflows/release.yml): Release builds now strictly require theverifyjob to pass all 7 pillars (needs: verify) before packaging and publishing assets. Addedtests/directory to release archive distribution bundles. - CI Concurrency, Test Reporting & Step Summary Annotations: Added PR-aware
concurrency: cancel-in-progress: true, zero-dependency Markdown step summaries ($env:GITHUB_STEP_SUMMARY), inline GitHub Actions workflow annotations (::error) and artifact archiving viaactions/upload-artifact@v4. - Architectural Decision Records (
docs/decisions.md): AddedADR-008(Pester 5 Unit Suite),ADR-009(Dual PS Runtime Matrix),ADR-010(Gated Releases),ADR-011(Dedicated Batch Smoke Test) andADR-012(CI Concurrency & Annotations).
Fixed
- Helper Function Parameter Binding & Switch Scope Collisions (
unslop.ps1): Fixed PowerShell parameter binding collisions where-Undowas interpreted as a partial prefix match for-undoValueby adding explicit[switch]$Undo = $IsUndo, [switch]$DryRun = $IsDryRunswitches across all helper functions.
Quick Installation & Usage
- Download
unslop-windows-v1.0.4.zipfrom Assets below. - Extract the archive to any directory.
- Right-click
unslop.batand choose Run as administrator (or double-click and accept the UAC elevation prompt). - Select an option from the interactive menu:
- [1] Full Debloat: Remove OneDrive, telemetry and provisioned bloatware.
- [2] Gamer Preset: Debloat, keep Xbox & Gaming Services (
-KeepXbox). - [3] Productivity Preset: Debloat, keep OneDrive & Microsoft To-Do (
-KeepOneDrive -KeepTodos). - [4] Interactive Toggles: Configure custom feature combinations with visual toggle states.
- [5] Safe Dry-Run Audit: Inspect all changes safely with zero system modifications (
-DryRun). - [6] Full Restore / Undo: Symmetrically revert all tweaks back to defaults (
-Undo). - [7] Custom CLI Flags: Manually enter parameter switches (e.g.
-KeepTodos -KeepXbox -NoRestart). - [0] Exit: Close the launcher.
Verification & Integrity
Verify archive integrity using the published SHA256SUMS.txt:
Get-FileHash .\unslop-windows-v1.0.4.zip -Algorithm SHA256