Repository navigation
fix: clear verified roadmap follow-ups and stabilize Mac tests - #467
Merged
Merged
Conversation
Serial Mac tests could hang when the queued-recording test released its fake engine before the hold started. Wait for the hold explicitly and replace the names-on-screen speed assertion with a blocked-reader check. The original quit test passes five consecutive controller runs. Enable headless tests on PRs after five consecutive successful dev push test jobs. Fix llvm-cov reporting to include every test binary, use the exact merged profile, and show a coverage badge in each run summary. Also fix the pre-push filter that silently exited on mixed Swift and non-Swift changes. Validation: 2,576 CI-equivalent Swift tests, five serial runs of 150 controller tests, 35 release helper tests, the real pre-push formatting/build gate, actionlint, shellcheck and zizmor all pass. Local installed-model evaluations and Settings UI acceptance are separate. Correct overall Swift line coverage is 65.50%. The 80% coverage floor remains a roadmap item and is not enabled by this change.
Fix four reproduced text bugs: saved multiword terms split by a boost alignment boundary could receive internal punctuation; timed-out cleanup skipped phrase expansion; quoted dictionary rules were counted as used by unquoted speech; date-line travel reset the current streak. Add regressions that fail on the previous behavior. Also gate Formal profanity prewarm, tighten the queued-card regression, and document intentional held-key notice suppression and appearance limits. Validation: 226 Mac and 133 Core filtered tests passed, then the combined CI-equivalent/offscreen run passed 2,677 tests. The documentation site builds. Physical checks remain separate.
Add a real LLVMFuzzerTestOneInput target over the production phrase matcher, phrase-key normalizer and word scanner. Check match boundaries, literal contents, non-overlap and Unicode-safe ranges, seeded with overlapping patterns, quotes, whitespace and Unicode. Run libFuzzer with AddressSanitizer for 30 seconds in the existing pinned Linux Swift security job; retain failure reproducers as an artifact. Apple Swift rejected the libFuzzer runtime flag locally. Local AddressSanitizer replay passed all seeds and 4,096 malformed UTF-8 inputs. Linux libFuzzer execution must be verified from this PR’s CI before this item is marked done.
Remove the obsolete Cleanup, Paste Options and Pill Style menu classes and their menu-only tests. Preserve the shared cleanup-model download prompt in Settings and preserve model-target and pill-size controller tests without obsolete menu plumbing. PillSkin.swift contains the active skin system and stays. Validation: 159 tests in 21 affected suites passed; the combined run passed 2,677 tests. Changed Swift formatting and the warnings-as-errors build passed.
Run the offscreen Settings rendering tests alongside the logic tests in CI. Keep keyboard navigation, live preview windows and composited shown-window capture in the desktop lane because they activate windows. The offscreen subset asserts its windows remain hidden. Validation: 116 offscreen tests completed with a summary twice locally; the combined serial run passed 116 Settings + 1,580 Mac + 961 Core + 20 Fn tests. Correct overall Swift line coverage is 79.80%. The 80% floor is still open. CI environment compatibility remains to be verified on this PR.
scttbnsn
requested review from
ALARGECOMPANY,
biggest-littlest and
dstahl11
as code owners
October 24, 2026 13:02
|
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
|
This was referenced Oct 25, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Cleanup could skip saved phrases after a timeout, vocabulary boosting could put punctuation inside a multiword saved spelling, quoted dictionary rules could be counted as used by unquoted speech, and date-line travel reset the current streak. Fix those cases with regressions that fail on the previous behavior.
This batch also replaces the queued-engine test race with an explicit wait, removes unused menu sections while retaining the Settings download prompt, repairs the mixed-file pre-push filter, runs headless and offscreen Settings tests on PRs, and corrects llvm-cov to include every test binary. Add a Linux Swift libFuzzer/AddressSanitizer job over the production phrase matcher.
Local validation: 2,677 serial tests passed (116 offscreen Settings, 1,580 Mac, 961 Core and 20 Fn); five controller repeats passed; 35 release helper tests and the docs build passed. Changed Swift formatting, the warnings-as-errors build, actionlint, shellcheck and zizmor passed. The combined tree matches the individually tested branches exactly.
Correct overall line coverage is 79.80%. The 80% floor remains open. Linux libFuzzer execution and offscreen-rendering compatibility need this PR's CI; local AddressSanitizer replay passed the seeds and 4,096 malformed UTF-8 inputs. Desktop keyboard/live-window checks remain separate.
Reviewed for a single-user local desktop app, with accidental changes to transcripts, saved spellings, focus and recovery as the main risks. No auto-submit or physical acceptance claims.
Batch commits: