[eslint-refiner] ESLint Refiner daily report — 2026-09-17 #61544
Closed
Replies: 1 comment
|
This discussion was automatically closed because it expired on 2026-09-18T05:39:25.944Z.
|
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-09-17)
Reviewed the remaining never-grounded members of the
fetch/child_processrule families and filed 2 new, live-grounded issues. No false leads were filed — several hypotheses were investigated and discarded for lack of live evidence (see detail below).Key metrics
require-fetch-timeout,require-fetch-response-body-try-catch,require-spawnsync-error-check)eslint-factory-labeled issues (snapshot, pre-this-run): 8Issues filed
require-fetch-response-body-try-catch: chain-unwrap gap hides.catch()/.then()/.finally()chained onto the body-read call. The rule'sAwaitExpressionvisitor only inspects the outermost call, soawait res.text().catch(handler)resolvesmethodNametocatchinstead oftextand the call becomes invisible to the rule — unlike its siblingrequire-fetch-try-catch, which already walks back through such chains. Live atvalidate_secrets.cjs:70and:91(makeRequest/makePostRequest), neither inside a try block; the.catchhandler there only rewritesAbortErrorand passes every other rejection through unchanged, so the rule's promised error-wrapping silently never happens on these paths. No test coverage exists for a chained.catchon the body-read call.require-spawnsync-error-check:CHILD_PROCESS_OBJECTSname allowlist misses the commoncprequire alias.isSpawnSyncCallonly recognizes the literal identifier nameschildProcess/child_process, instead of reusing the shared, scope-resolvedisChildProcessObjectBindinghelper (try-catch-rule-utils.ts) that 4 sibling rules already use. Live atoperational_value_grader.cjs:68andtrace_graders.cjs:613, bothconst cp = require("child_process")— currently correctly.error-guarded, but invisible to the rule, so a future regression in either file (or any newcp.spawnSynccall anywhere) would go undetected.Investigated, not filed (no live grounding found)
require-fetch-timeout: fully reviewed — every livefetch()call in the corpus passes an inline object-literal options argument with an explicitsignal: AbortSignal.timeout(...); the rule's documented conservatism around identifier/spread options args never actually masks a real missing-timeout case here.require-fetch-try-catch/ sharedisInsideTryBlock+isDeferredCallback: a structural theory that a nestedFunctionDeclarationmight not be treated as a try-boundary the same wayrequire-fetch-try-catch's own hand-rolled check does was raised but not grounded — checkedforEach/map(async ...)fire-and-forget shapes around fetch/body-read call sites and found zero live matches (existing.map(async ...)sites are properlyPromise.all/allSettled-awaited). Left as an open lead, not a filed issue.require-fetch-response-body-try-catch's 1-alias-hop limit inresolvesToBareAwaitFetchwas noted but not exhaustively searched for a live 2-hop alias chain.Next actions
try-catch-rule-utils.ts) for the FunctionDeclaration-in-try angle raised but unproven this run.no-json-stringify-error,require-mkdirsync-try-catch,require-mkdtempsync-try-catch,require-realpathsync-try-catch,require-rmsync-try-catch,require-spawn-error-listener,require-execsync-try-catch,require-execfilesync-try-catch,require-fs-io-try-catch.59647(no-duplicate-constant-values) — it dropped out of the open-issues snapshot since last run; unclear if fixed or auto-expired.References:
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