Menu ▾ ▴

#523 Lint: stop no-unused-vars flagging 347 cross-script globals, then delete 28 dead declarations

open
nobody
6 days ago
6 days ago
Anonymous
No

Originally created by: Redo-San

npm run lint reports 375 no-unused-vars warnings. A triage run on 2026-10-06 (ESLint 0 errors / 5,627 warnings total) split them:

Class Count Meaning
Referenced in another file 347 false positive — cross-script globals
Appears only at its declaration 28 real dead-code candidates

Example of the false positive: awWriteWav is declared at Audio_Watermark/audio_watermark_core.js:107 and called at Audio_Watermark/audio_watermark.js:271, plus cli/tests/audio_watermark_core_test.js and cli/tests/audio_watermark_ui_test.js via globalThis.awWriteWav. The browser code is vanilla-JS <script>/IIFE modules sharing one global scope, but flat config parses each file as a module, so ESLint cannot see the cross-file use.

The 28 single-occurrence candidates (verified with rg -F <name> across the repo, excluding node_modules/coverage):

C2PA/c2pa.js:891  actorName
Certificate/certificate.js:438  piFileName
Certificate/certificate_epub.js:33  imgMime
Converter/converter.js:372  convSelectFormat
Converter/converter.js:1277  convVideoFfmpeg
Converter/converter.js:1381  convVideoNative
Converter/converter.js:1757  convVideoToGif
Document_Watermark/document_watermark_pdf.js:449  wmAppended
Fingerprint/hashing.js:1560  b3_xof
Iris_Biometric/iris_quality.js:125  iRow
Iris_Biometric/iris_quality_full.js:939  startX
Iris_Biometric/iris_quality_full.js:940  startY
Iris_Biometric/iris_quality_full.js:941  endX
Iris_Biometric/iris_quality_full.js:944  endY
Iris_Biometric/iris_ui.js:21  _irisOverlay
Iris_Biometric/iris_ui.js:30  _irisReport
Iris_Biometric/iris_ui.js:872  _irisStartOverlay
Iris_Biometric/iris_ui.js:945  seedStr
Iris_Biometric/iris_ui.js:1152  autoPass
Pixel_Injection/watermark_advanced_ui.js:17  AdvancedWatermarkUI
Pixel_Injection/watermark_core_algorithms.js:27  modelConfig
Pixel_Injection/watermark_core_algorithms.js:221  self_healing
Pixel_Injection/watermark_core_algorithms.js:1655  windowSize
Style/shared.js:144  dlId
cli/commands/certificate.js:675  _qrContent
cli/commands/watermark.js:52  _extractable
cli/commands/watermark.js:53  _keyUsages
cli/commands/watermark.js:820  _algoName

Change

  1. Teach the rule about this repo's architecture before deleting anything — pick and document one approach (candidate options: no-unused-vars with vars: "local", a scoped config block for the browser script globs, or /* exported name */ directives on the genuinely shared symbols).
  2. Then delete the 28 candidates — but re-check each one for a dynamic reference first (data-* attributes, inline on* handlers, window["…"], HTML in Style/pages/**).

Do not bulk-disable the rule or raise max-warnings; the plan forbids burning down counters.

Acceptance criteria

  • [ ] npx eslint --config .tools/Developer_Toolkit/eslint.config.mjs . -f json → no-unused-vars ≤ 30 (0 if all 28 are deleted).
  • [ ] No symbol that exists in more than one file at baseline is removed (diff against the 347-name list above).
  • [ ] npm run check passes.
  • [ ] Any inline disable added carries a one-line justification.

Discussion


Log in to post a comment.