Summary
Since #4872 (chore(rust): enforce warning-free clippy, merged 2026-07-16) the .husky/pre-push hook runs pnpm rust:clippy, which lints both crates with -D warnings. The Tauri shell crate (app/src-tauri) has 11 pre-existing clippy errors, all inside #[cfg(target_os = "macos")] code. This hard-blocks git push on every macOS dev machine.
Why CI is green
The Rust Quality job runs on ubuntu-22.04. macOS-gated regions are stripped before clippy runs, so these 11 lints are invisible to CI. Main is green; macOS devs are blocked. (The CI blind-spot itself is tracked separately.)
The 11 errors
| File |
Lint |
app/src-tauri/src/lib.rs:1198,1261,1280 |
needless_return ×3 |
app/src-tauri/src/claude_code.rs:46 |
needless_return |
app/src-tauri/src/native_notifications/mod.rs:40,54 |
needless_return ×2 |
app/src-tauri/src/imessage_scanner/mod.rs:375 |
contains() over iter().any() |
app/src-tauri/src/mascot_native_window.rs:55 |
dead_code — webview field (RAII keep-alive, must stay) |
app/src-tauri/src/mascot_native_window.rs:392 |
explicit_auto_deref |
app/src-tauri/src/notch_window.rs:64 |
dead_code — is_open fn (zero callers) |
app/src-tauri/src/notch_window.rs:265 |
explicit_auto_deref |
Scope
Mechanical lint fixes only. Two judgment calls: MascotPanel.webview is an RAII keep-alive (documented in-struct) — #[allow(dead_code)], not deletion; notch_window::is_open has zero callers — delete. Vendored tauri-runtime-cef warnings are out of scope (path dep, not denied).
Acceptance
pnpm rust:clippy from repo root exits 0 on macOS.
Summary
Since #4872 (
chore(rust): enforce warning-free clippy, merged 2026-07-16) the.husky/pre-pushhook runspnpm rust:clippy, which lints both crates with-D warnings. The Tauri shell crate (app/src-tauri) has 11 pre-existing clippy errors, all inside#[cfg(target_os = "macos")]code. This hard-blocksgit pushon every macOS dev machine.Why CI is green
The
Rust Qualityjob runs onubuntu-22.04. macOS-gated regions are stripped before clippy runs, so these 11 lints are invisible to CI. Main is green; macOS devs are blocked. (The CI blind-spot itself is tracked separately.)The 11 errors
app/src-tauri/src/lib.rs:1198,1261,1280needless_return×3app/src-tauri/src/claude_code.rs:46needless_returnapp/src-tauri/src/native_notifications/mod.rs:40,54needless_return×2app/src-tauri/src/imessage_scanner/mod.rs:375contains()overiter().any()app/src-tauri/src/mascot_native_window.rs:55dead_code—webviewfield (RAII keep-alive, must stay)app/src-tauri/src/mascot_native_window.rs:392explicit_auto_derefapp/src-tauri/src/notch_window.rs:64dead_code—is_openfn (zero callers)app/src-tauri/src/notch_window.rs:265explicit_auto_derefScope
Mechanical lint fixes only. Two judgment calls:
MascotPanel.webviewis an RAII keep-alive (documented in-struct) —#[allow(dead_code)], not deletion;notch_window::is_openhas zero callers — delete. Vendoredtauri-runtime-cefwarnings are out of scope (path dep, not denied).Acceptance
pnpm rust:clippyfrom repo root exits 0 on macOS.