bunx --bun pickier . resolves the newest pickier at every CI run, and the current release promotes no-unused-imports from a warning to an error. Nothing in the repo changed — the rule did — so lint is now red on every open PR for fourteen unused imports in files nobody touched.
Removed:
| file | import |
|---|---|
packages/react/src/hooks/useWindow.ts | useEffect |
packages/react/src/hooks/useTray.ts | useEffect |
packages/android/src/index.ts | readdirSync |
packages/ios/src/index.ts | basename |
packages/typescript/src/logging/index.ts | join |
packages/typescript/src/styles/sidebar-templates.ts | cx |
packages/typescript/src/updater/index.ts | pipeline |
packages/typescript/src/utils/svelte.ts | readable, get |
packages/typescript/src/signing/index.ts | readFileSync |
packages/svelte/src/stores/craft.ts | get |
examples/voice-buddy.ts | join |
examples/ecommerce-app/src/main.ts | http, secureStorage |
Each was verified unused by grepping for the symbol after removal rather than by trusting the rule — packages/react, packages/svelte and examples/ are outside the typecheck script, so the compiler would not have caught a mistake there. The one apparent survivor, pipeline in updater/index.ts, is the word inside a comment.
The cause is worth naming, not just the symptom. The lint script pins no version, so CI and a local checkout run different linters — a local run here reported 0 errors against the installed 0.1.37 while CI failed against 0.1.65. Today that surfaced as a rule getting stricter, which is the benign direction. The same gap would equally let CI run a looser rule set than a developer sees, with nothing to indicate the two ran different code.
Verification
bunx --bun pickier@0.1.65 .— 0 errors (32 pre-existing warnings, all markdown/quote style)bun run typecheck— passes