Files
meeting-assistant/openspec/changes/complete-macos-feature-parity/windows-platform-acceptance-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

13 KiB
Raw Blame History

Ticket 02 — Windows platform acceptance evidence

Implementation evidence date: 2026-10-03; closeout update: 2026-10-06. Current status: prepared slice accepted and local Ticket 02 closed; actual Windows verification incomplete; local commit pending prerequisite inclusion decision. No Windows criterion is marked passed from a portable run or cross-build. Ticket 01, its comments/completion evidence and the original communication Tasks 4.2/4.4 are preserved.

The implementation observations below retain their original date and scope. The user's later acceptance explicitly closes the local ticket for this preparation without claiming original operational acceptance. Requirements verification, sequential structural reviews, cleanup and separate delivery status are recorded in windows-platform-acceptance-completion.md.

Ownership, routing and content

Owning Git root: meeting-assistant. Current and intended delivery branch: codex/macos-support; initial/current HEAD: 1164c26846686c1912fd1816cd06de80352e9504, with extensive pre-existing uncommitted work. Changes were prepared and checked in an isolated source copy before transfer. Existing files were verified against the initial baseline before transfer. No commit, push, merge, deployment, live restart or ticket closure is part of this implementation request.

openspec list --json, openspec status and openspec instructions apply select the active complete-macos-feature-parity change and its platform-parity-verification contracts. The repository-local openspec-apply-change and tdd skills were used. No new proposal is needed: the accepted Ticket 02 and this active change already define the crop, target and backend verification scope. No production API, persistence, backend-selection or rejection semantics were changed.

The platform input manifest identifies the application, native, test, fixture, build, CI and verifier inputs used by the current platform checks. Manifest SHA-256: aae730c74a8b5f2dd7f4c4596b34459e116578b094c226caeba6c761a1a0a3dd. The separately developed speech-fixture generator is outside the platform project inputs and has its own final fixture/source manifest under artifacts/tests/ticket02/. Its final file-based app setting was corrected while the project checks were running; all platform-project input hashes still match after the checks.

Actual implementation and observed preparation checks

  • Three Windows-only public-interface tests resolve the actual registered WindowsScreenshotImageCropper from the application composition and verify every expected pixel/dimension at origins (0,0) and (1,1), plus ten invalid-bound cases with no output file. Tests log actual host, architecture, runtime and registration. They are excluded from portable compilation.
  • The existing C# artifact verifier requires those three names in matching Windows discovery/TRX with exactly one passed result each. Omitted, skipped and failed native cases cannot produce a pass. Portable artifacts reject the Windows crop class even when their runtime marker says Windows. Existing Outlook and runtime guards remain required.
  • Known German/English two-source WAV files, reference manifests, a .NET 10 file-based generator and the Windows acceptance procedure are prepared. Each fixture contains six fixed utterances alternating two known synthetic voices, with its own SHA-256, 16-kHz mono 16-bit PCM format, exact duration and frame-derived reference intervals. This supplies inputs for later real backend execution.

Artifact paths below are relative to the repository root, under ignored artifacts/tests/ticket02/; they are local evidence, not an external CI upload.

Check Actual host/target Observed result Evidence
Verifier TDD, missing crop slice macOS arm64; portable synthetic artifact tests Old verifier accepted missing native crop evidence: 3 expected failures, then 41 passes verifier/verifier-red-missing-crop.trx, verifier/verifier-green-missing-crop.trx
Verifier TDD, portable contamination slice Same host; synthetic Linux/Windows runtime markers Old verifier accepted crop class in portable evidence: 2 expected failures, then 43 passes verifier/verifier-red-portable-crop.trx, verifier/verifier-green-portable-crop.trx
Final focused verifier coverage macOS arm64; net10.0 52 passed, 0 skipped, 0 failed; synthetic checker coverage only verifier/verifier-final.trx
Normal portable Release build macOS 26.6.2 arm64; SDK 10.0.203; net10.0 0 errors; native Swift helpers built/signed and seven desktop helper self-tests passed portable-build.log
Full current portable discovery/execution macOS arm64; .NET runtime 10.0.7; net10.0 655 discovered/results, 653 passed, 2 reasoned Windows skips, 0 failed; CLI checker passes portable-discovery.txt, portable/portable.trx, portable-execution.log, portable-verification.txt
Normal Windows test/application cross-build macOS arm64; SDK 10.0.203; Windows TFM; win-x64 0 errors; normal resource generation, no suppression; new crop methods compiled windows-restore.log, windows-tests-build.log, windows-compiled-test-symbols.txt
Known speech fixture preparation macOS native speech plus .NET generator Two checked WAV/reference inputs; no ASR/finalizer request submitted fixture-manifest-validation.txt, fixture-generator-verification.md, fixture-source-content.sha256
Actual available service inventory Installed macOS portable application, .NET 10.0.7 Healthy/idle; actual default and english profiles select Azure, de-DE/en-US; process Azure key present, value excluded; Windows context unknown backend-inventory.md, safe backend-live-* receipts

Two NU1900 warnings in the portable build reflect unavailable vulnerability-feed access; restore used cached packages. Windows restore was cache-only with auditing disabled and its build has four existing NAudio deprecation warnings. Initial local test-harness attempts hit denied Swift cache/TCP access; redirected temporary native caches and scoped test execution resolved those harness limits. A Release --no-build attempt before its assembly existed executed no tests; the subsequent normal Release build and the single full executed suite provide the actual evidence.

The new crop cases could not run here because no compatible Windows runtime is available. Compiled method names are compiled-symbol evidence, not Windows discovery or assertion execution. The existing native macOS crop and common screenshot pipeline tests remain in the successful portable suite. Historical 602-pass and 639-pass portable baselines remain in their original dated records and are not reused as current totals.

Windows acceptance matrix

There is no observed Windows process/host/architecture/runtime/profile/model context in this session. Windows — unknown below means those fields remain unobserved, not a claim of a provisioned host. The cross-build's x64 RID is documented above and does not populate an execution row. The inventory must expand backend rows into each actual profile/backend/model combination once a Windows process is accessible.

Row Actual host / target / runtime Profile/backend/model and prerequisites Input/result evidence Acceptance state
W01 Windows — unknown; required Windows TFM Compatible Windows Desktop/.NET or demonstrated Wine runtime absent locally Composition test prepared/cross-built; no Windows execution open — not executed: compatible runtime unavailable
W02 Windows — unknown; same required TFM Five Outlook cases remain mandatory in verifier Compiled existing methods only; no actual Windows discovery/TRX open — not executed: compatible runtime unavailable
W03 Windows — unknown Windows per-user environment API Current portable result is a reasoned skip; no Windows assertion result open — not executed: compatible runtime unavailable
W04 Windows — unknown Native bitmap/glyph rendering Current portable result is a reasoned skip; no Windows assertion result open — not executed: compatible runtime unavailable
W05 External CI — current candidate unobserved Exact candidate revision, explicit portable/Windows jobs, artifact access required External observation receipt discussed below open — no current-content external run/artifact proof
W06 Windows — unknown; required Windows composition Real registered Windows cropper Known 4×3 pixels; two tests cross-built, neither executed on Windows open — not executed: compatible runtime unavailable
W07 Windows — unknown; required Windows composition Existing invalid-bound contract Ten rejection cases cross-built, no native execution open — not executed: compatible runtime unavailable
W-ASR-Azure Windows — unknown Effective profiles/languages/models and actual-process key availability unknown Known WAVs prepared; no Windows request/result open — inventory and compatible Windows host required
W-ASR-FunASR Windows — unknown Effective profiles/models, service, Docker architecture/model access unknown Known de/en inputs; a Mandarin-only model also needs a suitable known fixture open — inventory and compatible Windows host required
W-ASR-Whisper Windows — unknown Effective profile/model file/runtime unknown Known WAVs prepared; no Windows request/result open — inventory and compatible Windows host required
W-DIAR-FunASR Windows — unknown Effective finalizer activation/model/service unknown Known alternating source/time references; no final Windows result open — inventory and compatible Windows host required
W-DIAR-Pyannote Windows — unknown Effective finalizer activation/model/token/Docker unknown Known references; require actual finalizer runtime proof beyond HTTP 200/live fallback open — inventory and compatible Windows host required
W-BACKEND-weitere Windows — unknown Other effective combinations unknown until actual process inventory No omitted combination is implicitly passed or disabled open — Windows inventory required
W-RES Windows — unknown Actual Resemblyzer activation/Python/encoder/model unknown Mac Resemblyzer state or Ticket 12 is not a Windows encoder result open — Windows activation and compatible encoder evidence required if enabled

W-R00 remains the valid historical normal cross-build from Ticket 01; this session additionally compiled changed test inputs normally. W-R05/W-C07 evidence separation is maintained, but it is not a whole-ticket pass. W-B01–W-B09 remain unaccepted for Windows. No unknown Windows backend is classified disabled from the Mac configuration, and no stub/provider replacement or transported Mac answer is substituted.

Operational boundaries and external CI

The actual available service is a portable macOS process. Its effective process/configuration was inspected read-only and credential presence recorded without values. Its enabled FunASR/Whisper capability flags do not mean those providers are selected by its available profiles; Resemblyzer is disabled in that Mac process only. Docker 29.4.3 serves Linux arm64, Python is 3.14.8, and no compatible Wine/Windows executable or running guest was found. These are Mac-host observations, not Windows prerequisites.

External current-candidate CI execution and artifact publication remain unverified. The candidate includes pre-existing uncommitted prerequisites; a prior remote revision cannot prove these current explicit targets or crop cases. Read-only observation findings, accessed revision and any access limitation are retained in ci-observation.md. No workflow dispatch or publication was performed solely to manufacture an observed result.

The final-diarization procedure requires proof that the selected finalizer actually ran. Existing Whisper/pyannote behavior can keep live segments when no final turns are returned; a missing token can therefore leave an HTTP-success response without a finalizer pass. That source-derived limitation is explicitly documented; it is not an observed Windows failure or a newly changed fallback contract.

No Windows functional failure was observed because no Windows execution occurred. Ticket 02's Windows runtime/crop/backend acceptance and external CI row remain open. Tasks 1.1, 1.2 and the Windows portion of 3.2 remain unchecked. This evidence supplements their existing owners without rewriting the closed Ticket 01 or communication history. The prepared implementation is ready for user acceptance of its bounded scope, with the concrete missing Windows host/process and current-content CI evidence recorded above.