psadt-deploy-skill 0.30.2 → 0.32.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/README.md +32 -33
  2. package/package.json +1 -1
package/README.md CHANGED
@@ -434,36 +434,35 @@ The two most recent releases are below. **[CHANGELOG.md](CHANGELOG.md)** carries
434
434
  every release since 0.1.0, and nothing is ever removed from it - this section is a window onto it, not a
435
435
  second copy to keep in sync.
436
436
 
437
- ### 0.30.2 - 2026-09-14
438
- - **Changed: a vendor-specific success code has to be in BOTH lists.** A sandbox step is judged twice, by
439
- two independent lists that share a parameter name: PSADT's `-SuccessExitCodes` in the launcher decides
440
- whether the deployment throws, `Invoke-PsadtSandboxTest.ps1 -SuccessExitCodes` decides whether the step
441
- is painted green. Citrix Workspace Repair returns the documented success code 40032; it went into the
442
- launcher, the run still came back RED, and three further runs were spent re-editing a launcher that had
443
- been correct all along. Guide 6.1, Appendix B and Appendix G now say so, and a drift guard keeps the
444
- documented default equal to the actual one.
445
- - **Changed: four silent PowerShell traps** added to Appendix B, each of which cost a run here: `@(...)`
446
- around an EMPTY `Generic.List` throws in 5.1 and 7 alike; `-WindowStyle Hidden` is inherited by the
447
- child's first window, so a progress GUI runs windowless and looks like a hang; two variables differing
448
- only in case are the same variable; `-like` against a literal containing `*` matches too much.
449
- - All 12 applications packaged with 0.30.x are GREEN, Citrix Workspace included. Suite 552 -> 554.
450
-
451
- ### 0.30.1 - 2026-09-14
452
- - **Fixed: a scheduled task will not start on battery.** `schtasks /Create` defaults
453
- `DisallowStartIfOnBatteries` and `StopIfGoingOnBatteries` to TRUE, so on an unplugged laptop the task is
454
- created, `/Run` returns 0, and it then sits at status **Queued** forever. Every action reported a bare
455
- timeout that named no cause, and the failure followed the POWER CABLE rather than the package. The task
456
- is registered from XML now, which also drops the 72-hour execution limit `/Create` imposes.
457
- - **Fixed: a leftover `WindowsSandboxServer` silently broke every later run** (Windows-Sandbox#124). The
458
- next sandbox came up and its scheduled tasks never executed, so a different pre-check timed out each
459
- time and it read as flakiness. Broker-without-VM is now cleared at start instead of being reported as
460
- "a sandbox is already running", which it is not.
461
- - **Fixed: the timeout diagnostics answered their own cleanup** - they ran after the task was deleted and
462
- read the process table through WMI, which is broken in the guest until GuestPrepare repairs it.
463
- - **Added: an ARP dump whenever detection contradicts the action**, covering both HKLM views and every
464
- `HKEY_USERS` subtree. It found the trap below in a single run. The progress window now also lists what
465
- has already passed, with a tick per completed step.
466
- - **Note: an EXE installer that can install per-user must be forced to per-machine** (App. L.7, BINDING).
467
- Greenshot 1.3.315 without `/ALLUSERS` installed into the SYSTEM profile and registered under
468
- `HKEY_USERS\S-1-5-18`; install, uninstall, reinstall and repair all returned exit 0 while an HKLM
469
- detection rule correctly said "absent". With `/ALLUSERS` the full gate is GREEN. Suite 551 -> 552.
437
+ ### 0.32.0 - 2026-09-15
438
+ - **Fixed: the dossier now reads the sandbox verdict instead of asking for it.** `New-PsadtReport.ps1`
439
+ took identity, artefacts and return codes from the manifest but not the test result, so without a
440
+ hand-built `-Metadata SystemTest` it printed "the SYSTEM test was not run (no evidence)" on packages
441
+ whose gate was GREEN. It reads `results.sandboxTest.resultPath` now and **judges** the rows: an action
442
+ that exits 0 while the detection rule disagrees is a fail, not a pass - that combination is the
443
+ signature of a per-user install. A caller-supplied `SystemTest` still wins, and an unreadable
444
+ result.json keeps the honest "not run" default.
445
+ - **Fixed: the guest progress window hung off the right edge** of the sandbox desktop, taking the TIMEOUT
446
+ and DETECTION columns with it. Sized against the work area and positioned explicitly now; verified in
447
+ the guest.
448
+ - **Changed: a fourth BINDING trap in App. L.7** - re-running the installer over an existing install is
449
+ not a safe repair. Measured on JetBrains PyCharm 2026.2.2 as SYSTEM: `/S` over an existing install of
450
+ the same version never returned (killed at 603 s, no child process, no error), while Install and
451
+ Reinstall on a clean machine both exited 0. Repair is an explicit uninstall followed by an install.
452
+ - PyCharm 2026.2.2 (908 MB, the largest package built with this skill) then passed the full gate GREEN.
453
+ Suite 572 -> 576.
454
+
455
+ ### 0.31.0 - 2026-09-14
456
+ - **Added: the guest window shows every phase of the run at once.** Until now it showed one line, the step
457
+ running right now, so a run three phases in looked like one stuck on its first and a failed phase left
458
+ nothing to read. It is a WPF master/detail window now: tick, cross or live marker per phase, and for the
459
+ selected one its exit code, duration, start and end, timeout, detection result and its own transcript.
460
+ Still a separate process polling a file, still passive - it never drives the run and closing it stops
461
+ nothing.
462
+ - **Added: `progress.json` carries a `phases[]` plan derived from `-Scenarios`.** The hardcoded `total = 14`
463
+ it published before was wrong for every partial run, and wrong for the full gate too, which has 15 steps.
464
+ The older top-level fields are unchanged.
465
+ - **Measured in the guest before the port, not after:** WPF loads there under Windows PowerShell 5.1,
466
+ the real XAML parses, and the window paints at render tier 0 with no vGPU - a PNG of it came back out of
467
+ the VM as the proof. New guards in `tests/SandboxProgressUi.Tests.ps1` cover ASCII, parsing, XAML loading
468
+ and the phase plan. Suite 554 -> 569.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "psadt-deploy-skill",
3
- "version": "0.30.2",
3
+ "version": "0.32.0",
4
4
  "description": "Installer for the psadt-deploy Claude Code skill: build, test and deploy PSADT v4.x Intune Win32 packages.",
5
5
  "keywords": [
6
6
  "psadt",