
Highlights
Faster config resolution
This release includes an updated version of @eslint/config-array with a faster implementation of config resolution. This is the step in which ESLint decides, for every file and directory it visits, whether the path is ignored and which objects in the config apply to it.
In our benchmark, which resolves the configs for 1,500 files against a typical flat config, this step is more than three times faster with POSIX paths and about 15% faster with Windows paths. The improvements, made primarily with AI assistance, include:
- A config object’s
filesandignorespatterns are analyzed only once instead of once per file. - Paths that cannot match a pattern’s literal parts, such as the
src/or.jsinsrc/**/*.js, are rejected before the full glob match runs. - For POSIX paths, a file’s location relative to the base path is now computed more efficiently when the path is already normalized.
Config resolution is only one part of an ESLint run, so the effect on total lint time depends on your project. No changes are needed on your side.
Rule improvements
The following rules have been updated to address edge cases or to make reported problem locations more intuitive:
accessor-pairsdefault-casefunc-namesno-invalid-thisno-prototype-builtinsno-shadowno-unneeded-ternaryno-useless-renameprefer-arrow-callback
Features
ec52157feat: check proto and assignment targets infunc-names(#21521) (Lê Văn Xuân Hoàn)34a8b1bfeat: recognize string and computed keys inaccessor-pairsdescriptors (#21519) (Lê Văn Xuân Hoàn)663c825feat: handle TS type assertions inno-invalid-this(#21464) (Valentin)4941015feat: check individual specifier importKind inno-shadow(#21518) (Lê Văn Xuân Hoàn)17f17cdfeat: update error location to head fordefault-case(#21469) (Tanuj Kanti)
Bug Fixes
23ac66cfix: update dependency @eslint/config-array to ^0.23.6 (#21550) (renovate[bot])df71e34fix: skipno-prototype-builtinssuggestion when object issuper(#21535) (KooYS)899065efix: preserve inlinetypemodifier inno-useless-renameautofix (#21527) (sethamus)af4c3a9fix: preserve TypeScript type parameters inprefer-arrow-callback(#21507) (Lê Văn Xuân Hoàn)b11bcb3fix: preserve necessary parens inno-unneeded-ternaryautofix (#21495) (Lê Văn Xuân Hoàn)7c7292efix: requireminimatch@11.0.1or higher to avoid CVE-2026-118764 (#21492) (nikolawork)
Documentation
16eb1d9docs: remove Contributor Pool reference (#21539) (Nicholas C. Zakas)e368730docs: discourage non-serializable values in rule options (#21487) (Vitalii Maslianok)0146008docs: revamp code path analysis docs (#21423) (xbinaryx)aeb2267docs: revise AI acknowledgment options in templates (#21489) (lumir)e47a477docs: Update README (GitHub Actions Bot)11c66badocs: fix typo in custom rules documentation (#21472) (Pixel)
Chores
480afadchore: update github/codeql-action action to v4.39.3 (#21533) (renovate[bot])fc3a99bchore: update ecosystem plugins (#21511) (ESLint Bot)8fe3ab9chore: replacegotwith Node.js nativefetch(#21505) (lumir)bdd4b1dci: bump pnpm/action-setup from 6.1.0 to 6.1.1 (#21499) (dependabot[bot])36db635ci: bump github/codeql-action from 4.39.1 to 4.39.2 (#21500) (dependabot[bot])19211b3chore: replacefs-teardownwith Node.js native APIs (#21488) (lumir)bbede5echore: enforcerequire-meta-docs-recommended(#21496) (lumir)896b8adchore: update ecosystem plugins (#21478) (ESLint Bot)35801a2ci: re-enableeslint-plugin-unicornecosystem test (#21470) (Francesco Trotta)

