Repository navigation
v2.2.0 — Fix 10 issues + randomized splash colors
Summary
Resolves all 10 remaining open issues (7 bugs + 3 enhancements) plus the new ASCII art color randomization. 4 agents ran in parallel across non-overlapping code regions.
Bugs Fixed
| Issue | Description |
|---|---|
| #2 | pip JSON parsing — single outdated package returned as PSObject, not array. Wrapped in @(). |
| #3 | Crash recovery — unknown phase names silently treated as crashes. Now warns and ignores. |
| #4 | $LASTEXITCODE stale value — webhook logged success on silent failure. Uses -ErrorAction Stop now. |
| #5 | Module job validation — job failures not detected. State checked before Remove-Job. |
| #6 | AWS tooling injection — UninstallString passed unsanitized to cmd.exe /c. Now calls msiexec.exe directly with extracted product code; non-MSI skipped with warning. |
| #16 | ExcludePatterns escaping — single quotes in patterns broke scheduled task args. Doubled for escaping. |
| #19 | Orphan pwsh.exe — Stop-Job didn't kill child process. Now kills via ProcessId on timeout. |
Enhancements
| Issue | Description |
|---|---|
| #17 | WebhookUrl validation — [ValidateScript] rejects non-http/https strings at bind time. |
| #18 | SMTP authentication — new [pscredential]$SmtpCredential parameter. Splatted into Send-MailMessage when provided. |
| #20 | Webhook retry — 3-attempt exponential backoff (2s, 4s delays). Fail-forward preserved. |
| #21 | ASCII art colors — 6 curated neon palettes (cyan, green, magenta, yellow, blue, red). Random pick per boot. |
Files Changed
Invoke-BootUpdateCycle.ps1— 88 lines changed across 8 functionsDeploy-BootUpdateCycle.ps1— ExcludePatterns escaping fixRepair-AwsTooling.ps1— MSI uninstall rewrite (no more cmd.exe shell)
🤖 Generated with Claude Code