Skip to content

fix: clear verified roadmap follow-ups and stabilize Mac tests - #467

Merged
scttbnsn merged 5 commits into
dev/v0.6.0from
batch/roadmap-2026-10-24
Oct 24, 2026
Merged

scttbnsn merged 5 commits into
dev/v0.6.0from
batch/roadmap-2026-10-24

Conversation

@scttbnsn

Copy link
Copy Markdown
Contributor

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:

  • ci(swift): stabilize Mac tests and report complete coverage
  • fix(text): preserve saved words phrases and streaks
  • ci(fuzz): exercise the production phrase matcher with libFuzzer
  • refactor(menu): remove unused cleanup paste and pill submenus
  • ci(swift): run offscreen Settings renders with logic tests

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.
@coderabbitai

coderabbitai Bot commented Oct 24, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

Run configuration
  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: Organization UI
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: abf2cac6-7437-4b04-87d1-820014787f01

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@scttbnsn
scttbnsn merged commit 832cc15 into dev/v0.6.0 Oct 24, 2026
17 checks passed
@scttbnsn
scttbnsn deleted the batch/roadmap-2026-10-24 branch October 24, 2026 13:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant