jouleclaw-omni: declare 23 modules that were compiled by nothing #314
Merged
dcharlot
merged 1 commit from 2026-10-18 13:18:54 -04:00
tidy/clippy-sweep into main 2026-10-18
jouleclaw-omni: declare 23 modules that were compiled by nothing
All checks were successful
jouleclaw public surface must stay documented / Public-surface audit (jouleclaw-rs) (pull_request) Successful in 59s
standards workspaces build + test / which workspaces this change touches (pull_request) Successful in 33s
repository checks / lockfiles, tests in CI, workflow hygiene, spec and section references, public text (pull_request) Successful in 3m15s
standards workspaces build + test / macOS energy backends (pull_request) Successful in 10m2s
standards workspaces build + test / jouledesk-rs (jouledesk/jouledesk-rs, jouledesk-rs, macos) (pull_request) Successful in 3m49s
standards workspaces build + test / mesh-rs (mesh/mesh-rs, -p mesh-engine-gguf -p mesh-openai --features mesh-engine-gguf/gguf,mesh-openai/server, mesh-rs, linux-arm64) (pull_request) Successful in 3m3s
standards workspaces build + test / jouleclaw-rs (-nodebug, jouleclaw/jouleclaw-rs, -p jouleclaw-energy --features rapl,nvml, jouleclaw-rs, linux-arm64, -C target-feature=+fp16) (pull_request) Successful in 7m35s
Twenty-five source files in this crate were named by no `mod` line, so they were not in the build at all: ~19,000 lines that nothing type-checked, tested or linted. `scripts/check-orphan-sources.py` pinned them as a baseline so the count could only fall, and this is that fall: 25 -> 1. Declaring them costs almost nothing, which is the surprise. Twenty-three compile clean, and the two that do not are blocked by facts outside the code: video_decode.rs wants `ffmpeg_next`, which is not a dependency (`extern crate ffmpeg_next` -> E0463). That is a system library and a licensing choice, so it stays undeclared, and the baseline now holds it alone, with the reason written beside it. fusion.rs has every one of its `use` lines behind `#[cfg(feature = "metal")]` while the items that need those types do not, so a default build loses the imports and keeps the code: 31 unresolved types. It only ever compiled with that feature on. The module is now gated the same way, as `gpu_ops` and the sana_wm draft already are. sana_wm_gpu_dispatchers_draft.rs is gated likewise: it imports `crate::hal::metal`, which is `#[cfg(feature = "metal")]`. Measured on the build host, with --keep-going so an early error cannot hide what is behind it: `cargo check` 0 errors, `cargo clippy --all-targets` 0 errors, 44 tests pass, the whole jouleclaw workspace still checks, and the orphan guard passes on the new baseline, its planted-orphan self-test included. ⚠️ Separately, and not from this change: `--features metal` does not compile on main at all -- 3063 errors, concentrated in files that were already declared (hunyuan3d.rs 300, audiogen.rs 269, trellis.rs 213). Measured on origin/main before this change, so it is pre-existing. No CI job builds that feature. Co-Authored-By: Claude Opus 5 <[email protected]>