[eslint-refiner] ESLint Refiner — daily report 2026-08-02 #49722
Closed
Replies: 1 comment
|
This discussion was automatically closed because it expired on 2026-08-03T06:33:09.602Z.
|
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
Repo-memory had gone stale for 25 days (last update 2026-07-08), even though the daily refinement workflow kept running throughout that window. Since this sandbox's git clone is shallow (only 1 commit visible), I reconstructed the missing history from the GitHub Issues API instead of git log, then resumed normal operation: reviewed never-before-reviewed rules and filed 2 new grounded findings.
Key metrics
eslint-factory: 37 (up from 12 tracked in memory — ~25 rules shipped during the gap)no-caught-error-interpolation,no-setfailed-then-exit-zero,require-fetch-timeout,require-fetch-try-catch,require-fs-io-try-catch,prefer-get-error-message-over-string)require-escaped-regexp-interpolation, filed 2026-07-31 — not re-filed)require-rmsync-try-catch,require-execfilesync-try-catchNew findings filed today
no-caught-error-interpolationmisses EventEmitter-style handlers — the rule recognizescatchclauses and inline.catch/.thenrejection params, but not an inline callback passed to.on('error', err => ...). Grounded in a live occurrence:actions/setup/js/mcp_server_core.cjs:1052(process.stdin.on("error", err => server.debug(\stdin error: ${err}`))`).no-setfailed-then-exit-zeroandno-core-error-then-process-exitcode—core.setFailed(msg); process.exitCode = 0;is invisible to both sibling rules: the first only matchesprocess.exit(0)/process.exit()calls (not anexitCodeassignment), and the second requirescore.error(notsetFailed) as its precondition and treats asetFailedcall as a scan-stopping marker. No live occurrence found, but precedented by a prior fix (eslint-factory: require-fs-sync-try-catch treats a catch-less try/finally as protective (soundness gap in isInsideTryBlock) #44219) for an equally rare but real soundness gap.Rules investigated with no gap found (details)
require-fetch-timeout(newest rule): signal/AbortSignal detection logic is sound; 3 live call sites are missing timeouts but those are code-fix backlog, not rule bugs.require-fetch-try-catch: shares already-hardened try/catch utilities; no gap found.require-fs-io-try-catch: shares already-hardened fs-sync method resolver; method-scope exclusions are by design.prefer-get-error-message-over-string: rule logic traced as correct, but several live call sites that should already trigger it appear un-flagged in the wild. This can't be confirmed without a live lint run (npm is firewalled in this sandbox) — worth a follow-up check with real tooling to rule out an actual bug.Next actions
require-rmsync-try-catchandrequire-execfilesync-try-catch(never reviewed) in the next run.prefer-get-error-message-over-stringagainst a real lint execution outside this sandbox.All reactions