Summary
The Rust Quality CI job runs cargo clippy -- -D warnings on ubuntu-22.04. Every #[cfg(target_os = "macos")] region is configured out before clippy sees it, so macOS-only Rust is never linted in CI. After #4872 wired -D warnings into the pre-push hook, this gap surfaced as a hard block: 11 clippy errors sat green on main (invisible to Linux CI) while blocking every macOS dev's git push (#5018).
Impact
- Lint regressions in macOS-gated code (window management, notifications, native panels —
app/src-tauri/src/{mascot_native_window,notch_window,claude_code,native_notifications,imessage_scanner}.rs, plus ~26 cfg(macos) blocks in lib.rs) reach main undetected.
- Discovered only when a macOS dev's pre-push hook fires — after the code is already merged.
Options considered
| Approach |
Cost |
Verdict |
Piggyback cargo clippy (shell + core) onto CI Full's existing build-macos-full job |
~2-3 min marginal, warm compile cache |
Recommended |
| Dedicated per-PR macOS clippy lane |
macOS runners billed ~10x; 8-40 min/PR |
Expensive |
Cross-target clippy from Linux (--target aarch64-apple-darwin) |
— |
Non-viable: libsqlite3-sys, whisper cmake, cef-dll-sys need Apple clang/SDK |
Recommendation
Add clippy to the existing macOS build job in CI Full rather than a new per-PR lane — the runner and compile cache already exist there. Residual: lint drift can still land via Linux/cloud-agent pushes between release promotions (bounded by macOS pre-push firing loudly, as happened in #5018).
Related
Summary
The
Rust QualityCI job runscargo clippy -- -D warningsonubuntu-22.04. Every#[cfg(target_os = "macos")]region is configured out before clippy sees it, so macOS-only Rust is never linted in CI. After #4872 wired-D warningsinto the pre-push hook, this gap surfaced as a hard block: 11 clippy errors sat green on main (invisible to Linux CI) while blocking every macOS dev'sgit push(#5018).Impact
app/src-tauri/src/{mascot_native_window,notch_window,claude_code,native_notifications,imessage_scanner}.rs, plus ~26 cfg(macos) blocks inlib.rs) reach main undetected.Options considered
cargo clippy(shell + core) onto CI Full's existingbuild-macos-fulljob--target aarch64-apple-darwin)libsqlite3-sys, whisper cmake,cef-dll-sysneed Apple clang/SDKRecommendation
Add clippy to the existing macOS build job in CI Full rather than a new per-PR lane — the runner and compile cache already exist there. Residual: lint drift can still land via Linux/cloud-agent pushes between release promotions (bounded by macOS pre-push firing loudly, as happened in #5018).
Related
-D warningsenforcement