[eslint-refiner] ESLint Refiner Daily Report - 2026-09-30 #64417
Closed
Replies: 1 comment
|
This discussion was automatically closed because it expired on 2026-10-01T05:37:49.591Z.
|
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.
Overview
Daily refinement pass over
eslint-factory's 63 custom ESLint rules (up from 62 —no-single-char-string-replaceshipped since yesterday). This run's highest-value signal was a rule-count bump plus a genuinely new feature commit (#64354, the ledger configuration feature — ~10 newledger_*.cjsfiles): both this run's leads came from grounding rules against that fresh code rather than re-treading previously-reviewed corpus.Key metrics
Issue filed today
no-empty-catch-block: rationale comments without a magic keyword still flagged. The rule's intentional-ignore matcher only recognizes a fixed phrase list (intentional,best-effort,non-fatal,ignore,fall-through,no-op,swallow...because). Two brand-new empty catch blocks inledger_store.cjs(lines 744-746 and 776-778, from #64354) explain their rationale clearly ("must not turn a durable append into a reported failure") but use none of those words, while sibling catches in the same file dodge the warning only because they happen to say "Best-effort." Filed with concrete acceptance criteria for broadening the matcher.Retired this run
no-string-fallback-for-non-string-message's alias-type-narrowing false positive (#62560) expired for the 2nd time with no upstream fix. Per the now-established precedent (4 other themes retired the same way:try-catch-rule-utils.ts,no-json-stringify-equality,require-invalid-date-check-before-compare), this theme is retired from the refiling rotation — mentioned here for visibility only.Full grounding detail
no-single-char-string-replace(first-ever review, new 63rd rule). Flags.replace("_", x)-style calls with a single-character string pattern as first-occurrence-only, suggestingreplaceAll()(suggestion, not autofix). Exhaustively grounded all 6 live non-test call sites in the corpus:azure_devops_work_items.cjs:81(_→-)interpolate_prompt.cjs:241(.→\., regex-escaping)parse_mcp_gateway_log.cjs:646,733(T→, ISO timestamp)parse_mcp_scripts_logs.cjs:214(,→ ``)create_pull_request_helpers.cjs:219(#→\#)Every site is provably single-occurrence by the string's own structure (an ISO timestamp has exactly one
T; the regex capture group that producesissueRefexcludes#; env-derived names have exactly one dot separator) — so the rule's suggestion is harmless in 100% of live cases today. Also checked and ruled out: custom non-String.replace()implementations (none exist in the corpus), bracket-notation bypass (already excluded, matches the rule's own tests), regex-literal false triggers (already excluded viatypeofcheck), and no-substitution template-literal patterns (`_`instead of"_", which would escape theLiteral-type check) — zero live occurrences of the last one, so not filed. Clean bill of health.require-fs-close-sync(re-scan against new code). Checked all 10+ newfs.openSync/fs.closeSyncpairs introduced acrossledger_store.cjs,push_ledger_changes.cjs, andledger_append.cjs. Every open has a same-function close, including ones nested in their owntry/catchinside afinallyblock — correctly handled since the rule doesn't treattry/catch/finallyas separate function frames. No gap found.Chronic/retired themes (unchanged, not re-checked this run):
no-unsafe-promise-catch-error-propertyblanket-guard theory, bareRegExp(...)withoutnew,no-json-stringify-equalityindirect-variable gap,core-method-resolve.ts2-hop alias theory,no-json-stringify-set-or-mapparameter/return-binding gap — all previously retired after 4-5+ consecutive zero-grounding checks; not revisited today in favor of the fresher ledger-feature signal.Known housekeeping gap (unfixable from this workflow): at least 2 confirmed cases (#61044, #61543) of a rule defect being fixed upstream in source without the tracking issue ever being closed — this workflow has no
close_issue/add_commentsafe-output. Flagging again for a human or PR-capable workflow to add issue-closure verification.Next actions
<consequence>" comment shape before refiling.no-caught-error-interpolation,prefer-structured-clone,require-lastindex-reset-before-global-exec-loop, last touched 2026-09-11).no-single-char-string-replaceis not yet documented ineslint-factory/README.md's rule table — low-priority doc debt, not worth a standalone issue yet.All reactions