[eslint-refiner] ESLint Refiner Daily Report 2026-10-01 #64696
Closed
Replies: 1 comment
|
This discussion has been marked as outdated by ESLint Refiner. A newer discussion is available at Discussion #64923. |
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.
ESLint Refiner — Daily Report (2026-10-01)
Overview: Quiet, disciplined day. No new rule shipped (ruleCount steady at 63) and today's HEAD commit (#64639) is genuinely docs-only despite touching
actions/setup/jspaths in its diffstat. No issues filed — the rotation candidates carried from prior runs all came up clean on a second pass. The standout item is a process win: yesterday's filed issue was fixed and correctly closed within 9 hours.Key metrics
#64186,#63781,#63566,#63359)#63359, 6 days — approaching typical ~1wk first-expiry windowProcess win: clean fix + closure cycle
#64416(no-empty-catch-block, filed 2026-09-30, flagged that the rule's keyword allowlist missed "must not (consequence)" rationale comments) was fixed and closed ascompletedwithin 9 hours. Verified live ineslint-factory/src/rules/no-empty-catch-block.ts: a newconsequenceNotAllowedCommentRepattern plus an extended negation regex now recognize that phrasing, matching the filed issue's proposal almost exactly.This breaks a pattern seen twice before —
#61044and#61543were also genuine upstream fixes, but both got bot-closed asnot_plannedinstead ofcompleted(independently re-confirmed today via the GitHub API). No action is available from this workflow (noclose_issue/add_commentsafe-output), but it's a positive signal worth a human's attention.Rotation re-check detail (no new findings)
Three rules untouched since 2026-09-11 got a full second pass against the current corpus — all clean:
no-caught-error-interpolation: checked the+=assignment idiom (moot — theTemplateLiteralvisitor already catches the nested template regardless of the enclosing operator), ternary-wrapped bare-identifier interpolation (${cond ? err : ...}— zero live occurrences; every live ternary branch already uses.message/.stack/getErrorMessage()/String(), never a bare identifier), and two-hopconstalias chains — zero live occurrences.prefer-structured-clone: 2 live non-test call sites (pick_experiment.cjs:268,ledger_store.cjs:352/359) — both clone genuinely plain-JSON data (experiment run records, ledger records/metadata) with no function-valued properties anywhere in their files, so the autofix suggestion is correct with zero false-positive risk.require-lastindex-reset-before-global-exec-loop: audited all 9 live.exec()-in-while-loop regex sites across the corpus (copilot_harness.cjs,comment_memory_helpers.cjs,safe_outputs_config.cjs,patch_path_helpers.cjs,frontmatter_hash_pure.cjs×3,log_parser_format.cjs,resolve_mentions.cjs) — every regex is declared with a function-localconst pattern = /.../g, never at module scope, so each call gets a fresh regex and the rule correctly does not flag them.This rotation list is now demoted to lowest-priority re-check cadence until a new feature commit touches error-handling or regex/
.exec()code.Open issue tracker snapshot
#64186no-github-request-interpolated-route#63781no-math-minmax-array-spread#63566require-escaped-regexp-interpolation#63359require-fetch-response-body-try-catch#61542— watch for expiry next runNext actions
#63359for expiry next run — if it lapses unfixed, this would be its 2nd expiry (after#61542), crossing the established retire-after-2-expiries threshold.ruleCountbump or a verified (file-list-confirmed, not just diffstat) new-feature commit first; only fall back to rotation re-checks when both are flat, as today.try-catch-rule-utils.tsVariableDeclaration-suggestion gap (affects ~14 fs-sync/child-process rules, twice filed and expired as#57868/#59891) still can't be fixed from this workflow (nocreate_pull_requestsafe-output).All reactions