[eslint-refiner] ESLint Refiner daily report - 2026-09-08: 2 issues filed (fs resolver reassignment gap, fs-close-sync alias misattribution) #59379
Closed
Replies: 1 comment
|
This discussion was automatically closed because it expired on 2026-09-09T05:39:21.748Z.
|
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
Reviewed the
eslint-factory/**custom rule set (61 rules registered inindex.ts, up from 12 recorded in stale memory) for false positives, weak diagnostics, and missing edge cases. Filed 2 new issues; found 0 duplicates among what was checked.Key findings
isIdentifierBoundToFsModule/resolveFsSyncMethodFromIdentifierintry-catch-rule-utils.tslack a reassignment guard that the siblingcommand-initializer-utils.tsresolver already has — affects all 7createFsSyncMethodResolverconsumer rules.require-fs-close-sync.ts'scollectIdentifiers/collectCloseTargetVariablescollects non-computedMemberExpression.propertyand object-literalProperty.keynames as if they were variable references, which can misattribute which file descriptor acloseSync(handle.fd)call actually closes.actions/setup/js/**/*.cjs), matching the precedent set by the already-accepted eslint-factory: require-fs-sync-try-catch treats a catch-less try/finally as protective (soundness gap in isInsideTryBlock) #44219/eslint-factory: isChildProcessObjectBinding (try-catch-rule-utils.ts) doesn't check for reassignment, unlike sibling resolvers #57624 pattern of filing latent soundness gaps in shared resolver utilities.Rules reviewed this pass, no defect found
prefer-get-error-message-over-string.ts—isDefinitionAvailableAtNode,hasResolvableLocalBinding,resolvesToCaughtErrorVariableall correctly scope-walk; judged sound.require-fetch-timeout.ts— locally-shadowedfetch(e.g. vianode-fetch) bypasses the signal-option check, but no live import of a shadowingfetchexists inactions/setup/js, and the shadow-guard pattern is consistent with other rules' established design. Deprioritized, not filed.command-initializer-utils.ts— confirmed as the reference-quality implementation (resolveInitializer's reassignment guard) cited in issue rejig docs #1 above; no new bug.Issues filed
isIdentifierBoundToFsModuleintry-catch-rule-utils.tsdoes not check for reassignment — companion to eslint-factory: isChildProcessObjectBinding (try-catch-rule-utils.ts) doesn't check for reassignment, unlike sibling resolvers #57624, same defect class applied to the fs resolver instead of the child_process resolver. Scope: 7 consumer rules (require-fs-sync-try-catch, require-fs-io-try-catch, require-fs-close-sync, require-mkdirsync-try-catch, require-mkdtempsync-try-catch, require-realpathsync-try-catch, require-rmsync-try-catch).require-fs-close-sync:collectCloseTargetVariablestreats property/key names as variable references, can misattribute which descriptor acloseSync(handle.fd)call closes. Existing test suite's only alias test uses shorthand property syntax (key===value name), which masks the bug.Next actions
state.json) rebuilt this run to close the 2-month staleness gap; going forward, GH issue search is treated as authoritative for dedup, not the memory snapshot.require-realpathsync-try-catch.ts(same resolver family, revisit once the fs-resolver reassignment fix ships),require-fetch-timeout.tsshadow-guard (deprioritized, not clearly a bug).Warning
Firewall blocked 1 domain
The following domain was blocked by the firewall during workflow execution:
api.anthropic.comTo allow these domains, add them to the
network.allowedlist in your workflow frontmatter:See Network Configuration for more information.
All reactions