Files
7b4033bc35 chore: adopt knip + remove dead files, deps, exports, and types (#771)
Add knip (dead-code/dep finder) for the bun workspace, then act on what it
found. Complements the oxlint gate: oxlint flags per-file unused symbols; knip
finds whole dead files/exports/deps across the project.

Tooling:
- frontend/knip.json + `bun run knip` script. Ignores the legitimate false
  positives: public/aec-worklet.js (loaded via a dynamic AudioWorklet URL),
  /@react-refresh (Vite dev inject), and tailwindcss + the Rust-side
  @tauri-apps/plugin-updater / plugin-window-state JS packages (used by the
  native plugin, not imported in JS).

Removed (all verified — build + tests + tsc + oxlint green):
- Dead files: CastingView.{jsx,css}, UpdateStatusChip.{jsx,css} (no refs; the
  latter only survived in a stale comment, now reworded), and ui/motion.js.
- Unused deps: @radix-ui/react-popover, @radix-ui/react-select, @eslint/js,
  eslint-plugin-react-refresh (the last two orphaned when eslint.config.js was
  stripped for the oxlint adoption).
- 44 dead exports + 56 dead exported types across api/*, store/*, ui/*, utils/*:
  deleted where used nowhere; dropped just the `export` keyword where still
  referenced in-file.

Kept (justified): Slider primitive (keeps @radix-ui/react-slider meaningful),
AppMode export (a test string-parses its source), tailwindcss (CSS @import +
vite plugin).

Verified: oxlint 0 errors; tsc clean; vite build; full suite 638/638;
bun install --frozen-lockfile in sync (Docker rule).

Co-authored-by: mergetest <test@local>
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-30 14:20:55 +05:30

16 lines
299 B
JSON

{
"$schema": "https://unpkg.com/knip@6/schema.json",
"ignore": [
"public/aec-worklet.js"
],
"ignoreUnresolved": [
"/@react-refresh"
],
"ignoreDependencies": [
"tailwindcss",
"@tauri-apps/plugin-updater",
"@tauri-apps/plugin-window-state",
"playwright-core"
]
}