Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 10 additions & 10 deletions docs/superpowers/smoke/2026-05-31-v1.0.29-final-cut-smoke.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,12 +28,12 @@ Manual ISO build + install smoke for the **v1.0.29** final cut. Fill in `Status`
| P1 | Worker, FastBuild, defaults (cleanup **ON**) | Cleanup task registered; first-boot immediate run; idempotency | *(manual — see P1 below)* | Fresh #1 | ✅ | 2026-05-31 |
| P2 | (reuse P1 VM) | `tiny11-cleanup.log` 3-trigger narrative (SetupComplete + BootTrigger PT10M + on-demand) | *(manual log inspection)* | reuse P1 | ✅ | 2026-05-31 |
| P3 | Worker, FastBuild, **`-NoPostBootCleanup`** | No task/scripts; offline writes still land; appx re-stage proof | `tests/smoke/verify-p3.ps1` | Fresh #2 | ✅ | 2026-05-31 |
| P4 | **Core**, FastBuild, defaults (cleanup **ON**) | Both tasks (Keep-WU-Disabled + Cleanup); offline writes; pattern-zero on real CDM IDs | `tests/smoke/verify-p4.ps1` | Fresh #3 | ⬜ | |
| P4 | **Core**, FastBuild, defaults (cleanup **ON**) | Both tasks (Keep-WU-Disabled + Cleanup); offline writes; pattern-zero on real CDM IDs | `tests/smoke/verify-p4.ps1` | Fresh #3 | ✅ | 2026-05-31 |
| P5 | **Core**, FastBuild, **`-NoPostBootCleanup`** | Only Keep-WU-Disabled; offline writes survive; no bg task | `tests/smoke/verify-p5.ps1` | Fresh #4 | ⬜ | |
| P6 | (reuse P1 VM) | 52 provisioned-appx clean sweep (install-time CU race) | `tests/smoke/verify-p6.ps1` | reuse P1 | ✅ | 2026-05-31 |
| P7 | (reuse P1 VM, + create User2 live) | Per-user fan-out + new-user inheritance (`AdvertisingInfo!Enabled=0` ×3 hives) | `tests/smoke/verify-p7.ps1` | reuse P1 | ✅ | 2026-05-31 |
| P8 | Worker, FastBuild, **keep-list** | 4 non-appx action types (filesystem, takeown-and-remove, registry, scheduled-task) | `tests/smoke/verify-p8.ps1 -KeepEdge` (see P8 below) | Fresh #5 | ⬜ | |
| P9 | (reuse P8 VM + ISO) | Keep-list contract — runtime arm (1 kept appx + 4 paths + 2 reg keys present; 51/52 absent) | `tests/smoke/verify-p9.ps1` | reuse P8 | ⬜ | |
| P8 | Worker, FastBuild, **keep-list** | 4 non-appx action types (filesystem, takeown-and-remove, registry, scheduled-task) | `tests/smoke/verify-p8.ps1` (self-configuring) | Fresh #5 | ✅ | 2026-05-31 |
| P9 | (reuse P8 VM + ISO) | Keep-list contract — runtime arm (1 kept appx + 4 paths + 2 reg keys present; 51/52 absent) | `tests/smoke/verify-p9.ps1` (self-configuring) | reuse P8 | ✅ | 2026-05-31 |
| P9-static | host-side (P8 ISO) | Keep-list contract — generator scoping (0 forbidden + 5 control patterns in baked script) | `tests/smoke/verify-p9-static.ps1 -IsoPath <P8 ISO>` | dev host | ✅ | 2026-05-31 |

### Additive: logging + pattern-zero surfaces
Expand Down Expand Up @@ -73,8 +73,8 @@ Manual ISO build + install smoke for the **v1.0.29** final cut. Fill in `Status`

### P4 — Core defaults (cleanup ON)
- **Build:** Core, FastBuild, defaults. ISO: `____________`
- **Run:** `tests/smoke/verify-p4.ps1` (Tests 1–8; Test 7 = pattern-zero zeros a planted FAKE99 on the live SID — if the tail-grep misses it, use the Finding-3 deep-diagnostic recipe: snapshot line count → plant → trigger → 30s → grep across `.log` + `.log.1`).
- **Result:** **Notes:**
- **Run:** `tests/smoke/verify-p4.ps1` (Tests 1–8; Test 7 = pattern-zero zeros a planted FAKE99 on the live SID — now triggers the task and waits for completion before re-reading, no fixed sleep).
- **Result:** ✅ PASS (2026-05-31) **Notes:** All 8 tests pass — Test 1: both tasks (Keep WU Disabled + Post-Boot Cleanup) Ready; Test 2: wuauserv Stopped/Disabled; Test 3: SetupComplete.cmd self-deleted; Test 4: 4 catalog entries (RotatingLockScreen/Overlay/Slideshow `0x0`, AutoDownload `0x2`); Test 5: cleanup script has the pattern-zero call (L609) + 4 entries (L613/615/617/623); Test 6: Edge `msedge.exe` absent; Test 7: planted FAKE99 `0x1` → triggered task (wait-for-completion → state Ready) → `0x0`, log shows `CORRECTED: '1' -> '0'`; Test 8: the 4 entries log `already` (offline write happened, not runtime CORRECTED). Wait-for-completion hardening worked first try.

### P5 — Core `-NoPostBootCleanup`
- **Build:** Core, FastBuild, `-NoPostBootCleanup`. ISO: `____________`
Expand All @@ -94,15 +94,15 @@ Manual ISO build + install smoke for the **v1.0.29** final cut. Fill in `Status`
- **Build:** Worker, FastBuild, `-Config config/examples/keep-edge-and-clipchamp.json` (Edge + Clipchamp KEPT). ISO: `____________`
- **Run (elevated, on VM):**
```powershell
tests/smoke/verify-p8.ps1 -KeepEdge
tests/smoke/verify-p8.ps1
```
`-KeepEdge` expands `-KeptPaths` to the standard Edge keep set so the Edge filesystem/takeown rows assert KEEP (present = expected) rather than removal. (Equivalent long form: `-KeptPaths @('C:\Program Files (x86)\Microsoft\Edge','C:\Program Files (x86)\Microsoft\EdgeUpdate','C:\Program Files (x86)\Microsoft\EdgeCore','C:\Windows\System32\Microsoft-Edge-Webview')`.) **Running it bare on a keep build prints a disambiguation NOTE and (correctly, for a default-apply build) FAILs the kept-Edge rows — pass `-KeepEdge`.**
**Self-configuring — no flags.** The script reads the build's own baked `tiny11-cleanup.ps1` to derive what was kept vs removed (an item's action is baked in iff it's apply-state), then asserts the matching disk state. So a kept Edge is asserted PRESENT, OneDrive (removed) ABSENT — automatically, for whatever profile built the image.
Expect: OneDriveSetup absent; 3 Edge paths + WebView KEEP (present); 5/5 HKLM registry spot-checks OK; 5/5 scheduled-task removals absent.
- **Result:** **Notes:**
- **Result:** ✅ PASS (2026-05-31) **Notes:** All four arms green. Edge ×3 + WebView `KEEP PRESENT` (kept-by-build), OneDriveSetup absent, 5/5 HKLM registry tweaks match, 5/5 scheduled-task removals absent. (Original run used the now-removed `-KeepEdge` flag; the self-configuring rewrite was verified offline against this build's extracted baked script — derivation reproduces the identical keep/remove partition: Edge kept, OneDrive removed, 5 tweaks applied, 5 tasks removed.)

### P9 — Keep-list runtime arm (reuse P8 VM)
- **Run:** `tests/smoke/verify-p9.ps1` (by default triggers the Post-Boot Cleanup task and waits for completion FIRST, so re-stagers like `Microsoft.Copilot` are in their post-enforcement steady state before the absence assertions; pass `-NoTriggerCleanup` to assert the raw current state). → 1 kept appx (Clipchamp) + 4 kept paths + 2 kept reg keys PRESENT; 51/51 non-kept catalog appx ABSENT in both installed + provisioned.
- **Result:** **Notes:**
- **Run:** `tests/smoke/verify-p9.ps1` (**self-configuring** — derives kept-vs-removed for the 52 appx + Edge paths + Edge reg keys from the build's baked cleanup script; no `-KeptAppx` defaults. Also triggers the Post-Boot Cleanup task and waits for completion FIRST, so re-stagers like `Microsoft.Copilot` are in their post-enforcement steady state; `-NoTriggerCleanup` opts out). → kept items PRESENT; removed catalog appx ABSENT in both installed + provisioned.
- **Result:** ✅ PASS (2026-05-31) **Notes:** Trigger-and-wait fired (`task state=Ready lastResult=0x0`), then: Clipchamp (kept) installed+provisioned, 4 Edge paths + 2 Edge uninstall reg keys (kept) present, **0 of 51** removed appx present in either arm — Copilot, which re-stages after first boot, was swept by the triggered cleanup. (Original run used hardcoded keep defaults; the self-configuring rewrite was verified offline against the extracted baked script: derives Kept={Clipchamp}, Removed=51, Edge kept — identical partition.)

### P9-static — Keep-list generator scoping (dev host)
- **Run:** `tests/smoke/verify-p9-static.ps1 -IsoPath <P8 ISO>` (auto-targets the autounattend install index — no `-ImageIndex`/`-ImageEdition` needed; FastBuild only modifies the installed edition). → 6 forbidden (kept-item) patterns = 0 matches; 5 control patterns present.
Expand Down
Loading