Files
meeting-assistant/openspec/changes/complete-macos-feature-parity/windows-test-assurance-evidence.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

8.7 KiB

Ticket 01 implementation and verification evidence

Date: 2026-10-03. The user accepted the implemented scope and requested ticket closure, commit, push and cleanup. Actual Windows test execution remains unverified, so OpenSpec Task 1.1 remains open. The original add-macos-user-communication tasks and historical evidence are unchanged. The completion record records the subsequent reviews and delivery state.

Scope and identity

Owning Git root: the meeting-assistant repository. Delivery target: fork/codex/macos-support. Initial implementation used HEAD 1164c26846686c1912fd1816cd06de80352e9504 plus the existing uncommitted communication implementation. Closeout integrates the five remote commits through 1b19b08, preserving their Wine 11, SDK trust and core tray package fixes. An isolated checkout prepares the combined candidate; delivery status belongs to the completion record. No deployment or live-service restart is part of this task.

The existing complete-macos-feature-parity change owns PARITY-TEST-01, PARITY-TEST-02 and PARITY-EVIDENCE-01. OpenSpec apply routing selected this change; no new change or skipped OpenSpec workflow was needed.

The content manifest identifies 295 application, native-helper, test, fixture, build, CI and verifier files. Current manifest SHA-256: 19d7f4afae918d1fc3df24bb400e27ade2546d00d94d071467191dc3525bed00. It excludes build outputs and personal local configuration. Documentation/task annotations are outside this code-content identity. The initial manifest was 05f078215a6bdabcc763a131f71544272d1b7bcd72d6b9a0d33295893505ab92; only the integrated Windows package and CI inputs changed within those entries.

Implemented:

  • Both explicit test TFMs select the matching application TFM; Windows uses x64/WPF with the usual IO/HTTP test imports retained.
  • A passing public composition test checks target/platform assembly metadata, health/capability endpoints and actual platform service registrations; its output identifies target and runtime host.
  • Both false-green early returns are replaced by Windows facts with capability-specific skip reasons. Native macOS facts require the portable macOS target. Portable-only endpoint assertions are excluded from Windows compilation.
  • HTTP fixtures retain production registrations while isolating application background services. Tests explicitly re-enable only the cleanup or temporary-database activity they exercise.
  • CI builds, discovers, executes and retains portable/Windows artifacts separately. The Windows application step uses normal resource generation. The C# file-based verifier validates named discovery against result records, the five exact Outlook cases, real skips/passes and current counters.

The entry points, helper dependencies/effects and runner commands are documented in docs/platform-test-verification.md.

Executed results

Evidence paths below are relative to the repository root, under ignored artifacts/tests/ticket01/. These local artifacts retain actual test/build logs and TRX results; they are not a remote CI run.

Surface Host and target Actual result Evidence
Complete portable suite macOS 26.6, arm64; SDK 10.0.203/runtime 10.0.7; net10.0 Initial and final candidate runs each have 641 discovered/results, 639 passed, 2 skipped, 0 failed Initial portable/; current closeout/portable/, closeout/portable-full-suite.log, closeout/focused-proof.txt
Actual native helper checks Same macOS portable build All seven existing desktop-helper self-test groups pass; native packaging/pixel tests also execute in the portable suite portable/full-suite.log, portable/portable.trx
Focused HTTP composition Same macOS portable target 21 passed, 0 failed/skipped isolated-http-focused/isolated-http-focused.trx
Linux portable CI branch Cached Ubuntu 24.04/linux-x64 container under amd64 emulation; SDK 10.0.401/runtime 10.0.12; TZ=Europe/Berlin; net10.0 22 cases: 15 passed, 7 reasoned skips, 0 failed; actual Linux Noop composition and HTTP fixtures pass linux-focused/receipt.md, linux-focused/linux-focused.trx, linux-focused/source-hashes.sha256
Initial Windows compiler check Initial pre-closeout package graph, macOS cross-compilation; Windows TFM Application and test assembly compiled, PRI disabled; historical limited result windows-limited-compile-final.log, windows-compiled-outlook-symbols.txt
Initial Windows application/resource build Initial graph with H.NotifyIcon.Uno.WinUI, macOS host Historical failure at MakePri.exe; superseded by the remote package correction below windows-full-build.log
Current normal Windows application and test build Integrated H.NotifyIcon core package graph, macOS host; Windows TFM Both normal builds pass, 0 errors, without disabling resource generation. Current graph has no WindowsAppSDK/MSIX/PRI dependency closeout/windows-application-build.log, closeout/windows-application-build.binlog, closeout/windows-tests-build.log, closeout/windows-application-assets.json
Windows runtime discovery/execution macOS arm64 lacks a compatible Windows/x64 testhost No Windows cases discovered or executed. Discovery prints a test-platform error despite exit code 0; empty discovery is not successful evidence windows-discovery-unavailable.log

The Linux subset used cache-only restore and no network or downloads. Its first cache miss and successful retry are retained. The tested HTTP/platform sources match the final content; independent verifier-fixture edits were outside that subset. Its temporary containers were removed. macOS Windows-target restore emitted NU1900 for an unavailable NuGet vulnerability feed; compilation succeeded. The final portable run used cached dependencies and disabled NuGet auditing after stopping a stalled restore; this affects feed access rather than test behavior. Its before/after input manifest matched.

The current two portable skips are:

  • ResolveKeyFallsBackToUserEnvironment: requires Windows per-user environment variables.
  • TaskbarIconGlyphsAreVisuallyCentered: requires Windows System.Drawing bitmap rendering.

The earlier focused baseline falsely reported both as passed on macOS (red-skips/before-skips.trx). The corrected focused run records one passing composition guard and two reasoned skips (platform-focused/platform-guard-focused.trx). Six verifier red/green slices finish with 38 passing synthetic fixture cases (helper-green-06.trx); those fixtures validate the checker, not Windows execution. The final CLI check ran against the actual 641-case portable discovery/TRX and passed.

Strict validation passes for complete-macos-feature-parity and the unchanged add-macos-user-communication; workflow YAML parsing and all embedded Bash syntax checks pass. Evidence: openspec-validation.log, communication-validation.log, workflow-syntax.log.

Remaining acceptance boundaries

The real Windows target compiles the existing Outlook test class and methods. All five named cases are required by the CI verifier, but their discovery and executed assertions still need a compatible Windows/Wine runner. Compiled symbols and synthetic verifier fixtures do not satisfy that requirement. The two Windows-only checks likewise need actual assertion execution there.

The current normal Windows builds pass on the macOS cross-compilation host. The remote H.NotifyIcon core package correction removes the accidental WinUI/WindowsAppSDK/MSIX dependency, so this graph no longer requires the previously failing PRI tool. No resource-suppression property was used for the current build. Actual Windows/Wine execution must still demonstrate the runtime and CI path. No local Wine installation or reachable Windows test runtime was available. Historical Wine results from a different commit or portable TFM were not substituted for current results. CI execution and artifact upload remain unverified.

The historical 602 passed / 0 skipped portable baseline remains dated 2026-10-03 in add-macos-user-communication/implementation-evidence.md. Current totals above come from their own TRX records and do not replace that history. This evidence supplements the old communication Task 4.2 without editing or closing it. Task 4.4, real notification/menu interaction, Windows/native crop acceptance, screenshot focus and activated-backend operations remain with their respective owners/tickets.

A portable green run, native helper self-tests and normal Windows cross-compilation establish these recorded checks. They do not establish complete Windows runtime or operational platform acceptance. The user-requested ticket closure records acceptance of that bounded result; it does not mark the outstanding OpenSpec criteria passed.