[11/12] test: hardware-free regression suite — 484 tests - #20
Conversation
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
Review the following changes in direct dependencies. Learn more about Socket for GitHub.
|
|
Warning Review the following alerts detected in dependencies. According to your organization's Security Policy, it is recommended to resolve "Warn" alerts. Learn more about Socket for GitHub.
|
There was a problem hiding this comment.
Pull request overview
Adds a new Muesli.Windows.Tests project containing a large, hardware-free regression suite intended to pin public service contracts and key behaviors across dictation, meetings, model lifecycle, automation, import/export, detection, summaries, computer-use safety, and onboarding/Phase12 preview contracts.
Changes:
- Introduces
windows-native/Muesli.Windows.Tests/test project (xUnit + WPF support) and sharedGlobalUsings.cs. - Adds extensive contract/regression tests spanning model catalogs/lifecycle, dictation/hotkeys/paste/toasts, meeting lifecycle/finalization/live transcription/detection/notes, import/export/cancellation, automation + persistence, privacy/retention, and computer-use safety validation.
- Adds Phase 12 “visual preview” source-contract tests that assert specific XAML/code/script invariants.
Reviewed changes
Copilot reviewed 23 out of 23 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| windows-native/Muesli.Windows.Tests/TranscriptionModelPlatformTests.cs | Offline model catalog/migration assertions plus client switching and lifecycle recovery tests. |
| windows-native/Muesli.Windows.Tests/ToastNotificationServiceTests.cs | Verifies toast placement clamping behavior for multiple monitor/work-area scenarios. |
| windows-native/Muesli.Windows.Tests/TextAndSummaryTests.cs | Covers dictionary/speaker alias boundaries, transcript formatting, and summary fallback behavior. |
| windows-native/Muesli.Windows.Tests/SecretsAndSettingsTests.cs | Pins safe defaults, normalization/bounds, schema-forward-compat behavior, and secret migration guarantees. |
| windows-native/Muesli.Windows.Tests/Phase9AutomationTests.cs | Large suite for post-meeting automation hook execution, redaction, retries, job-object behavior, and auto-export. |
| windows-native/Muesli.Windows.Tests/Phase9AutomationPersistenceTests.cs | Ensures automation diagnostics persist/round-trip correctly with meeting persistence. |
| windows-native/Muesli.Windows.Tests/Phase8MediaImportTests.cs | Validates advertised import formats, guidance messaging, deterministic decoding, and owned-file deletion rules. |
| windows-native/Muesli.Windows.Tests/Phase8ImportCancellationTests.cs | Pins progress mapping/throttling and cancellation propagation across import/transcription/cleanup. |
| windows-native/Muesli.Windows.Tests/Phase8ExportTests.cs | Verifies export mode content, determinism, filenames, PDF/markdown output, and error propagation. |
| windows-native/Muesli.Windows.Tests/Phase7NotesTests.cs | Notes provider contract tests (Ollama/cloud), disclosure rules, templates, and persistence constraints. |
| windows-native/Muesli.Windows.Tests/Phase6DetectionTests.cs | Join-URL parsing + anti-lookalike checks, evidence classification, false-positive suppression, and badge metadata. |
| windows-native/Muesli.Windows.Tests/Phase5FinalizationTests.cs | Finalization pipeline tests: timelines, merge ordering, identity assignment, dedupe, and fixture-gated diarization qualification. |
| windows-native/Muesli.Windows.Tests/Phase4LiveTranscriptionTests.cs | Streaming model verification, live session behavior, bounded queues/gaps, ownership semantics, and fixture-gated real inference. |
| windows-native/Muesli.Windows.Tests/Phase3MeetingLifecycleTests.cs | Meeting state machine determinism, audio health monitoring, recovery, legacy migrations, and retention safeguards. |
| windows-native/Muesli.Windows.Tests/Phase2DictationTests.cs | Dictation hotkey state machine, filler/dictionary behavior, retention bounds, and temp-audio recovery rules. |
| windows-native/Muesli.Windows.Tests/Phase12ProductExperienceTests.cs | Phase 12 onboarding/preview contract tests asserting code/XAML/script invariants and privacy constraints. |
| windows-native/Muesli.Windows.Tests/Phase10ComputerUseTests.cs | Computer-use planner validation, risk gating, privacy rejection, loopback devtools constraints, and trace-store bounds. |
| windows-native/Muesli.Windows.Tests/Muesli.Windows.Tests.csproj | New test project configuration + automation test host copy step. |
| windows-native/Muesli.Windows.Tests/ModelAndSingleInstanceTests.cs | Pins model hashes, safe archive extraction, lock behavior, and single-instance routing rules. |
| windows-native/Muesli.Windows.Tests/HotkeyAndPasteTests.cs | Hotkey parsing/matching plus clipboard/paste behavior and race handling via fakes. |
| windows-native/Muesli.Windows.Tests/GlobalUsings.cs | Shared test usings for xUnit, services, and common BCL namespaces. |
| windows-native/Muesli.Windows.Tests/CapturePrivacyAndRuntimeTests.cs | Capture storage ownership, transient cleanup/idempotence, log redaction/retention, runtime status mapping. |
| windows-native/Muesli.Windows.Tests/AtomicPersistenceTests.cs | Atomic JSON persistence behaviors, corruption quarantine/recovery, concurrent saves, and deletion redaction. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| var firstSpeaker = SpeakerFor(systemSegments[0], segments); | ||
| var returningSpeaker = SpeakerFor(systemSegments[^1], segments); | ||
| output.WriteLine($"first voice id={firstSpeaker}; returning voice id={returningSpeaker}"); | ||
| Assert.False(string.IsNullOrEmpty(firstSpeaker)); | ||
| } |
| } | ||
|
|
||
| [Fact] | ||
| public void BadgeAccentsAndLabelsAreDistinctSoPlatformsAreTelledApart() |
| } | ||
|
|
||
| [Fact] | ||
| public void Preview_matrix_has_the_complete_128_visual_cells() |
556d813 to
dd40b79
Compare
Wires the dashboard, dictation, meetings, model management, benchmarking, onboarding, computer-use and diagnostics surfaces onto the native services introduced in the preceding changes. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Scaffolds the xunit test project that runs without a microphone, GPU or downloaded models, covering atomic persistence and the settings/secret stores. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Adds coverage for model resolution and platform selection, archive extraction safety, artifact cleanup, cross-process locking, runtime status mapping, capture privacy, and text/summary post-processing. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
…ction and notes Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
…ding Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Git checks source out with CRLF on Windows (core.autocrlf=true), so the literal "\n" in the Show()/PositionWindow ordering assertion never matched on a clean clone and the test failed for reasons unrelated to the invariant it guards. Normalise the file text before asserting. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
…t merge reapplication
dd40b79 to
e43d92b
Compare
|
Claude encountered an error after 0s —— View job I'll analyze this and get back to you. |
This PR (11/12): hardware-free regression suite — 484 tests
Commits:
f5e428ftest: hardware-free regression test project —windows-native/Muesli.Windows.Tests/(project,GlobalUsings.cs)63fd7b1test: model catalog, runtime status and single-instance behaviour —ModelAndSingleInstanceTests.cs,TranscriptionModelPlatformTests.csccfb35ctest: dictation state machine, hotkeys, paste and toasts —Phase2DictationTests.cs,HotkeyAndPasteTests.cs,ToastNotificationServiceTests.cs2d05ee9test: meeting lifecycle, live transcription, finalisation, detection and notes —Phase3MeetingLifecycleTests.cs,Phase4LiveTranscriptionTests.cs,Phase5FinalizationTests.cs,Phase6DetectionTests.cs,Phase7NotesTests.cs556d813test: media import, export, automation, computer use and onboarding —Phase8MediaImportTests.cs,Phase8ImportCancellationTests.cs,Phase8ExportTests.cs,Phase9AutomationTests.cs,Phase9AutomationPersistenceTests.cs,Phase10ComputerUseTests.cs,Phase12ProductExperienceTests.csAtomicPersistenceTests.cs,SecretsAndSettingsTests.cs,CapturePrivacyAndRuntimeTests.cs,TextAndSummaryTests.cs23 files, +6,326.
Review focus
Phase8ImportCancellationTests— asserts service-level import cancellation/progress contracts (UI affordances are a documented follow-up, see PR 6 Known limits).Expected — do not flag: tests exercise public service contracts, not internals; some cover features that ship Off by default (PRs 6/7) — that is intentional contract pinning.
Test evidence
This PR is the suite:
dotnet build windows-native\Muesli.Windows\Muesli.Windows.csproj --no-restore— cleandotnet test windows-native\Muesli.Windows.Tests\Muesli.Windows.Tests.csproj --no-restore— 484/484 passingPrevious: #19 | Next: #21