Skip to content

Commit 71502e3

Browse files
committed
v1.9.9: Null-safe CPU dashboard, ping average, SET array wrapping
- CPU dashboard null-safe when Measure-Object returns no average - Ping average in network diagnostics null-safe - SET adapter connectivity results wrapped as array for consistent .Count
1 parent 643270f commit 71502e3

8 files changed

Lines changed: 24 additions & 7 deletions

File tree

Changelog.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,12 @@
11
# Changelog
22

3+
## v1.9.9
4+
5+
- **Bug Fix:** CPU dashboard null-safe when `Measure-Object` returns no average (edge case on inaccessible WMI).
6+
- **Bug Fix:** Ping average in network diagnostics null-safe when `Measure-Object` has no data.
7+
- **Bug Fix:** SET adapter connectivity results wrapped as array for consistent `.Count` behavior.
8+
- 63 modules, 1854 tests
9+
310
## v1.9.8
411

512
- **Bug Fix:** Deduplication status query now passes the volume with drive letter colon (e.g., `D:`) — was silently failing on the status display.

Header.ps1

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,11 +30,17 @@
3030
7h3 4b1d3r
3131
3232
.VERSION
33-
1.9.8
33+
1.9.9
3434
3535
.LAST UPDATED
3636
02/25/2026
3737
38+
.CHANGELOG v1.9.9
39+
BUG FIXES:
40+
- FIXED: CPU dashboard null-safe when Measure-Object returns no average
41+
- FIXED: Ping average null-safe in network diagnostics
42+
- FIXED: SET adapter connectivity results wrapped as array for consistent .Count
43+
3844
.CHANGELOG v1.9.8
3945
BUG FIXES:
4046
- FIXED: Deduplication status query now passes volume with drive letter colon (was silently failing)

Modules/00-Initialization.ps1

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,7 @@ if (-not $script:ModuleRoot) { $script:ModuleRoot = $PSScriptRoot }
135135
if (-not $script:ModuleRoot -and $script:ScriptPath) {
136136
$script:ModuleRoot = [System.IO.Path]::GetDirectoryName($script:ScriptPath)
137137
}
138-
$script:ScriptVersion = "1.9.8"
138+
$script:ScriptVersion = "1.9.9"
139139
$script:ScriptStartTime = Get-Date
140140

141141
# OS version detection (for feature compatibility)

Modules/09-SET.ps1

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ function Select-PhysicalAdaptersSmart {
8484
Write-OutputColor "" -color "Info"
8585
Write-OutputColor "Testing adapter internet connectivity..." -color "Info"
8686

87-
$results = Test-AdapterInternetConnectivity
87+
$results = @(Test-AdapterInternetConnectivity)
8888

8989
if ($results.Count -eq 0) {
9090
Write-OutputColor "No physical adapters found." -color "Error"

Modules/48-MenuDisplay.ps1

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,10 @@ function Show-MainMenu {
4343
} -CacheSeconds 60
4444

4545
$dashCPU = Get-CachedValue -Key "DashCPU" -FetchScript {
46-
try { [math]::Round((Get-CimInstance Win32_Processor -ErrorAction SilentlyContinue | Measure-Object -Property LoadPercentage -Average).Average) }
46+
try {
47+
$cpuMeasure = Get-CimInstance Win32_Processor -ErrorAction SilentlyContinue | Measure-Object -Property LoadPercentage -Average
48+
if ($null -ne $cpuMeasure.Average) { [math]::Round($cpuMeasure.Average) } else { 0 }
49+
}
4750
catch { 0 }
4851
} -CacheSeconds 15
4952

Modules/58-NetworkDiagnostics.ps1

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,8 @@ function Invoke-PingHost {
7878
$line = " Reply from $addr - ${ms}ms"
7979
Write-MenuItem -Text $line
8080
}
81-
$avg = ($results | ForEach-Object { if ($null -ne $_.ResponseTime) { $_.ResponseTime } elseif ($null -ne $_.Latency) { $_.Latency } else { 0 } } | Measure-Object -Average).Average
81+
$avgMeasure = $results | ForEach-Object { if ($null -ne $_.ResponseTime) { $_.ResponseTime } elseif ($null -ne $_.Latency) { $_.Latency } else { 0 } } | Measure-Object -Average
82+
$avg = if ($null -ne $avgMeasure.Average) { $avgMeasure.Average } else { 0 }
8283
Write-OutputColor " ├────────────────────────────────────────────────────────────────────────┤" -color "Info"
8384
Write-MenuItem -Text " Average: $([math]::Round($avg, 1))ms"
8485
Write-OutputColor " └────────────────────────────────────────────────────────────────────────┘" -color "Info"

RackStack.ps1

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
Environment-specific settings are configured via defaults.json.
1414
1515
.VERSION
16-
1.9.8
16+
1.9.9
1717
1818
.NOTES
1919
- Requires Windows Server 2012 R2 or later (or Windows 10/11 for testing)

Tests/Run-Tests.ps1

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<#
22
.SYNOPSIS
3-
Automated Test Runner for RackStack v1.9.8
3+
Automated Test Runner for RackStack v1.9.9
44
55
.DESCRIPTION
66
Comprehensive non-interactive test suite covering:

0 commit comments

Comments
 (0)