Skip to content

R6.4: acceptance harness, native evidence still open (#245) - #246

Merged
PLN merged 6 commits into
mainfrom
cursor/r64-acceptance-4766
Sep 23, 2026
Merged

PLN merged 6 commits into
mainfrom
cursor/r64-acceptance-4766

Conversation

@PLN

@PLN PLN commented Sep 23, 2026 •

Copy link
Copy Markdown
Owner

Summary

Refs #245. This is the R6.4 acceptance slice, including the R6.1 install/repair/uninstall cases, starting from 97c464cc9241c71a08e3f11f2338e8a39875b7d0.

HEAD: 6b434e1e0d7600fe98b05c3f0e5e3f392a282980

Evidence id 9961798-r64-accept records the SYSTEM guest at source 99617988a3cc0bfa93c26a6c2eed0ac76c68520b. It supersedes draft c040800-r64-accept. Exact-source CI run 35807241580 is green on that source. Equal-tree MSI sha256 2f57d8388d3a5af79ac87409d950cc326af7bf74c91b0f1d54ca33f6cbf0dd23.

The product package stays packaging/wix. The harness is tests/installer. It runs one disposable-guest case and appends a redacted summary outside the repository. Raw MSI logs stay private. The harness does not assign an evidence id.

ConvertTo-Array, Get-PathSegments, and Get-LogMarkers return flat lists. Selecting quiet-install yields one case whose requires.identity is the string elevated. The locked-file case keeps FileShare.None through msiexec, then releases that handle before the payload hash comparison. A ProgramData junction refused by protectedDirectory logs both preflight conflict: and reparse point.

The recorded guest is Windows 10 Enterprise LTSC 2024 Evaluation (EnterpriseSEval) build 26100.9168, installation type Client, identity SYSTEM, interactive false. Passed: quiet-install, system-install, repair-fa, repair-reinstall, locked-file, rollback-test-fail-running, rollback-test-fail-stopped, reinstall-retained, uninstall, preflight-reparse, and preflight-unmanaged-service. not_run on that guest: gui-install, offline-install, non-admin, beta-conflict, downgrade, n1-upgrade, and rollback-upgrade.

R6.1 and R6.4 stay unchecked. GUI install is still missing on a guest that has an interactive shell. Remaining claimed SKUs with no recorded run: Windows 11 Enterprise x64, Windows 11 Enterprise LTSC x64, Windows Server 2022 x64, Windows Server 2025 x64, and Windows Server Core x64. R6.5 and overall R6 stay open. A3 / R4.4 stay deferred. This PR does not start R6.5 or R7.

b915fbd-r62-servicing stays the R6.2 servicing record. It is not an acceptance evidence id.

Hosted Windows CI keeps -parallel 1 and uses go test -timeout 15m. The Windows job deadline is 45 minutes. Linux CI stays at 180 seconds.

Merge bar

Do not merge until all three are true:

  • Reviewer ship
  • Exact-source CI green
  • Native qualification evidence recorded in docs/R6-EVIDENCE.md for the cases and SKUs actually run

Exact-source CI is green for source 99617988a3cc0bfa93c26a6c2eed0ac76c68520b. R6.1 and R6.4 stay open after 9961798-r64-accept.

What landed

  • Case matrix and redacted summary fields for quiet, GUI, SYSTEM, and offline install; /fa and REINSTALL=ALL repair; uninstall; reinstall over retained alice/bob units; downgrade; N-1 upgrade; locked-file abort; WINUNITD_TEST_FAIL rollback; non-admin rejection; beta UpgradeCode refusal; and the R6.3 reparse and unmanaged-service preflight.
  • docs/R6-EVIDENCE.md records 9961798-r64-accept and the cases still missing.
  • Installer 0.1.0 is the only recorded product package. The harness accepts an older MSI only when that package already has this UpgradeCode and a lower ProductVersion.

Native lab fill-in

Further guests still copy these fields from the private acceptance-summary.jsonl, then assign evidence_id:

source_commit, guest_product, guest_edition, guest_build, installation_type, identity, offline, interactive, case_id, status, msi_exit, service_before, service_after, payload_sha256, package_sha256, log_markers, reboot_started, layout_ok, event_source, path_owned, prerequisite_action, data_retained, note

Check R6.1 only after quiet install, GUI install where the guest has a shell, one repair path, and uninstall have status=passed with those layout assertions. Check R6.4 only after every applicable case has passed on every claimed SKU that was actually run. Leave any SKU that was not run listed under R6.4.

Remaining claimed SKUs:

  • Windows 11 Enterprise x64
  • Windows 11 Enterprise LTSC x64
  • Windows Server 2022 x64
  • Windows Server 2025 x64
  • Windows Server Core x64

downgrade, n1-upgrade, and rollback-upgrade stay missing evidence until an older recorded package is supplied. A skipped SYSTEM or VM case stays missing evidence. Server Core gui-install is not_applicable and does not satisfy a desktop GUI run. Exit 3010 is not a pass. The package does not force a reboot.

Out of scope

R6.5 / Hermes migration, closing overall R6, A3 / R4.4, signing, UpgradeCode or ProductCode changes, calling winunitd install or uninstall from the MSI, purge, ARM64, and Pro as a first-release target.

Open in Web Open in Cursor 

cursoragent and others added 6 commits September 23, 2026 00:39
)

Add a disposable-guest matrix for fresh install, repair, uninstall, and the R6.4 cases, including the deferred R6.3 preflight. Redacted fields are documented for a later evidence id. R6.1, R6.4, R6.5, and overall R6 stay open. A3 / R4.4 stay deferred.

Co-authored-by: PLN <PLN@users.noreply.github.com>
The 180-second limit panicked in internal/manager under -race -parallel 1
on the hosted Windows runner. Keep -parallel 1. The Windows job deadline
is 45 minutes so the longer test and the later steps can finish.

Co-authored-by: PLN <PLN@users.noreply.github.com>
The unary comma wrapped the whole matrix into a single element. Member
enumeration then treated every case as the selected one, so quiet-install
under an elevated identity skipped as not_run.

Co-authored-by: PLN <PLN@users.noreply.github.com>
Get-PathSegments and Get-LogMarkers returned one wrapped list, so PATH
and marker checks never saw the elements. The locked-file case hashed
the payload while FileShare.None was still held, so a 1603 became
case failed.

Co-authored-by: PLN <PLN@users.noreply.github.com>
protectedDirectory used one ordinary-directory error for both a junction
and a file. A ProgramData junction now logs "reparse point" and
"refusing to follow" inside the existing preflight conflict line.

Co-authored-by: PLN <PLN@users.noreply.github.com>
One Windows 10 Enterprise LTSC 2024 Evaluation guest passed the SYSTEM
subset at 9961798. R6.1 and R6.4 stay unchecked: GUI is missing where
a shell exists, and the claimed SKUs have no recorded run.

Co-authored-by: PLN <PLN@users.noreply.github.com>
@PLN
PLN marked this pull request as ready for review September 23, 2026 01:55
@PLN
PLN merged commit e8b97fe into main Sep 23, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants