Repository navigation
[eslint-refiner] ESLint Refiner — daily report (2026-10-02) #64923
Closed
Replies: 1 comment
|
This discussion has been marked as outdated by ESLint Refiner. A newer discussion is available at Discussion #65256. |
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:
ruleCountbumped 63 → 64 with a new rule,no-async-foreach-callback, shipped since yesterday's run. Gave it a full first-pass ground-truth review against the liveactions/setup/js/**/*.cjscorpus — found it clean. Zero new issues filed today. Open-issue snapshot unchanged from 2026-10-01, with the oldest item now at the historical first-expiry window.Key metrics
New rule reviewed:
no-async-foreach-callbackFlags
Array.prototype.forEach(asyncCallback)— the promise returned by anasynccallback is discarded, so work isn't sequenced and rejections go unhandled.Review detail
CallExpressionwith a non-computedMemberExpressioncallee namedforEach, whose first argument is anArrow/FunctionExpressionwith.async === true.items["forEach"](async x => {})) and indirect callback references (items.forEach(handler)) are intentionally out of scope.asyncbut still returns an unawaited promise (e.g.items.forEach(x => doAsyncWork(x).catch(...))) — same discarded-promise footgun, invisible to the async-keyword-only check..forEach(call sites inactions/setup/js/**/*.cjs. Zero containawaitor any async/promise-returning callback — every site is a synchronous idiom (core.info,set.add, array building). No live misfire exists for either the rule's happy path or the investigated hypothesis.eslint-factory/README.md:1190-1208already documents the rule accurately with correct flagged/safe-alternative examples. No doc debt.Outcome: clean first pass, no issue filed — matching the same clean-debut pattern seen for
no-single-char-string-replaceon 2026-09-30.Open issues watchlist
4 open eslint-factory issues
no-github-request-interpolated-routeno-math-minmax-array-spreadrequire-escaped-regexp-interpolationrequire-fetch-response-body-try-catchProcess note (for human/PR-capable follow-up)
completedwithin 9 hours on 09-30). By contrast, #61044 and #61543 were genuine upstream fixes closednot_plannedby bot housekeeping. This workflow has no close/comment safe-output — flagging for a human or PR-capable workflow to reconcile issue state with actual fixes.try-catch-rule-utils.tsVariableDeclaration-suggestion gap (affects ~14 fs-sync/child-process-family rules, twice-filed-and-expired as eslint-factory: shared try/catch suggestion builder silently skips VariableDeclaration call sites #57868/eslint-factory: shared try/catch suggestion builder still skips VariableDeclaration call sites -- recurrence of expired issue 57 #59891) still can't be addressed via this workflow's tools (nocreate_pull_requestsafe-output) — carrying forward for a PR-capable workflow rather than filing a 3rd issue.Next actions
.exec()code).All reactions