Files
meeting-assistant/docs/windows-platform-acceptance.md
T
dh 728e66dd72
PR and Push Build/Test / windows-build-and-test (push) Failing after 38m25s
PR and Push Build/Test / portable-build-and-test (push) Successful in 8m9s
PR and Push Build/Test / macos-native-full (push) Skipped
ci: consolidate platform pipelines and test prerequisites on macOS support
2026-10-06 09:02:19 +02:00

3.0 KiB
Raw Blame History

Windows platform acceptance

The Windows crop checks use the existing Windows test target. Runtime acceptance is separate from the normal macOS cross-build already recorded by Ticket 01. Use docs/platform-test-verification.md for the complete build, discovery, execution and verifier commands; every command must succeed, and a Windows RID alone is insufficient. Operational ASR/backend acceptance remains separate from these pipeline checks.

Target and native crop evidence

Run the actual net10.0-windows10.0.19041.0 test target on Windows or a demonstrated compatible Wine runtime. Keep the SDK/runtime and Wine version, source revision/content manifest, complete build logs, discovery, TRX and verifier output together. The existing Gitea jobs collect those artifacts separately from the portable target.

The Windows verifier requires the five existing Outlook cases, both Windows runtime checks, the passed application-composition guard and these three additional cases:

  • WindowsScreenshotImageCropperTests.WindowsCropUsesOcrPixelCoordinates
  • WindowsScreenshotImageCropperTests.WindowsCropPreservesExpectedPixelsAtNonzeroOrigin
  • WindowsScreenshotImageCropperTests.WindowsCropRejectsInvalidBounds

These tests resolve IScreenshotImageCropper from the Windows application factory, assert its real Windows implementation, and call SaveCroppedScreenshotAsync. The isolated factory suppresses background activities but preserves the production registrations. No capture permission, Outlook instance, OCR service or credential is needed. A 4×3 opaque PNG encodes a different color at every coordinate. Each valid crop checks every pixel and exact dimensions: 2×2 at (0,0) and 3×2 at (1,1), reaching the right and bottom boundaries. Invalid cases cover negative origins, zero/negative sizes, entirely outside origins and partially overflowing bounds. Each must throw the existing InvalidDataException and leave no crop file.

Each case records runtime, host, architecture and registered cropper in its TRX output. Portable compilation excludes these cases. Their compilation on macOS is preparation, not a native pixel pass. Synthetic verifier fixtures exercise evidence rejection only.

CI observation and acceptance states

Observe an external run for the tested content, including both explicit-target jobs, named discovery, TRX, build logs, verifier outcome and two separate uploaded artifacts. Record run URL, revision and job outcomes. A run for an older revision, a workflow file, a cached status, or synthetic artifact checks cannot satisfy this row. An implementation request alone does not authorize publishing uncommitted prerequisites to trigger CI.

Use only passed, failed, open — not executed with reason, or not configured/disabled — no pass per host/profile/backend/model/operation row. Preserve the dated 602-pass and 639-pass portable baselines in their original evidence. Derive current totals from current TRX. Supplement the existing OpenSpec owners with the new evidence link; do not rewrite Ticket 01 or communication Task 4.2/4.4.