[eslint-refiner] ESLint Refiner — Daily Report — 2026-08-04 #50198
Closed
Replies: 1 comment
|
This discussion was automatically closed because it expired on 2026-08-05T06:21:21.354Z.
|
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Summary
Scope:
eslint-factory/**custom ESLint rules and their targets inactions/setup/js/**.Metrics
git log; pivoted to README documentation-coverage as the freshness proxy).no-core-error-then-setfailed,no-caught-error-interpolation,no-err-stack-then-string-fallback,no-setfailed-then-exit-zero,prefer-get-error-message-over-string,require-escaped-regexp-interpolation,no-duplicate-constant-values), chosen as the previously-undocumented/never-reviewed set.require-fs-sync-try-catch(a destructured/aliasedfsbinding false-negative, and a catch-lesstry/finallysoundness gap) have since been fixed intry-catch-rule-utils.ts, and the flagged application site (actions/setup/js/action_setup_otlp.cjs:44-49) is now correctly wrapped in try/catch.Findings
1. README documentation debt (10 of 38 rules undocumented)
Every registered rule builds a doc link of the form
.../eslint-factory#<rule-name>, but 10 rules have no matching README section, so that link 404s and contributors have no discoverable rationale for the warning they hit. This gap was flagged as a priority in repo-memory across at least two prior runs (2026-07-08, 2026-07-05) but never actually filed until today.2.
no-duplicate-constant-values: boolean values lack the coincidence guard given to numbersThe rule requires >=3 declarations sharing a numeric value before flagging a "duplicate constant" (
MIN_NUMERIC_DUPLICATE_GROUP_SIZE = 3) — an explicit acknowledgment that small numbers collide by coincidence. Booleans get no equivalent guard, despite having only 2 possible values module-wide (a smaller, more collision-prone space than the numeric case the threshold was built for). No live corpus example exists yet — the codebase is disciplined — but this mirrors the precedent set by the ungrounded-but-cheapcatch-less try/finallyfix filed 2026-07-08, which was accepted and landed.What didn't pan out
Deep review of
require-escaped-regexp-interpolation(a security-relevant ReDoS/regex-injection rule) against ~13 livenew RegExp(\...`)interpolation sites in the corpus found the rule behaving correctly throughout, including one already-suppressed true positive (glob_pattern_helpers.cjs:74-75) and several correctly-recognizedescapeRegex-style helper true negatives.no-setfailed-then-exit-zerowas checked for a hypothesized nested-if` sibling-scope gap; no live vulnerable pattern was found in the corpus. Neither produced a groundable issue this run.Repo-memory
Updated
state.jsonandhistory.jsonlonmemory/eslint-refinerwith this run's findings, the corrected 38-rule count, and the note that git-history-based rule-age detection no longer works in this checkout (squashed history) — future runs should lean on README doc-coverage gaps and therulesReviewedEverlist instead.All reactions