[eslint-refiner] ESLint Refiner — Daily Report 2026-07-01 #42683
Closed
Replies: 1 comment
-
|
This discussion has been marked as outdated by ESLint Refiner. A newer discussion is available at Discussion #42916. |
Beta Was this translation helpful? Give feedback.
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
Today's focus was
no-core-setoutput-non-string— the newest rule ineslint-factoryand the only one no prior run had reviewed. Filed 3 concrete, non-duplicate refinement issues, and re-verified that yesterday's recorded findings are now resolved.Key metrics
no-core-setoutput-non-stringcore.setOutputcalls inactions/setup/jsRefinement tasks filed
core.setOutput("count", 42)is flagged but-1/+5are not (they parse asUnaryExpression, notLiteral). The test suite itself codifiescore.setOutput("count", -1)as valid (test:29) — a self-documented inconsistency, since both coerce identically.null/undefined— the only suggestion wraps withString(...), producing the literal strings"null"/"undefined"(truthy, non-empty in Actions expressions). This contradicts the rule's own message, which advises''. Proposed adding an empty-string suggestion..lengthrecognized among numeric members — live false negative atclose_entity_helpers.cjs:572,core.setOutput(numberOutputName, closedEntity.number)ships an unwrapped numeric GitHub entity number. Proposed a conservative allowlist extension to.size/.number(keeping.idexcluded for FP safety).Yesterday's findings — all resolved by active refinement
The 2026-06-30 findings were recorded in repo-memory but never actually filed as issues. Re-verified all three against current source — all fixed, so correctly not re-filed:
Verification detail
require-parseInt-radix—parseInt(x, 0)/undefined/NaNnow rejected viaisValidSecondArg.require-json-parse-try-catch— autofix now emitsthrow new Error("Failed to parse JSON: "+..., { cause: err })instead of a useless rethrow.no-unsafe-catch-error-property—typeof === 'object'now requires a companion non-null guard;status/cause/nameadded to the unsafe set.The codebase refines these rules quickly between daily runs, so each run now re-verifies prior findings before filing.
Next actions
no-unsafe-promise-catch-error-property— the only rule never analyzed in depth.actions/setup/js.Corpus note:
core.setOutputusage is well-disciplined (string literals for booleans,String()/.toString()for counts,JSON.stringifyfor objects). No live boolean-expression or array/object-literal sites exist, so those coverage gaps were deprioritized in favor of the live/test-grounded findings above.Beta Was this translation helpful? Give feedback.
All reactions