Populars: Dades actualitzades el 27 d’octubre del 2026

Categories

Internet1.356
Comunicació321
Àudio i vídeo898
Gràfics i disseny539
Ofimàtica i productivitat1.124
Eines per a desenvolupadors3.134
Eines d’IA529
Seguretat i privadesa385
Eines del sistema3.114
Jocs523
Educació i ciència239
Xarxa i TI284

oxlint: baixar versions anteriors

oxlint is a blazing-fast JavaScript and TypeScript linter that is 50–100× faster than ESLint. It is designed to catch erroneous or useless code without requiring any configurations by default.

Aquí hi ha 58 versions d’oxlint, des de 12 d’agost del 2025 fins a l’actual, 1.84.0. Cadascuna enllaça amb els instal·ladors del mateix desenvolupador.

2025: 15 15 25 2026: 43 43 26

58 versions en 1 any · unes 52 per any

VersióDataMidaFitxers
1.84.0Darrera versió 21 de setembre del 2026 — 64 bits ZIPARM64 ZIP32 bits ZIP
Notes de la versió
🚀 Features
- 809090c oxlint,oxfmt: Find all vite.config.* variants (#26755) (leaysgur)
- a047b67 linter: Report JavaScript plugin rule timings (#26415) (Alexander Lichter)
- 2300898 linter/unicorn/no-unreadable-iife: Implement suggestion (#26658) (Mikhail Baev)

🐛 Bug Fixes
- 12cb547 linter/eslint/no-unused-vars: Report private namespace bindings (#26842) (camc314)
- 927bfa4 oxlint/lsp: Align nested config handling with configPath semantics (#26762) (leaysgur)
- e096dfd linter/esliny/no-unused-vars: Handle comments when removing imports (#26781) (camc314)
- 9d48bae linter/esliny/no-unused-vars: Preserve rest bindings when removing array elements (#26778) (camc314)
- 62a2bb2 linter/eslint/preserve-caught-error: Prevent conflicting fixes with prefer-optional-catch-binding (#26726) (camc314)
- 0d565bc linter/unicorn/consistent-function-scoping: Detect ancestor-only function captures (#26625) (camc314)
- 3c98cde linter/vitest/prefer-to-be-truthy: Suggest assertion rewrites (#26761) (camc314)
- 7811f0a parser: Preserve reparsed await tokens (#26619) (camc314)
- e15f103 linter/react: Add a few more missing properties to no-unknown-property (#26572) (Connor Shea)

⚡ Performance
- c6a00e6 linter/eslint/no-restricted-exports: Skip inactive configurations (#26772) (camc314)
- 0026008 linter/eslint/capitalized-comments: Avoid unnecessary case-conversion allocations (#26754) (camc314)
- 34482c9 linter/oxc/no-map-spread: Avoid collecting spread spans twice (#26718) (camc314)
- 2ce913e linter/eslint/no-inline-comments: Skip unnecessary JSX node scans (#26714) (camc314)
- b946951 linter/eslint/no-control-regex: Avoid temporary diagnostic allocations (#26713) (camc314)
- 8903402 linter/promise/no-multiple-resolved: Avoid collecting executor parameters (#26691) (camc314)
- 3aa4b25 linter/jsx-a11y/anchor-ambiguous-text: Avoid temporary word allocations (#26692) (camc314)
- 2e07b32 linter/react/jsx-handler-names: Avoid temporary prefix collections (#26688) (camc314)
- 2d3b7a6 linter/typescript/consistent-generic-constructors: Avoid intermediate comment strings (#26687) (camc314)
- 97beefb linter/typescript/triple-slash-reference: Avoid attribute parsing allocations (#26686) (camc314)
- 6b9452d linter/unicorn/prefer-export-from: Avoid temporary attribute vector (#26685) (camc314)
- 8759780 linter/eslint/no-useless-assignment: Short-circuit identical scopes (#26684) (camc314)

📚 Documentation
- 68baaa4 linter/typescript/await-thenable: Revert add missing lang for markdown doc comment (#26757) (camc314)
- aa7de00 lsp: Document that the run option only applies to push mode clients (#26670) (im10furry)
1.83.0 14 de setembre del 2026 — 64 bits ZIPARM64 ZIP32 bits ZIP
Notes de la versió
Features
- afe950d linter/react: Update lint rules to accomodate changes in React 19.3 (#26571) (Connor Shea)

Bug Fixes
- fb87ed7 linter/unicorn/prefer-array-flat-map: Report .filter().flatMap() chains (#26626) (camc314)
- 336b654 linter/unicorn/prefer-at: Report single-character substring calls (#26623) (camc314)
- a5bba6d linter/eslint/no-unused-vars: Respect rest params after-used option (#26579) (Bartok)
- c1470a2 linter/eslint/no-unused-vars: Preserve ambient implicit exports (#26582) (Dex Hunter)
- 9a469d2 linter/unicorn/prefer-global-this: Preserve window event method references (#26611) (Dex Hunter)
- aaff758 linter/unicorn/prefer-default-parameters: Report violation for ??= and ||= (#26607) (Bartok)
- 2bed25a linter/unicorn/prefer-array-flat: Skip plain concat normalization (#26604) (im10furry)
- 72bc7f2 oxlint: Replace backlashes path for "no js runtime" diagnostic (#26599) (Sysix)
- 1aa5ec1 linter/typescript/prefer-for-of: Handle computed collections (#26584) (camc314)
- 1e90019 linter/typescript: Mark no-unnecessary-type-parameters and prefer-find suggestions as implemented (#26586) (Mikhail Baev)
- 4231536 linter: Compare label text in runtime optimization assertion (#26526) (camc314)
- 36d5534 linter: Include file path in diagnostic assertion (#26525) (camc314)
- 31508b1 parser: Reject return types on constructor overloads (#26523) (camc314)

Performance
- 1d681b0 linter/react/jsx-pascal-case: Avoid temporary name segment vector (#26531) (camc314)
- 2ad7d49 linter/promise/catch-or-return: Avoid temporary formatting vectors (#26505) (camc314)
- 203235b linter/jsx-a11y/no-static-element-interactions: Avoid role vector (#26504) (camc314)
- 2e95167 linter/jsx-a11y/anchor-is-valid: Avoid temporary attribute vector (#26501) (camc314)
- deafdba linter/react/exhaustive-deps: Avoid temporary dependency vector (#26502) (camc314)
- 4f1627f linter/oxc/branches-sharing-code: Compute deletion spans lazily (#26500) (camc314)
- c068fd2 linter/react/jsx-curly-brace-presence: Avoid newline position allocation (#26499) (camc314)
- ed4357c linter/eslint/no-restricted-properties: Skip empty configurations (#26497) (camc314)
- 92e41b7 linter/oxc/no-barrel-file: Iterate module requests directly (#26498) (camc314)
- 5255ee3 linter/unicorn/prefer-single-call: Avoid temporary argument vector (#26494) (camc314)
- 96ef365 linter/unicorn/prefer-includes: Reduce suggestion allocations (#26492) (camc314)
- a71fd7f linter/unicorn/no-new-buffer: Avoid temporary argument vector (#26491) (camc314)
- 11085e7 linter/jsdoc/require-yields: Short-circuit JSDoc checks (#26488) (camc314)
- 9b1aff8 linter/unicorn/no-useless-undefined: Skip calls without trailing undefined (#26481) (camc314)
- 1e5d5d7 linter/eslint/no-unused-vars: Skip absent global declaration checks (#26457) (camc314)
- 403f899 linter/eslint/no-undef: Check globals once per unresolved name (#26456) (camc314)
- 118adb0 linter/eslint/no-restricted-imports: Avoid redundant import scans (#26455) (camc314)
- ab848f2 linter/eslint/no-useless-assignment: Skip tracking exported symbols (#26449) (camc314)
- 1b6e409 linter/unicorn/prefer-object-from-entries: Avoid allocating configured paths (#26448) (camc314)
- 2206875 linter/eslint/new-cap: Avoid unnecessary callee name allocations (#26447) (camc314)

Documentation
- b927e0a linter/typescript/await-thenable: Add missing lang for markdown doc comment (#26438) (Ari Perkkiö)
1.82.0 7 de setembre del 2026 — 64 bits ZIPARM64 ZIP32 bits ZIP
Notes de la versió
💥 BREAKING CHANGES
- 66744f0 parser: [BREAKING] Rename panicked to fatal_error in ParserReturn (#26382) (overlookmotel)

🚀 Features
- 6a0e19c linter/eslint/no-unmodified-loop-condition: Support checkConditionalExpressions option (#26249) (camc314)

🐛 Bug Fixes
- aa38ddf linter/unicorn/numeric-separators-style: Correct schema defaults (#26393) (camc314)
- 562dd14 jsx-a11y/anchor-has-content: Allow anchors passed as custom component props (#26360) (Mikhail Baev)
- 253cdb2 linter/eslint/id-length: Exempt TS interface/type-literal members with never (#26310) (Pearce Ropion)
- 8c7ea76 ast_visit: Account for trimmed source offsets (#26223) (Cameron)
- 5f9cffc linter/typescript/no-explicit-any: Fix rest parameter to unknown[] (#26279) (camc314)
- 4de9fa3 linter/react/jsx-no-literals: Check nested JSX expression literals (#26253) (camc314)
- 07851b9 parser: Fix debug assert failure when lexer error with tokens enabled (#26229) (overlookmotel)
- 9cee146 oxlint/lsp: Don't try to parse fix message, always fallback (#26204) (Sysix)
- a662c40 linter/eslint/no-useless-assignment: Handle destructuring assignments (#25925) (camc314)
- 304bd9a linter/eslint/no-array-constructor: Handle ASI hazards in fixer (#26166) (Hamody We)
- b41bb35 linter: Qualify rules in rules output (#26250) (camc314)
- 895c685 linter/typescript/no-extraneous-class: Avoid deleting class expressions (#26231) (camc314)
- 4ba33c8 linter/eslint/no-unused-vars: Handle stored arrow references (#26225) (camc314)

🛡️ Security
- 9a612d5 deps: Update npm packages (#26178) (renovate[bot])
1.81.0 1 de setembre del 2026 — 64 bits ZIPARM64 ZIP32 bits ZIP
Notes de la versió
🚀 Features
- 60b945d linter/nextjs/no-typos: Implement suggestion (#26091) (Mikhail Baev)

🐛 Bug Fixes
- 33ac4b0 linter/lsp: Prevent tsgolint from holding onto processes (#25570) (Adrian Schaedle)
- baf4b1e linter/import/no-empty-named-blocks: Make empty value import removal a suggestion (#26155) (camc314)
- 77cfaec linter/eslint/object-shorthand: Preserve __proto__ semantics (#26154) (camc314)
- fa3c082 linter/unicorn/prefer-set-size: Ignore shadowed Set constructors (#26153) (camc314)
- e412cf2 linter: Clamp invalid JS plugin locations (#26144) (camc314)
- d86c113 linter: Normalize reversed JS plugin locations (#26138) (camc314)
- 73c09b2 linter/eslint/no-use-before-define: Run on JS, JSX files (#26114) (camc314)
- 03ef0f2 linter/unicorn/no-useless-spread: Treat typed arrays as a distinct value hint (#26067) (Aadharsh Pannirselvam)
- bd15905 linter/react/no-unstable-nested-components: Check nested component object property names (#26101) (camc314)
- 3910e2b linter/eslint/no-unassigned-vars: Skip Svelte and Vue files (#26042) (Hamody We)
- 047f7ca linter/plugins: Fix interaction between JS plugins and Vue rules (#26080) (overlookmotel)
- 8531b9b linter/plugins: Alter method for obtaining mutable Program when sending AST to JS plugins (#26077) (overlookmotel)
- dc464ff linter/unicorn/prefer-math-min-max: Avoid unsafe autofix (#26060) (camc314)

📚 Documentation
- 464ddd1 linter: Support a shared short description for jest/vitest rules (#26186) (connorshea)
- 9db5ad3 linter: Add short description to vue/no-dupe-keys (#26183) (connorshea)
- db66f58 linter: Correct export/import mismatch in bar and foo example (#25927) (billychannnnnn)
- d5be037 linter/typescript/switch-exhaustiveness-check: Clarify default case comment pattern (#26100) (camc314)
1.80.0 24 d’agost del 2026 — 64 bits ZIPARM64 ZIP32 bits ZIP
Notes de la versió
🚀 Features
- 70c3e35 linter/typescript/no-confusing-non-null-assertion: Implement suggestion (#26012) (Mikhail Baev)

🐛 Bug Fixes
- 17ae11c linter/oxc/double-comparisons: Handle grouped logical expressions (#26044) (camc314)
- 8a353a7 linter/eslint/no-control-regex: Refine help message text (#25996) (Rahul Mishra)
- 8a9bdbd estree: Include decorators in FormalParameterRest spans (#26021) (camc314)
- 8d94cd1 linter/eslint/no-useless-rename: Preserve type modifiers (#26020) (Cameron)
- 2cde1f6 rust: Address nightly deprecations (#25998) (Boshen)
- 51d36d7 linter/vue: Resolve vue imports via shared import helpers (#25903) (Connor Shea)
- 83a68d2 linter/react/no-react-children: Resolve react imports by symbol (#25901) (Connor Shea)
- 124e196 linter: Resolve globals by reference, not by name (#25905) (Connor Shea)
- a701bcc linter: Remove invalid React compiler doc links (#25900) (Boshen)

📚 Documentation
- 9b7e153 linter: Set version to 1.79.0 for rules shipped in 1.79.0 (#25902) (connorshea)
1.79.0 18 d’agost del 2026 — 64 bits ZIPARM64 ZIP32 bits ZIP
Notes de la versió
💥 BREAKING CHANGES
- 8c4552d linter: [BREAKING] Split react/react-compiler into per-category rules (#25500) (Boshen)

🚀 Features
- 9b7394e linter/typescript/no-empty-object-type: Implement suggestion (#25833) (Mikhail Baev)

🐛 Bug Fixes
- 345f981 react_compiler: Skip node_modules by default (#25859) (Boshen)
- 2f40afa linter/unicorn/no-array-callback-reference: Ignore effect library imports (#25857) (Michaël Bitard)
- 7b565a0 linter: Align React Compiler rule categories (#25840) (Boshen)
- 228e8e0 linter: Resolve inactive React compiler rules (#25830) (Boshen)
- f8e4884 linter/eslint/no-useless-constructor: Allow parameter properties (#25811) (camc314)
- e4b6993 linter: Report exhaustive effect dependencies (#25829) (Boshen)
- 742e25f linter/eslint/no-return-assign: Anchor diagnostic on return stmt (#25803) (camc314)
- b831ca8 react-compiler: Improve derived state diagnostic (#25804) (Boshen)
- 5908c87 linter/jest/prefer-mock-return-shorthand: Preserve implementations using this (#25802) (camc314)
- f6b2265 linter/eslint/no-redeclare: Run in ES modules, skipping only the globals check (#25691) (Hamody We)
- ca9f553 linter/unicorn/prefer-default-parameters: Mark fixer as a suggestion (#25801) (camc314)
- aa49d86 linter: Allow spread rule options in config types (#25675) (ch3rry)
- d5483f8 linter/typescript/no-useless-empty-export: Skip TS declaration files (#25789) (Evyatar Daud)
- 57f2199 linter/typescript/no-useless-empty-export: Report after imports (#25786) (camc314)
- 633bc19 linter/typescript/no-unnecessary-type-conversion: Mark fixer as suggestion (#25787) (camc314)
- dea3339 linter/typescript/explicit-module-boundary-types: Anchor diagnostics on arrows (#25779) (camc314)
- 5cd6f02 linter/eslint/array-callback-return: Anchor diagnostic on callback (#25780) (camc314)
- ef8cebf linter/eslint/preserve-caught-error: Handle AggregateError options (#25775) (camc314)
- c108d5c linter: Improve React Compiler diagnostics (#25742) (Boshen)
- c9ec55e react-compiler: Improve diagnostic spans (#25731) (Boshen)
- 1cbbcb7 linter/unicorn/prefer-string-replace-all: Apply fixes in one pass (#25709) (Mikhail Baev)
- dec0a86 react-compiler: Standardize diagnostics (#25702) (Boshen)
- 5fd77f7 linter/react/display-name: Report curried HOC inner component (#25662) (camc314)
- 4dbb80e linter/import/no-named-as-default: Report local export conflicts (#25658) (camc314)
- e8a7214 linter/react/rules-of-hooks: Report hooks inside try blocks (#25670) (camc314)
- 36f8451 linter/eslint/no-eval: Align indirect default with ESLint (#25656) (camc314)
- d901d24 linter/react/exhaustive-deps: Handle destructured object dependencies (#25669) (camc314)
- beb724d linter/eslint/no-unused-vars: Report bare underscore parameters (#25663) (camc314)
- fa36f26 linter/react/no-this-in-sfc: Detect this in nested arrow callbacks (#25653) (camc314)
- 44d1be3 linter/typescript/no-var-requires: Run rule on JavaScript (#25664) (camc314)
- 4004c10 linter/eslint/no-irregular-whitespace: Check comments by default (#25660) (camc314)
- 625401d linter/import/no-named-default: Flag type-only named defaults (#25661) (camc314)
- 8eacb2d linter/typescript/no-non-null-asserted-optional-chain: Detect assertions after continued optional chains (#25659) (camc314)
- d55b76c linter/react/no-direct-mutation-state: Detect computed state mutations (#25654) (camc314)
- f92c651 linter/unicorn/no-abusive-eslint-disable: Use directive prefix in diagnostic (#25657) (camc314)
- ee44996 linter/eslint/max-classes-per-file: Anchor diagnostic at program start (#25652) (camc314)
- 403ec40 linter/eslint/no-multi-assign: Handle parenthesized declarator initializers (#25651) (camc314)
- 6c9ba37 linter/jest/expect-expect: Detect assertions in nested function declarations (#25650) (camc314)
- 285820e linter/no-large-snapshots: Precompile and document allowed snapshot matchers (#25611) (Mikhail Baev)
- 1be1e20 linter/eslint/prefer-promise-reject-errors: Report on spread arguments (#25648) (Mikhail Baev)
- 
1.78.0 10 d’agost del 2026 — 64 bits ZIPARM64 ZIP32 bits ZIP
Notes de la versió
BREAKING CHANGES
- a33788e ast: [BREAKING] Group class heritage into ClassHeritage (#25360) (camc314)
- 5c5cdcd ast: [BREAKING] Narrow TSInterfaceHeritage::expression to TSTypeName (#24360) (camc314)
- 6be314f ast: [BREAKING] Remove duplicated VariableDeclarator::kind (#25319) (camc314)
- 44fd320 ast: [BREAKING] Split TS external modules & Namespace Declarations (#25284) (camc314)

Features
- ccb8fe8 linter/jsdoc: Implement no-blank-blocks rule (#25207) (Mikhail Baev)
- d4a897c linter/eslint: Implement one-var rule (#24470) (Cole Ellison)
- 5ab9340 linter/jsx-a11y/anchor-has-content: Add options to match eslint (#24571) (Cole Ellison)

Bug Fixes
- b746e00 linter/eslint/no-implicit-coercion: Preserve template coercion whitespace (#25470) (camc314)
- a92c541 linter: Preserve source text for JS plugin ignore fixes (#25280) (Norcleeh)
- 675c840 linter/eslint/prefer-promise-reject-errors: Handle parenthesized calls (#25378) (camc314)
- 1703739 linter/unicorn/new-for-builtins: Ignore optional chains (#25411) (tanakalucky)
- 95ece63 linter/unicorn/prefer-code-point: Downgrade the auto-fix to dangerous (#25412) (leemr)
- c451a0e linter/vitest: Validate consistent-test-filename regex patterns (#25408) (Mikhail Baev)
- 937825c react_compiler: Disable exhaustive memo validation by default (#25417) (Boshen)
- f0f7dae linter/eslint/no-unused-vars: Report invalid regex options (#25380) (Cameron)
- 44e73fd linter/unicorn/prefer-array-flat: Fix concat.apply suggestions (#25373) (Cameron)
- 6846a9a linter/react/rules-of-hooks: Detect constructor callbacks (#25377) (camc314)
- b247a9d linter/unicorn/new-for-builtins: Support Float16Array (#25382) (tanakalucky)
- 19109cd linter/unicorn/error-message: Support SuppressedError messages (#25375) (camc314)
- 9c13f5e linter: Assert token lookup invariants (#25368) (camc314)
- bc35f83 linter/eslint/no-unused-vars: Bound catch parameter lookup (#25367) (camc314)
- c159fb9 linter/unicorn/switch-case-braces: Bound token lookup (#25363) (camc314)
- 03b2eb2 linter/unicorn/no-static-only-class: Bound token lookup (#25361) (camc314)
- 0afc59e linter/unicorn/empty-brace-spaces: Bound token lookup (#25353) (camc314)
- 2963d98 linter/eslint/no-unreachable-loop: Do not report loops whose body has a finally block (#25335) (Todor Andonov)
- 589e5fb linter/eslint/no-param-reassign: Validate ignorePropertyModificationsForRegex property (#25346) (Mikhail Baev)
- aae5d8b linter/eslint/no-throw-literal: False positive on variable declared without initializer (#25275) (cjnoname)
- 6b1c479 oxlint: Normalize customized rule names (#25316) (camc314)
- d494eb5 linter/unicorn/consistent-existence-index-check: Bound token lookup (#25325) (camc314)
- 4266037 linter/typescript/prefer-namespace-keyword: Bound token lookup (#25322) (camc314)
- 4745b4e linter/typescript/no-namespace: Bound token lookup (#25321) (camc314)
- 648a481 linter/eslint/one-var: Avoid joining exported declarations (#25314) (camc314)
- 9573937 linter/typescript: Validate ban-ts-comment description_format (#25320) (Mikhail Baev)
- ebf7d18 linter/typescript/consistent-type-definitions: Bound token lookup (#25281) (camc314)
- 1501ccf linter/typescript/consistent-generic-constructors: Bound token lookup (#25258) (camc314)

Performance
- 8f784f3 linter: Reduce rule config dispatch size (#25461) (Boshen)
- 2de4ec2 linter: Reduce visitor code size (#25441) (Boshen)
- 6fb7f47 linter/unicorn/prefer-export-from: Narrow ExportFromDeclaration lookup (#25381) (camc314)
- e3f6263 linter/unicorn/prefer-default-parameters: Avoid reference allocation (#25379) (camc314)
- d863473 linter/vue/max-props: Narrow AST dispatch (#25372) (camc314)
- 273d867 linter: Avoid diagnostic sorting after applying fixes (#25079) (Sysix)
- 4ec9189 oxlint/lsp: Avoid second lock for getting/removing unused directives (#25350) (Sysix)
- 6c0d01b oxlint/lsp: Preallocate fix-content vec (#25351) (Sysix)
- 3a94055 linter: Avoid per-call heap allocations in jest and unicorn helpers (#25210) (Connor She
1.77.0 3 d’agost del 2026 — 64 bits ZIPARM64 ZIP32 bits ZIP
Notes de la versió
BREAKING CHANGES
- 4120da0 semantic: [BREAKING] Return borrowed JSDoc so the parse cache works (#25186) (Connor Shea)
- 067da8c ast: [BREAKING] Store single parameter in TSIndexSignature::parameter (#25154) (camc314)
- 1bdedd1 ast: [BREAKING] Introduce ExportDeclaration, ExportFromDeclaration (#25095) (camc314)
- c917f20 ast: [BREAKING] Introduce ArrowFunctionBody enum (#24987) (camc314)

Features
- 0b9f83c linter/oxc/bad-char-at-comparison: Expand coverage (#25001) (Mikhail Baev)
- 1fb3d70 oxlint: Show file:line:col in github format annotation messages (#25020) (Faris Tristan Fabian)

Bug Fixes
- a64b65d linter/unicorn/new-for-builtins: Detect parenthesized member expression object (#25249) (tanakalucky)
- 9d4592c linter: Reject duplicate JS plugin names (#25243) (camc314)
- 3213e7a linter: Ignore unsigned shifts in prefer-math-trunc (#25240) (camc314)
- 06579da linter/eslint/prefer-promise-reject-errors: Handle ambient error variables (#25238) (camc314)
- 6a7cd90 linter/oxc/no-async-await: Bound token lookup (#25222) (camc314)
- d8e390a linter/oxc/bad-bitwise-operator: Bound token lookups (#25220) (camc314)
- 351a777 linter/import/no-duplicates: Bound token lookup (#25219) (camc314)
- 4f70fb6 linter/import/consistent-type-specifier-style: Bound token lookup (#25218) (camc314)
- b89113c linter/eslint/yoda: Bound token lookup (#25202) (camc314)
- 7c7cda7 linter/oxc/no-map-spread: Avoid recursive declaration traversal (#25200) (camc314)
- 99efb30 linter/eslint/prefer-promise-reject-errors: Move category to pedantic (#25201) (camc314)
- 8edad2a linter/eslint/require-await: Bound token lookup (#25199) (camc314)
- 5aaec85 linter/eslint/prefer-template: Bound token lookup (#25197) (camc314)
- 0ea1af4 linter/unicorn/new-for-builtins: Align Date() diagnostic message with upstream (#25166) (tanakalucky)
- f6c8575 linter/eslint/prefer-object-spread: Bound token lookup (#25195) (camc314)
- 20f68e7 oxlint,oxfmt: Respect .gitignore for walk targets and explicit paths (#25133) (leaysgur)
- b83993b linter/eslint/prefer-const: Bound token lookup (#25194) (camc314)
- aeabf63 linter/eslint/object-shorthand: Bound token lookups (#25193) (camc314)
- 48f302c linter/eslint/no-var: Bound token lookup (#25192) (camc314)
- 1f595de linter/eslint/no-unused-vars: Bound token lookups (#25191) (camc314)
- e52f4c4 linter/eslint/no-unexpected-multiline: Use bounded token lookup (#25190) (camc314)
- ca80338 linter/eslint/eqeqeq: Use bounded token lookup (#25189) (camc314)
- df91684 linter: Make the remaining token lookups comment-aware (#25182) (connorshea)
- 2401bb8 linter/eslint/prefer-const: Skip Svelte and Vue files (#25148) (Pitiș Radu)
- b870897 linter: Don't match tokens inside comments when locating spans (#25181) (connorshea)
- b474da1 linter/typescript/consistent-type-imports: Make token lookups comment-aware (#25180) (connorshea)
- 81f82db linter: Don't insert an ASI semicolon into an unbraced statement body (#25160) (Vladexy88x)
- 31333be linter/no-magic-array-flat-depth: Scan for ( by byte offset instead of character count (#25130) (connorshea)
- 56e9c83 linter: Index source text by byte offset instead of char count (#25131) (connorshea)
- 5c0fa61 linter/eslint/no-warning-comments: Unify config structs and remove manual options docs (#25151) (Mikhail Baev)
- a922355 docs: Incorrect quotations in role_supports_aria_props.rs (#25077) (Maximilian Franzke)
- e8c4c05 linter/eslint/no-unreachable-loop: Handle caught errors correctly (#25071) (camc314)
- 2b02711 oxlint: Correct --warn flag help text (#25059) (Faris Tristan Fabian)
- 97f084f linter/eslint/no-control-regex: Allow null escape (#25070) (camc314)

Performance
- 224c21a linter/vue/no-side-effects-in-computed-properties: Borrow property names in the mutation walk (#25212) (connorshea)
- d36e9c9 linter/unicorn/prefer-export-from: Skip non-violating imports early (#25183) (connorshea)
- 6f2b933 linter/import/no-cycle: Drop two Vec allocations per graph edge (#25004) (Connor Shea)
- 79ddb18 lint
1.76.0 27 de juliol del 2026 — 64 bits ZIPARM64 ZIP32 bits ZIP
Notes de la versió
🚀 Features
- 8d31dfa linter: Verify eslint/no-restricted-globals config schema (#24598) (vigneshwar)
- 7069621 linter: Verify jest/vitest prefer-lowercase-title config schema (#24724) (Bartok)
- 016cf2a linter/oxc: Add bad-match-all-arg rule (#24900) (camc314)
- cdc941e linter/n: Implement exports-style rule (#24087) (Mikhail Baev)
- 1ad6f6c linter/eslint: Implement id-denylist rule (#24632) (Mikhail Baev)
- 678bbb5 linter/typescript-eslint: Implement suggestion for class-literal-property-style rule (#24766) (Mikhail Baev)

🐛 Bug Fixes
- a5f3a0e linter: Mark missing suggestions as pending (#24956) (Mikhail Baev)
- a065946 oxlint: Absolutize explicit CLI paths even with --no-ignore (#24646) (Bez Sahara)
- 17688bb linter/jsx-a11y/interactive-supports-focus: Match eslint behavior for custom components (#24780) (Cole Ellison)
- 0aef19e linter/typescript/no-confusing-non-null-assertion: Report in and instanceof (#24825) (Mikhail Baev)
- 361dce9 linter: Unicorn/no-array-reverse and no-array-sort replacements should be suggestions (#24848) (klem)
- 9213560 config: Preserve defineConfig field JSDoc (#24326) (周星星同学)
- 334d884 linter/node/no-top-level-await: Clarify diagnostic (#24803) (camc314)
- b9fc6af linter/eslint/func-names: Ignore overloads (#24801) (camc314)
- e80574f estree: Handle empty spans serializing ImportMeta and NewTarget (#24775) (overlookmotel)

⚡ Performance
- e9de5a1 linter/jest-vitest/no-test-return-statement: Only run on return statements (#24167) (Cam McHenry)
- aea459d linter/eslint/func-style: Rewrite rule to not iterate over all nodes (#24156) (Cam McHenry)
- fb4398c linter/eslint/no-new-func: Only run on new and call expressions (#24166) (Cam McHenry)
- c75dc60 linter: Avoid Vec allocations via bound_names (#24959) (connorshea)
- 9f9f39d linter/eslint/no-const-assign: Avoid Vec allocation per const declarator (#24953) (connorshea)
- 10a621e linter/typescript/adjacent-overload-signatures: Avoid collecting vec in some cases (#24874) (connorshea)
- ed167e1 linter/node/exports-style: Iterate once over global references (#24877) (connorshea)
- 69908fe linter: Avoid allocations in jest/no-deprecated-functions (#24866) (Connor Shea)
- a3585d7 linter: Speed up jest/vitest prefer-each (#24872) (Connor Shea)
- 62fe640 linter/eslint/prefer-rest-params: Run once per file (#24873) (Connor Shea)
- 7a7aa54 linter/eslint/no-this-before-super: Skip files without classes (#24869) (Connor Shea)
- 4ad0c94 linter/plugins: Faster copying comments to JS allocator (#24858) (overlookmotel)
- 4c25b91 linter/plugins: Test booleans with explicit === false (#24830) (overlookmotel)
- b7add00 linter/plugins: Remove check in loop in getDisableDirectives (#24833) (overlookmotel)

📚 Documentation
- 3ff2e0e linter: Clarify config extends types (#24936) (Boshen)
1.75.0 21 de juliol del 2026 — 64 bits ZIPARM64 ZIP32 bits ZIP
Notes de la versió
💥 BREAKING CHANGES
- 54cc121 ast: [BREAKING] Split MetaProperty into ImportMeta and NewTarget (#24557) (camc314)

🚀 Features
- 7b045cd minfier: Drop last break from last switch case (#24673) (Armano)
- dd18383 linter/node: Implement no-top-level-await rule (#24634) (Connor Shea)
- 16a65f2 linter/react: Implement function-component-definition rule (#24471) (Cole Ellison)
- 7f1f585 linter: Reuse jest/padding-around-test-blocks for vitest/padding-around-test-blocks (#24519) (Mikhail Baev)
- 99978a8 linter/import/consistent-type-specifier-style: Support prefer-top-level-if-only-type-imports option (#24502) (camc314)

🐛 Bug Fixes
- e81b2ff oxlint,oxfmt: Report error for invalid glob patterns (#24744) (leaysgur)
- 0184ad6 linter/unicorn/no-useless-undefined: Preserve valid parameter defaults (#24686) (camc314)
- 8694167 linter/eslint/prefer-destructuring: Handle typed declarations (#24616) (camc314)
- 477cf0f linter/eslint/no-throw-literal: Handle assigned errors (#24561) (Cole Ellison)
- ac9200a linter: Detect React components from returned JSX (#24521) (camc314)
- c0a6522 linter/eslint/no-useless-computed-key: Allow TS syntax in computed keys (#24524) (Cole Ellison)

⚡ Performance
- 346eed1 linter/unicorn/prefer-event-target: Only run on Class and NewExpression nodes (#24685) (Mikhail Baev)
- 7be5cf0 oxlint/lsp: Only invoke lint on code actions when document is not opened (#24676) (Sysix)
- d3f07a0 diagnostics: Box OxcDiagnosticInner to reduce binary size (#24665) (Boshen)
- 90ae040 linter/reporter/stylish: Compute diagnostic Info once per diagnostic (#24525) (connorshea)

📚 Documentation
- e6f7174 linter/valid-expect: Fix correct example being identical to incorrect one (#24468) (mkan0141)
1.74.0 14 de juliol del 2026 — 64 bits ZIPARM64 ZIP32 bits ZIP
Notes de la versió
Features
- 0433a83 linter/eslint/no-inner-declarations: Add namespaces option (#24044) (Boshen)
- 92f154a oxlint,oxfmt: Auto-discover .mts config files (#24357) (camc314)
- 8c1d74b linter/import/no-duplicates: Add autofix logic (#24273) (Cole Ellison)

Bug Fixes
- ac7176d linter/import/no-duplicates: Avoid duplicate commas when merging imports (#24467) (camc314)
- 261aa39 linter/import/no-duplicates: Preserve type modifiers when merging imports (#24466) (camc314)
- dbd08b6 linter/unicorn/prefer-string-raw: Skip fix for TSPropertySignature keys (#24465) (camc314)
- df67932 linter: Skip suppression validation with --type-check-only (#24462) (Stephen Zhou)
- 0b086de linter/jest/prefer-lowercase-title: False positive when lowercaseFirstCharacterOnly is false (#24414) (Connor Shea)
- 097cb95 linter: Allow vite-plus/test and `@effect as Vitest source (#24196) (Liang)
- 8337835 linter: Error on ignorePatterns that cannot match files aoutside the config directory (#24341) (leaysgur)
- 9ba30e5 linter/oxc/bad-replace-all-arg: Add note to enhance diagnostic (#24346) (camc314)
- 2ce5a33 linter: Resolve ignorePatterns relative to the config dir (#24339) (leaysgur)
- ab90eed linter/eslint/no-loop-func: Do not error on catch variables (#24316) (Chris Opperwall)
- b67f0a6 linter/eslint/no-unused-vars: Count default parameter updates as usage (#24323) (camc314)
- d193f8e linter: Detect Junie agent env vars (#24277) (Jeevan Mohan Pawar)
- 2aecf60 linter/eslint/no-unreachable: Handle break in switch stmts correctly (#24260) (camc314)

Performance
- 2efa2f9 linter/react/jsx-handler-names: Simplify JSX handler name normalization (#24458) (camc314)
- 9c4e24a linter/eslint/object-shorthand: Remove constructor regex (#24457) (camc314)
- 7f80cac linter/vue/prop-name-casing: Precompile ignoreProps regex pattern (#24413) (connorshea)
- 6272051 linter/typescript/no-require-imports: Compile allow patterns once (#24417) (connorshea)
- fb1edf1 linter: Compute comment fix span only for directive comments (#24419) (connorshea)
- 33805b9 linter/jsdoc/require-param: Compile checkTypesPattern regex once (#24420) (connorshea)
- 8de6fca linter/jest/valid-title: Compile disallowedWords regex once (#24412) (Connor Shea)
- 4a0d8dc linter/eslint/no-underscore-dangle: Avoid String clone per identifier (#24371) (Ian Macalinao)
- f3ab04c linter/typescript/consistent-type-imports: Remove redundant Vec per violation (#24370) (Ian Macalinao)
- 4d2d78d linter/typescript/prefer-ts-expect-error: Avoid String clone per comment (#24369) (Ian Macalinao)
1.73.0 6 de juliol del 2026 — 64 bits ZIPARM64 ZIP32 bits ZIP
Notes de la versió
🚀 Features
- 7db7a29 allocator: Add ReplaceWith trait (#24012) (overlookmotel)
- a2c97f3 linter/unicorn: Implement explicit-timer-delay rule (#23612) (Mikhail Baev)
- 85735cb linter/unicorn: Implement no-confusing-array-with rule (#23638) (Shekhu☺️)
- cb4fbb9 linter/eslint: Implement no-unreachable-loop rule (#23975) (Todor Andonov)
- dc32112 linter/eslint/no-constant-binary-expression: Check relational comparisons (#24088) (camc314)
- 439c344 linter/jsdoc: Added missing options to jsdoc/require-param rule (#23364) (kapobajza)
- 62af717 linter/unicorn/filename-case: Add lowercase and screamingSnakeCase (#24045) (Boshen)
- d963967 linter/unicorn/no-array-sort: Add allowAfterSpread option (#24043) (Boshen)
- 0a75682 linter: Add per-rule timings for type-aware linting (#22488) (camchenry)
- 743e222 linter/react: Add disallowedValues option for forbid-dom-props rule (#23970) (Mikhail Baev)

🐛 Bug Fixes
- 7b80010 linter: Use direct binding symbol ids (#24216) (camc314)
- 8f94b49 linter/import/no-duplicates: Don't flag a type-only import beside a side-effect import (#24030) (Boshen)
- d8c3fee linter/react/rules-of-hooks: Flag useEffectEvent escapes (#23764) (Rayan Salhab)
- 0a7312b linter/no-deprecated-functions: Map require.requireActual to jest.requireActual (#23627) (Jerry Zhao)
- d9e3ab3 linter/eslint/no-useless-return: Handle switch case continuation (#23984) (camc314)
- 0b25582 ast: Type binding node typeAnnotation as TSTypeAnnotation | null (#23113) (Boshen)
- 122d112 linter/eslint/no-restricted-imports: Flag dynamic import() expressions (#24029) (Boshen)
- 59b6b83 linter: Avoid OnceLock re-entry on cyclic export * re-exports (#23632) (Jerry Zhao)
- dd09af0 linter/import/namespace: Avoid panic on destructuring of an unresolvable namespace re-export (#23626) (Jerry Zhao)
- bdb51c7 linter/jest/prefer-ending-with-an-expect: Validate config patterns (#24122) (camc314)
- e383843 linter/unicorn/prefer-modern-dom-apis: Skip fixer for non identifier arguments (#23630) (Jerry Zhao)
- 0ac4c83 linter: Detect circular config extends (#24115) (camc314)
- bae1edf linter/import/namespace: Check namespace imports after named imports (#24094) (camc314)
- cd8fdfe linter/eslint/no-eval: Recognize Array.from family thisArg (#24091) (camc314)
- 851ee43 linter/eslint/no-eval: Resolve this binding for functions returned from an IIFE (#23643) (Jerry Zhao)
- 002ab35 linter/unicorn: Avoid prefer-array-find rest destructuring false positive (#23654) (ColemanDunn)
- 01c8775 linter/unicorn/filename-case: Keep digits attached in screamingSnakeCase (#24056) (Boshen)
- f256941 linter: Recognize @effect/vitest as a vitest import source (#24025) (Boshen)
- 73eeb1d linter/import/extensions: Honor per-extension never for explicit extensions (#24031) (Boshen)
- d4ebe1f linter: Reject non-object oxlint config files (#24026) (Boshen)
- 45d607d linter/react/forbid-component-props: Make allow/disallow lists optional in schema (#24024) (Boshen)
- 54076ad linter/unicorn/no-array-for-each: Suggest entries loop for index callbacks (#24004) (camc314)
- d057736 linter/jsdoc: Avoid param root underflow (#23945) (camc314)
- 29c76bf linter/unicorn/prefer-at: Skip object numeric-key access (#23909) (Gaurav Dubey)

⚡ Performance
- 657a8fc linter/oxc/bad-array-method-on-arguments: Only run on member expressions instead of all identifiers (#24164) (camchenry)
- 073d9e7 linter/eslint/prefer-rest-params: Run on functions instead of all identifiers (#24163) (camchenry)
- e5a4162 linter/jest/no-confusing-set-timeout: Early exit fast path (#24092) (camc314)
- bca7ce5 linter: Only run react-perf rules on JSX attribute nodes (#24083) (camchenry)
- 6881bf6 linter: Compute apply_overrides rule set lazily (#23648) (Jerry Zhao)
- 911c106 linter/eslint/no-obj-calls: Use resolved reference instead of scope walk (#23895) (Marius Schulz)
- dc8fd9a linter/unicorn/prefer-dom-node-text-content: Change dispatch to run only on less common node types (#23897) (Connor Shea)
- fdbd34d linter/eslint/
1.72.0 29 de juny del 2026 — 64 bits ZIPARM64 ZIP32 bits ZIP
Notes de la versió
BREAKING CHANGES
- 88f4455 str: [BREAKING] Str and Ident methods take &GetAllocator (#23781) (overlookmotel)

Features
- 2428c50 linter/react: Implement suggestion for no-unknown-property rule (#23936) (Mikhail Baev)
- f2091b3 ast: Unify old and new AstBuilders (#23875) (overlookmotel)
- 1c8f50c linter: Add schema for eslint/no-restricted-import (#23642) (Sysix)

Bug Fixes
- d8c6b55 linter/unicorn/custom-error-definition: Handle non-ascii class names (#23939) (camc314)
- 7cb85c4 linter/eslint/no-negated-condition: Add autofix for negated conditions (#23825) (Yagiz Nizipli)
- f7d1f50 oxlint, oxfmt: Enable disable_old_builder Cargo feature for oxc_ast crate (#23886) (overlookmotel)
- d891990 linter/jsx-a11y/role-supports-aria-props: Ignore nullish prop values (#23865) (Mikhail Baev)
- 94b6599 linter: Deduplicate missing plugin errors (#23853) (camc314)
- eff3eff linter/oxc/branches-sharing-code: Avoid else-if false positives (#23843) (camc314)
- 2a2d3b9 linter/eslint/prefer-destructuring: Skip AssignmentExpression autofixes (#23818) (camc314)
- ddc24ae linter/eslint/id-length: Respect checkGeneric for mapped type keys (#23802) (bab)
- cd89202 linter/react/exhaustive-deps: Skip wrapper expression when analyzing hook initializers (#23793) (camc314)
- 20e8285 linter/unicorn/prefer-native-coercion-function: Allow ts type predicates (#23774) (camc314)
- d86f60b lsp: Normalize user config path to watch pattern (#23723) (Sysix)
- 52032cf linter: Newline-terminate tsgolint errors (#23762) (Mikhail Baev)
- 368fda7 linter/eslint/no-warning-comments: Avoid dropping generated regex patterns (#23741) (camc314)
- ce44fbd linter/valid-title: Escape disallowed words regex (#23742) (camc314)
- 3100d11 linter/prefer-called-exactly-once-with: Avoid out-of-bounds slice panic at end of file (#23625) (Jerry Zhao)
- 742be36 refactor/node/handle-callback-err: Reject invalid regex config (#23740) (camc314)
- d7be179 linter/eslint/no-restricted-globals: Handle shadowed locals (#23736) (camc314)
- b3b1ff8 linter/vitest/expect-expect: Handle global vitest detection correctly (#23734) (camc314)

Performance
- 68f9472 linter/jsx-a11y: Skip lowercasing non-aria attribute names (#23906) (Lawrence Lin)
- b9312b4 linter/unicorn/prefer-export-from: Use keyed binding lookup (#23893) (Marius Schulz)
- cd5204e linter/typescript/no-unsafe-declaration-merging: Use keyed binding lookup (#23894) (Marius Schulz)
- e948498 linter/eslint/prefer-named-capture-group: Only dispatch for relevant node types (#23868) (Connor Shea)
- 4ac7a8e linter/eslint/max-depth: Derive node types (#23896) (Connor Shea)
- daeed09 linter/eslint/no-restricted-globals: Only scan unresolved references (#23890) (camc314)
- e808514 linter/jest-vitest: Speed up no-standalone-expect (#23883) (camc314)
- 8b165e5 linter/react/exhaustive-deps: Skip non-reactive calls early (#23882) (camc314)
- 54005e7 linter/eslint/no-unused-vars: Precompute exported bindings (#23881) (camc314)
- 9bc2f8c linter/unicorn/prefer-number-properties: Speed up global checks (#23880) (camc314)
- 4ff104f linter: Optimize require-hook and prefer-mock-* rules to run on specific node types (#23871) (Connor Shea)
- cc2213b linter: Run no-underscore-dangle only when relevant node types are present (#23867) (Connor Shea)
- 3e55c21 linter/promise/always-return: Narrow to function node types (#23878) (Connor Shea)
- 7136182 linter/jest-vitest: Speed up no-commented-out-tests (#23864) (camc314)
- f138264 linter/eslint/no-script-url: Match javascript: prefix without allocating (#23861) (Lawrence Lin)
- 7ef6895 linter/react/no-array-index-key: Delay index symbol lookup (#23857) (camc314)
- 26bc171 linter/react/no-array-index-key: Match callback methods directly (#23856) (camc314)
- 44fbbda linter/jsx-a11y/interactive-supports-focus: Check cheap conditions first (#23854) (camc314)
- 84a5aa3 linter/eslint/no-extend-native: Skip lowercase references early (#23851) (camc314)
- 88a74b2 linter/eslint/no-nonoctal-decimal-escape: Scan decimal escap
1.71.0 22 de juny del 2026 — 64 bits ZIPARM64 ZIP32 bits ZIP
Notes de la versió
BREAKING CHANGES
- 36009dd allocator: [BREAKING] GetAllocator::allocator take &self (#23676) (overlookmotel)

Features
- ff65285 linter: no-restricted-globals add missing upstream options (#23663) (Sysix)
- 7b8bd89 linter/typescript: Implement suggestion for no-unnecessary-type-constraint rule (#23646) (Mikhail Baev)
- 0dc2405 linter: Add schema for eslint/no-restricted-properties (#23619) (Sysix)
- b638d0e linter: Add schema for node/callback-return (#23615) (Sysix)
- eb8bedc linter: Add schema for import/extensions (#23557) (WaterWhisperer)
- 46f3625 linter: Implement node/no-sync rule (#23589) (fujitani sora)
- b01739a linter: Add schema for unicorn/numeric-separators-style (#23554) (Mikhail Baev)
- 68afd2a linter/node: Implement no-mixed-requires rule (#23539) (fujitani sora)
- 59d8893 linter: unicorn/numeric-separators-style support missing options (#23524) (Sysix)
- a421215 linter: Add schema for eslint/prefer-destructuring (#23410) (WaterWhisperer)
- 84438be linter/jsdoc: Added missing options to require-param-description (#23416) (kapobajza)
- c145b72 linter/jsdoc/require-param-type: Implement fixer (#23513) (camc314)
- 51910df linter/jsdoc: Add missing options to require-param-type rule (#23418) (kapobajza)
- e90925f linter/unicorn: Implement prefer-number-coercion rule (#23497) (Shekhu☺️)
- dd1c866 linter/vue: Implement no-async-in-computed-properties rule (#23493) (bab)
- b02444e linter: Add schema for react/jsx-no-script-url (#23475) (WaterWhisperer)
- 53509a8 minifier: Treeshake pure typed arrays and Set/Map array literals (#23469) (Dunqing)
- a8dce46 linter/unicorn: Implement max-nested-calls rule (#23461) (arieleli01212)

Bug Fixes
- b1948a1 linter/radix: Avoid panic on parseInt with a spread radix argument (#23623) (Jerry Zhao)
- f28ccfd linter/prefer-query-selector: Use a compound selector for multiple classes (#23628) (Jerry Zhao)
- 13f2970 linter/prefer-numeric-literals: Avoid panic on parseInt with a spread radix argument (#23624) (Jerry Zhao)
- 57612b3 linter: Report invalid capitalized-comments ignore patterns (#23608) (camc314)
- 800ee2a linter/consistent-vitest-vi: Preserve import aliases when rewriting the import (#23568) (Yunfei He)
- f78b5e1 linter/consistent-indexed-object-style: Don't leak a stray comma into the value type (#23566) (Yunfei He)
- 6b104e8 linter/radix: Detect a trailing comma only after the argument (#23569) (Yunfei He)
- 2de20cb linter/unicorn/prefer-at: Correct two-argument slice().pop() index (#23565) (Yunfei He)
- de778ec linter: unicorn/numeric-separators-style preserve dot for floats without decial part (#23553) (Sysix)
- 651027c linter/curly: Remove only the block's own braces (#23580) (Yunfei He)
- 687e835 linter/array-type: Parenthesize a conditional-type element (#23579) (Yunfei He)
- 9c80dff linter/unicorn/no-unnecessary-await: Don't paste operators into invalid syntax (#23556) (Yunfei He)
- 46e1463 linter/no-compare-neg-zero: Delete the - of a parenthesized -0 (#23578) (Yunfei He)
- d172a97 linter/unicorn/prefer-math-trunk: Skip fixer for LHS with side effects (#23548) (camc314)
- 1c3a9bd linter/unicorn/prefer-negative-index: Don't report Array#with (#23518) (Yunfei He)
- c17db5d linter/unicorn/prefer-spread: Don't report .slice() on non-array receivers (#23520) (Yunfei He)
- 9cd0c2f linter/unicorn/prefer-date-now: Keep BigInt wrapper when fixing BigInt(new Date()) (#23523) (Yunfei He)
- 16bb890 linter/unicorn/prefer-array-flat: Skip non-array flatMap receivers (#23527) (Yunfei He)
- 3e6f90f linter/unicorn/no-zero-fractions: Insert a space after any preceding keyword (#23529) (Yunfei He)
- 79a7d69 linter/eslint/no-useless-assignment: Handle exceptional control-flow paths (#23544) (camc314)
- e8e2741 linter/unicorn/prefer-math-min-max: Preserve operand source text in the fix (#23533) (Yunfei He)
- f592154 linter/react/display-name: Ignore lowercase jsx helpers (#23510) (camc314)
- df7612f linter/jsx-a11y/no-noninteractive-element-to-interactive-role: Allow custom roles con
1.70.0 15 de juny del 2026 — 64 bits ZIPARM64 ZIP32 bits ZIP
Notes de la versió
Highlights
- 1490a0a linter/react: Implement react-compiler rule (#23202) (Boshen)

🚀 Features
- 5e1627d linter/unicorn: Flag all Error() calls without new in throw-new-error (#23363) (Cason Kervis)
- 2e8bda4 linter/vue: Implement no-dupe-keys rule (#23350) (bab)
- dd560ae linter/unicorn: Implement no-array-fill-with-reference-type rule (#23397) (Mikhail Baev)
- af36c2f linter: Add schema for react/jsx-curly-brace-presence (#23400) (WaterWhisperer)
- 47d34a3 linter: Add schema for react/jsx-handler-names (#23393) (WaterWhisperer)
- f4250d0 linter: Add schema for unicorn/import-style (#23386) (WaterWhisperer)
- 30c74ce linter: Add schema for jsx_a11y/no-noninteractive-element-to-interactive-role (#23384) (Sysix)
- cfbe8dc linter: Add schema for jsx_a11y/no-interactive-element-to-noninteractive-role (#23382) (WaterWhisperer)
- d15b7ff linter: Add schema for typescript/no-restricted-types (#23381) (WaterWhisperer)
- 028a811 linter: Add schema for jsx-a11y/media-has-caption (#23377) (Sysix)
- b3b1038 linter: Add schema for jsx-a11y/label-has-associated-control (#23376) (Sysix)
- 7ada6b2 linter: Add schema for jsx_a11y/no-distracting-elements (#23379) (WaterWhisperer)
- ee3dd49 linter: Add schema for jsx-a11y/img-redundant-alt (#23374) (Sysix)
- df5f8dd linter: Add short descriptions to most lint rules. (#23365) (Connor Shea)
- e3fd735 linter: Add schema for jsx_a11y/alt-text (#23369) (Sysix)
- 0f2fff4 linter: Add schema for react/exhaustive-deps (#23372) (Mikhail Baev)
- e3e4e10 linter: Add schema for react_perf/jsx-no-new-object-as-prop (#23368) (Mikhail Baev)
- 9366d44 linter: Add schema for unicorn/prefer-at (#23366) (WaterWhisperer)
- f57b55d linter: Add schema for typescript/array-type (#23355) (Sysix)
- 0dcf912 linter: Add schema for typescript/ban-ts-comment (#23354) (Sysix)
- 51fa83e linter: Add schema for react/no-did-update-set-state (#23357) (Mikhail Baev)
- 59db0bd linter: Add schema for consistent-generic-constructors (#23353) (Sysix)
- c4775c0 linter: Add schema for typescript/consistent-type-assertions (#23349) (Sysix)
- 6e516f7 linter: Add schema for typescript/consistent-type-imports (#23348) (Sysix)
- 012134d linter: Add schema for react/jsx-no-target-blank (#23345) (WaterWhisperer)
- 0806aae linter: Add schema for jsx_a11y/no-noninteractive-tabindex (#23337) (Mikhail Baev)
- 0708b5a linter: Add schema for react/jsx-filename-extension (#23315) (Mikhail Baev)
- 150bce1 linter: Add schema for typescript/no-empty-object-type (#23309) (Sysix)
- f9e36f1 linter: Add schema for typescript/no-duplicate-type-constituents (#23308) (Sysix)
- 937accf linter: Add schema for typescript/no-invalid-void-type (#23307) (Sysix)
- 3e042b9 linter: Add schema for typescript/no-misused-promises (#23306) (Sysix)
- da212d1 linter: Add schema for typescript/no-unnecessary-condition (#23305) (Sysix)
- f8f0d38 linter: Add schema for typescript/parameter-properties (#23304) (Sysix)
- 2275fc7 linter: Add schema for typescript/prefer-nullish-coalescing (#23302) (Sysix)
- d353858 linter: Add schema for typescript/prefer-string-starts-ends-with (#23301) (Sysix)
- 03060f5 linter: Add schema for typescript/triple-slash-reference (#23300) (Sysix)
- 6619cee linter: Add schema for promise/param-names (#23298) (Sysix)
- 8bf108e linter: Add schema for promise/catch-or-return (#23297) (Sysix)
- 48158d0 linter: Add schema for vitest/consistent-each-for (#23294) (Sysix)
- 7e74c98 linter: Add schema for vitest/consistent-test-filename (#23293) (Sysix)
- ff94d4a linter: Add schema for vitest/consistent-vitest-vi (#23292) (Sysix)
- 2409a10 linter: Add schema for vitest/prefer-import-in-mock (#23291) (Sysix)
- 3d782b7 linter: Add schema for react/no-unstable-nested-components (#23287) (Mikhail Baev)
- 0a0bc2f linter/jsx-a11y: Add allowedRedundantRoles option to no-redundant-roles (#22820) (bab)
- 80758a5 linter/vue: Implement no-side-effects-in-computed-properties rule (#23282) (bab)
- e3869ac linter: Add schema for react/no-object-type-as-default-prop (#232
1.69.0 8 de juny del 2026 — 64 bits ZIPARM64 ZIP32 bits ZIP
Notes de la versió
Features
- e805174 linter: Add schema for jest/vitest/max-expects (#23105) (Sysix)
- 7850577 linter: Add schema for jest/vitest/expect-expect (#23104) (Sysix)
- 75f641a linter: Add schema for jest/vitest/consistent-test-it (#23103) (Sysix)
- 5125f89 linter/unicorn: Support no-null checkArguments option (#23098) (camc314)
- b8b9797 linter: Add schema for import-max-dependencies (#23096) (Sysix)
- 65cb47a linter/eslint: Support no-unused-expressions ignoreDirectives option (#23097) (camc314)
- f6c36d5 linter: Add schema for import/prefer-default-export (#23091) (Sysix)
- 0d4a5d1 linter: Add schema for eslint/sort-vars (#23090) (Sysix)
- fdb5bf5 linter: Add schema for eslint/radix (#23082) (Sysix)
- 05b4dcf linter: Add schema for eslint/prefer-const (#23081) (Sysix)
- 5a06c4d linter/vue: Implement next-tick-style rule (#23041) (Alex Peshkov)
- e38a36a linter: Add schema for eslint/operator-assignment (#23080) (Sysix)
- 907cee7 linter: Add schema for eslint/no-warning-comments (#23075) (Sysix)
- 9470bb2 linter: Add schema for eslint/no-unused-vars (#23073) (Sysix)
- 234b5cf linter: Add schema for eslint/no-shadow (#23072) (Sysix)
- de0dd8b linter: Add schema for eslint/no-restricted-exports (#23020) (Sysix)
- faa3e0d linter: Add schema for eslint/no-param-reassign (#23018) (Sysix)
- dbc9c27 linter: Add schema for eslint/no-magic-numbers (#23017) (Sysix)
- 38d3569 linter: Add schema for eslint/no-inner-declarations (#23016) (Sysix)
- 008fa41 linter: Add schema for eslint/no-constant-condition (#22991) (Sysix)
- ca44623 linter: Add schema for eslint/no-empty-function (#22988) (Sysix)
- 43eb04d linter: Add schema for eslint/id-match (#22987) (Sysix)
- a800f27 linter: Add schema for eslint/capitalized-comments (#22984) (Sysix)
- 96e2d32 linter: Add schema for eslint/id-length (#22963) (Sysix)
- 545493f linter: Add schema for eslint/complexity (#22960) (Sysix)
- 5f0b558 linter: Add schema for eslint/class-methods-use-this (#22959) (Sysix)
- 719b720 linter: Add schema for simple rule configurations (#22948) (Sysix)
- fd00966 linter: Add right schema for eslint/max-* rules (#22923) (Sysix)
- 1226d78 linter: Fill schema with rule configurations (#22907) (Sysix)
- 8f423c1 linter/vue: Implement require-direct-export rule (#17623) (yefan)
- 78e915b linter/vue: Implement no-reserved-props rule (#22914) (bab)
- 0f200a9 linter/vue: Implement require-prop-types rule (#22083) (Alex Peshkov)
- 5da9da9 linter/vue: Implement no-reserved-keys rule (#21780) (bab)
- 75e14a8 linter/vue: Implement prop-name-casing rule (#22892) (bab)
- 85efabf semantic: Make building the class table optional, off by default (#22862) (Boshen)

Bug Fixes
- a49b0cf linter/no-map-spread: Remove ineffective autofix (#22956) (camc314)
- cf53285 parser: Report reserved type-declaration names in the parser (#23035) (Boshen)
- 0383e61 linter: Fix schema for rules without a config (#22946) (Sysix)
- 4d722e0 parser: Report duplicate switch default clause in the parser (#23012) (Boshen)
- 6cb34b8 linter/plugins: Make spreading Token instances keep loc property (#22947) (Nicolas Le Cam)
- 27de044 linter/plugins: Make spreading Comment instances keep loc property (#22238) (Nicolas Le Cam)
- 742fd0b linter/double-comparisons: Make fixer a suggestion (#22968) (camc314)
- 93f4494 linter: Respect default child config plugin when extending parent config (#22903) (Sysix)
- 594ed86 linter: Deny unknown options for some rules (#22924) (Sysix)
- 3253038 linter/expect-expect: Align default rule options (#22890) (camc314)
- bbe44ea linter: Respect default plugins from extended config (#22896) (Sysix)

Performance
- 0b7ce7e linter/plugins: Create global prop vars at top level of modules (#22928) (overlookmotel)
- 0f7c319 linter/plugins: Define class #loc setter functions as consts (#22919) (overlookmotel)

Documentation
- 7b0380d linter: Remove preserve-caught-error note (#22994) (camc314)
- dadafe3 oxlint, oxfmt: Mention migrate skills in npm READMEs (#22965) (Boshen)
1.68.0 1 de juny del 2026 — 64 bits ZIPARM64 ZIP32 bits ZIP
Notes de la versió
🚀 Features
- 81b86eb parser: Report TS1095 for setter with return type (#22889) (camc314)
- 3f05c5e linter: Expose override::exclude_files option (#22884) (camc314)
- e4b1f46 linter/typescript: Implement method-signature-style rule (#22679) (Mikhail Baev)
- bc462ca linter/vue: Implement no-reserved-component-names rule (#22741) (bab)
- ef9e751 linter/vue: Implement component-definition-name-casing rule (#22818) (bab)
- d67f51a linter/vue: Implement require-prop-type-constructor rule (#22708) (bab)
- 1444f82 linter/promise/spec-only: Add Promise.try to Promise static methods (#22812) (Ben Saufley)
- 8422e8b linter/jsdoc: Implement require-yields-description rule (#22805) (Mikhail Baev)
- fe93f97 linter/eslint: Implement prefer-named-capture-group rule (#22759) (Sebastian Poxhofer)
- 1a7798b linter: Add suggestion for unicorn/no-new-array (#22682) (Sysix)
🐛 Bug Fixes
- 4957c71 linter/arrow-body-style: False positive with non-zero directive count (#22888) (camc314)
- 760a9f9 linter: Report errors when writing to the filesystem (#22881) (camc314)
- e5a2748 linter: Avoid no-unreachable false positive after conditional loop (#22869) (camc314)
- 39d92d6 linter/arrow-body-style: Preserve comments within function (#22854) (Sysix)
- 3d13e29 parser: Reject declare in an already-ambient context (TS1038) (#22850) (Boshen)
- 5152854 parser: Reject statements in ambient contexts (TS1036) (#22849) (Boshen)
- 2eafea6 parser: Reject function implementations in ambient contexts (TS1183) (#22845) (Boshen)
- c645615 parser: Reject incompatible class member modifiers (#22843) (Boshen)
- 4a1ca4a linter/export: Detect duplicate explicit exports (#22798) (camc314)
- 0a9a735 linter/no-loop-func: Allow safe let closures (#22811) (camc314)
- 1599f11 linter: Align lsp extends default plugins (#22788) (camc314)
- db32ec9 linter/no-accumulating-spread: Use loop as primary span (#22800) (camc314)
- 33ec6b4 linter/consistent-test-it: Avoid adjacent describe leakage (#22796) (camc314)
- 2606069 linter/no-array-sort: Unwrap parenthesized sort args (#22794) (camc314)
- 9f2f709 linter/no-array-sort: Skip non compare fn sort arguments (#22752) (Gaurav Dubey)
- 27268a0 linter/no-else-return: Preserve statement boundary in fixer (#22687) (camc314)
- d9cb6d8 linter/no-empty-function: Allow functions callbacks with allow: functions (#22764) (camc314)
- a40a314 linter/no-shadow-restricted-names: Ignore enum members (#22762) (camc314)
- 82366d9 linter/no-cond-assign: Align ternary handling (#22761) (camc314)
📚 Documentation
- 5e113ba linter: Add license notices for ported ESLint plugins (#22768) (Boshen)
1.67.0 26 de maig del 2026 — 64 bits ZIPARM64 ZIP32 bits ZIP
Notes de la versió
Features
- 10da26b linter: no-misleading-character-class add suggestions for regex literal (#22681) (Sysix)
- b84941e linter/vue: Implement no-expose-after-await rule (#22675) (bab)
- 98b98c1 linter/vue: Implement no-computed-properties-in-data rule (#22674) (bab)
- 868e2e8 linter: Add suggestion for no-misleading-character-class (#22631) (Sysix)
- 2d4c919 oxlint: Support vite-plus/resolveConfig for vite.config.ts (#22456) (leaysgur)
- 2a60012 linter/vue: Implement require-render-return rule (#22613) (bab)
- 9f227fd linter/vue: Implement no-deprecated-props-default-this rule (#21892) (bab)
- 9cd28b3 linter: Add debug option to print files to be linted (#22546) (camchenry)
- 87f065e linter/vue: Implement return-in-emits-validator rule (#21935) (bab)
- ea0380c linter/unicorn: Implement import-style rule (#22173) (Hao Chen)
- dde40fe linter/vue: Implement no-watch-after-await rule (#22006) (bab)
- a735eb0 linter/vue: Implement valid-next-tick rule (#22531) (bab)
- 6dc615d linter/vue: Implement no-shared-component-data rule (#21842) (bab)
- a656418 linter/vue: Implement valid-define-options rule (#22107) (bab)
- bb6f1b2 linter/vue: Implement require-slots-as-functions rule (#22244) (bab)
- 5fa4774 linter/n: Implement callback-return rule (#22470) (Mikhail Baev)

Bug Fixes
- 52bd016 linter: Respect allow unused disable directives in LSP (#22715) (camc314)
- fa7c463 semantic: Correct TS enum member symbol spans (#22689) (camc314)
- ed445ba linter: Respect flags overrides for RegExp(/regex/i, "u") (#22678) (Sysix)
- 26b9396 semantic: Resolve parameter decorators outside parameter scope (#22623) (camc314)
- 203952d linter: no-misleading-character-class fix is_unicode_code_point_escape check (#22655) (Sysix)
- 2f64d3d linter: no-misleading-character-class own diagnostic for surrogate pairs without u flag (#22654) (Sysix)
- 0c6ebc2 linter/eslint/no-lone-blocks: Do not flag empty loops (#22649) (Mikhail Baev)
- 2a7562e linter/no-focused-tests: Mark fixer as a suggestion (#22645) (camc314)
- dbe644f linter: Respect args none for unused rest parameters (#22627) (camc314)
- d0211b0 linter: Allow undefined in DummyRuleMap index (#22626) (camc314)
- 36fc0ec oxlint/lsp: "ignore this" actions merge with existing directive (#22604) (Sysix)
- f7f370e linter/vitest/prefer-expect-type-of: Recommend toBeTypeOf instead of expectTypeOf (#22612) (Mikhail Baev)
- 77063e5 linter/consistent-indexed-object-style: Preserve interface modifiers in fixes (#22579) (camc314)
- 4f33aa7 linter: Treat TSGlobalDeclaration as ambient in has_ambient_typescript_ancestor (#22577) (camc314)

Performance
- c22938d linter/no-async-endpoint-handlers: Populate node types (#22601) (camc314)
- 607486e linter/no-negated-condition: Populate node types (#22602) (camc314)
- 4dcaa59 linter/consistent-type-imports: Populate node types (#22600) (camc314)
- 5bd3b25 linter/no-unused-vars: Avoid cloned ancestor iterator (#22598) (camc314)
- 97fe9ba linter/no-extra-non-null-assertion: Reduce node matches (#22588) (camc314)
- ae98296 linter/consistent-indexed-object-style: Populate node types (#22578) (camc314)
1.66.0 19 de maig del 2026 — 64 bits ZIPARM64 ZIP32 bits ZIP
Notes de la versió
🚀 Features
- 1ae291e linter/no-underscore-dangle: Add allowInUsingDeclarations option (#22483) (吴杨帆)
- 0440b0f linter/eslint: Implement id-match rule (#22379) (Vladislav Sayapin)
- 65bf119 linter: Implement react no-object-type-as-default-prop (#22481) (uhyo)
- 2a6ddce linter/eslint: Implement no-implied-eval rule (#22391) (Vladislav Sayapin)
- d3a3c1d linter: Auto detect agents from CLI and transition to the agent output format (#22068) (Jovi De Croock)
- 625758a linter/vitest: Implement padding-around-after-all-blocks rule (#21788) (kapobajza)
- 37680b0 linter: Implement react no-unstable-nested-components (#22248) (Jovi De Croock)
- d8d9c74 linter: Implement import/newline-after-import rule (#19142) (Ryuya Yanagi)

🐛 Bug Fixes
- 3f59e03 linter: Only call rayon/miette/tracing inits once (#21899) (Matiss Janis Aboltins)
- 602dfd6 linter/promise/no-return-wrap: Detect Promise calls in all branches (#22474) (zennnnnnn11)
- e182aee linter: Allow dialogs and popovers for no_autofocus (#22289) (mehm8128)
- 7ffb710 linter/jest/vitest: Jest/no-standalone-expect ignores additionalTestBlockFunctions option for jest/vitest hooks (#22477) (kapobajza)
- c6f2d3f linter: Add more expression support for iframe-has-title (#22460) (mehm8128)
- 5747ff1 linter: Avoid enabling jest with vitest plugin (#22499) (camc314)
- 863984f linter/no-find-dom-node: Run on all files (#22479) (bab)

⚡ Performance
- 2afef79 linter: Optimize no-loop-func (#22491) (camchenry)
- 4c9ca72 oxlint: Align walker thread count with rayon pool (#22494) (Boshen)

📚 Documentation
- f7967c7 linter/id-match: Clarify onlyDeclarations config docs (#22523) (camc314)
- 1e0c97f linter: Fix closing code block in documentation for padding-around-after-all-blocks rule. (#22513) (connorshea)
- a9049fd linter: Exclude directly provide autoFocus to dialog pattern (#22510) (mehm8128)
1.65.0 15 de maig del 2026 — 64 bits ZIPARM64 ZIP32 bits ZIP
Notes de la versió
🚀 Features
- 5478fb5 linter/jsdoc: Implement require-throws-description rule (#22386) (Mikhail Baev)
- b46d4de linter: Add --debug options and add per-rule timing info (#22282) (camchenry)
- c73225e linter/eslint: Implement prefer-arrow-callback rule (#22312) (박천(Cheon Park))
- de82b59 linter: Add support for eslint-plugin-jsx-a11y-x (#22356) (mehm8128)
- b170da3 linter: Implement no-implicit-globals (#22249) (Jovi De Croock)
- f44b6c8 linter: Fill schemas DummyRuleMap with built-in rules (#22288) (Sysix)
- 5cdb80d linter/jsx-a11y/: Implement no-interactive-element-to-noninteractive-role (#22332) (anarefolio)
- 2749422 linter/jsx-a11y: Add no-noninteractive-element-interactions (#22337) (Pablo Tovar)
- ba2a1d3 linter/jsdoc: Implement require-throws-type rule (#22358) (Mikhail Baev)
- d90729d linter/jsx-a11y: Implement control-has-associated-label (#21985) (mehm8128)
- 1d04903 linter/jsdoc: Implement require-yields-type rule (#22331) (Mikhail Baev)

🐛 Bug Fixes
- 04c4609 linter/no-nullable-type-assertion-style: Mark as suggestion (#22450) (camc314)
- 1c2b7ec linter/no-unused-vars: Handle shadowed self assignments (#22387) (camc314)
- 9faa1d5 linter/no-noninteractive-tabindex: Check conditional expressions (#22435) (camc314)
- 0854b3a linter/prefer-arrow-callback: Preserve TSX generic arrows in fixer (#22434) (camc314)
- 410b814 linter: Supply source_type to codegen fixer (#22433) (camc314)
- 3c1bb6f linter: Skip per-node dispatch for run_once-only rules in large files (#22398) (Connor Shea)
- 5206cde linter/no-unused-vars: Improve type-only rest parameters diagnostic (#22385) (camc314)
- c9a22b5 linter/consistent-function-scoping: Allow imported bindings (#22384) (camc314)
- c1e966d linter: Report type-only unused parameters in no-unused-vars (#22368) (camchenry)
- 4818d98 linter: Check whether path is under root before ignoring it (#20101) (Leonabcd123)
- 41fcdcf linter: Fix rule count not including override rules (#19898) (Daniel Osmond)
- 59b4f0e linter: Fix 'explicit-module-boundary-types' false positive with 'allowOverloadFunctions' (#22341) (camchenry)

⚡ Performance
- 6d42395 linter: Narrow no-unsafe-optional-chaining dispatch (#22437) (camchenry)
- 08595fb linter: Optimize no-unreachable (#22397) (camchenry)
- 3b46a8d linter: Optimize no-loss-of-precision (#22395) (camchenry)
- b3e2dc9 linter: Optimize oxc/bad-array-method-on-arguments (#22393) (camchenry)

📚 Documentation
- dcbf62c linter: Remove some duplicate spaces (#22359) (camc314)
1.64.0 11 de maig del 2026 — 64 bits ZIPARM64 ZIP32 bits ZIP
Notes de la versió
BREAKING CHANGES
- 00ce512 oxlint/lsp: [BREAKING] Don't fix suggestions on fixAll code actions & command (#22195) (Sysix)

Features
- 0eeceaf linter/no-unused-vars: Rename parameter with initializer (#22308) (camc314)
- fa0232b linter/no-unused-vars: Add param rename suggestion (#22285) (Ryota Misumi)
- ae59305 linter/promise/no-promise-in-callback: Add exemptDeclarations option (#22275) (Mikhail Baev)
- 60bed4a linter: Extends no-redundant-roles and prefer-tag-over-role support roles (#22069) (mehm8128)
- 545c80f linter/eslint: Implement prefer-regex-literals rule (#22192) (Mikhail Baev)
- 23abd22 linter/jsx-a11y: Implement no-noninteractive-element-to-interactive-role (#21264) (Pedro Tainha)
- fbb8f22 linter: Support ignores in overrides (#22148) (camc314)
- 5a4414d oxlint/lsp: Support rulesCustomization lsp option (#21858) (Sysix)

Bug Fixes
- 0e207b5 linter: Remove bulk supressions commands from CLI help (#22328) (camc314)
- 7e93bf2 linter/import/no-named-as-default: Avoid same-binding false positive (#22321) (camc314)
- 610f4c7 linter/no-unused-vars: Avoid renaming captured vars (#22310) (camc314)
- 6b50f23 oxlint/cli: Load root config by searching up parent directories (#22272) (Sysix)
- 31a5de7 linter: Rename override ignores to excludeFiles (#22283) (camc314)
- 26d5d7b linter: Add missing vitest/valid-describe-callback functionality (#22279) (camchenry)
- 784530f linter: valid-title: detect String.raw strings (#22271) (Sysix)
- 080d90e linter: Move no-debugger fix to suggestion (#22256) (Sysix)
- 25b7017 linter: Undocument override ignores option (#22213) (camc314)
- 7bb00dd linter: Fix role-has-required-aria-props (#22097) (mehm8128)
- d25279e linter/disable-directives: Improve parsing of names, descriptions (#22184) (camc314)
- a59e447 linter/disable-directives: Ignore invalid enable suffixes (#22179) (camc314)
- aafef0f ci: Disable bulk supression test on big endian (#22175) (camc314)
- 281daec linter/vue/define-props-destructuring: Add only-when-assigned config opt (#22142) (camc314)
- 46ab679 linter/plugins: Trim leading newline for partial sources (#20928) (bab)
- 29ff6d9 linter: Update docs for no_alias_methods rule to be Vitest-specific and add toThrowError alias (#22129) (camchenry)

Performance
- 9414bee linter/role-has-required-aria-props: Avoid intermediate vec (#22212) (camc314)
- 3883ea3 linter/no-useless-escape: Drop unnecessary Vec collect (#22171) (connorshea)
- 42c3029 linter/check-property-names: Replace split-collect-pop-join with rfind (#22172) (connorshea)
- 9551d53 linter: Remove unnecessary Vec collect in CFG edge traversal (#22167) (connorshea)
- 26fa2fc linter/aria-role: Remove unnecessary string allocations in run method (#22168) (connorshea)
- c9ce045 linter/getter-return: Remove unnecessary Vec collect in CFG edge traversal (#22166) (connorshea)
- 72bd846 linter/no-this-in-sfc: Reorder cheap name check, avoid String allocation (#22164) (connorshea)

Documentation
- 4da212a linter/no-unused-vars: Add docs to rename_unused_function_parameter (#22311) (camc314)
- 27c4628 linter/forbid-dom-props: Escape jsx examples in lint rule docs (#22254) (4MBL)
- 3f81147 linter: Improve the react/jsx-key rule docs. (#22162) (connorshea)
- 07f03cc linter/consistent-return: Add note about noImplicitReturns coverage (#22156) (camc314)
- 7c1e049 oxlint/lsp: Improve autogenerated lsp docs (#22154) (Sysix)
- 87b3e38 linter: Update docs to be vitest-specific for consistent-test-it (#22128) (camchenry)
1.63.0 5 de maig del 2026 — 64 bits ZIPARM64 ZIP32 bits ZIP
Notes de la versió
🚀 Features
- 1884833 linter/plugins: Implement SourceCode.getDisableDirectives method (#21029) (Nicolas Le Cam)
- 00f9a9d linter/sort-keys: Support autofix with comments (#22061) (Amund Eggen Svandal)
- 5b9ea93 linter/eslint: Implement require-unicode-regexp rule (#22096) (Mikhail Baev)
- 1d40d60 linter: Implement SARIF formatter (#22067) (camchenry)
- c0982fe linter/eslint: Implement no-restricted-properties rule (#22080) (AJ Bienz)
- 5699d53 linter: Add help text to agent formatter (#22064) (camchenry)
- fe7194d oxlint: Add agent output mode (#21955) (Jovi De Croock)
- fb2f052 linter: Suggest moving shared branch code (#22022) (camc314)
- 5868335 linter/no-else-return: Improve nested if diagnostic spans (#22009) (camc314)
- 8b4829b linter: Split no-negated-condition rule to unicorn & eslint (#21998) (Sysix)
- fea301a linter: Split jest/prefer-to-be into separate vitest rule (#21977) (camchenry)
- 44aa0d6 linter: Split jest/prefer-strict-equal into separate vitest rule (#21976) (camchenry)
- 2262b27 linter: Split jest/prefer-spy-on into separate vitest rule (#21975) (camchenry)
- fef9143 linter: Split jest/prefer-mock-return-shorthand into separate vitest rule (#21974) (camchenry)
- 2bda504 linter: Split jest/prefer-mock-promise-shorthand into separate vitest rule (#21973) (camchenry)
- 6ef6c7d linter: Split jest/prefer-lowercase into separate vitest rule (#21972) (camchenry)
- f4d2498 linter: Split jest/prefer-hooks-on-top into separate vitest rule (#21971) (camchenry)
- fb8e366 linter: Split jest/prefer-hooks-in-order into separate vitest rule (#21970) (camchenry)
- adcd85c linter: Split jest/prefer-expect-resolves into separate vitest rule (#21969) (camchenry)
- 8ddc7ec linter: Split jest/prefer-equality-matcher into separate vitest rule (#21968) (camchenry)
- 46bb1f3 linter: Split jest/prefer-each into separate vitest rule (#21967) (camchenry)
- bdbff66 linter: Implement interactive-supports-focus (#21767) (mehm8128)
- 733b094 linter: Split prefer-to-have-been-called-times rule (#21898) (Said Atrahouch)
- 8804425 linter/eslint: Implement logical-assignment-operators rule (#21900) (Mikhail Baev)
- 296d147 linter: Split jest/prefer-comparison-matcher into separate vitest rule (#21929) (camchenry)
- 38146b6 linter: Split jest/prefer-called-with into separate vitest rule (#21927) (camchenry)
- 6f86175 linter/vue: Implement return-in-computed-property rule (#21909) (bab)
- dc2d0e4 linter: Split jest/no-unneeded-async-expect-function into separate vitest rule (#21878) (camchenry)
- a03fc37 linter: Split jest/no-test-return-statement into separate vitest rule (#21877) (camchenry)
- f11313e linter: Split jest/no-test-prefixes into separate vitest rule (#21876) (camchenry)
- 4380812 linter: Split prefer-to-have-length rule (#21893) (Said Atrahouch)
- 511bcc1 linter: Split jest require-hook rule (#21889) (Said Atrahouch)
- 64a8180 linter: Split jest/prefer-snapshot-hint into a Jest rule and a Vitest rule. (#21881) (connorshea)
- ae7924a linter/vue: Implement no-deprecated-model-definition rule (#21886) (bab)
- 0dfe8b3 linter: Split jest/require-to-throw-message into Jest and Vitest rules. (#21879) (connorshea)
- 51229ff linter: Split jest valid-describe-callback rule (#21882) (Said Atrahouch)
- 2d102fd linter: Split no-standalone-expect rule into jest and vitest (#21862) (Sysix)
- ee46a29 linter: Split no-restricted-matchers rule into jest and vitest (#21860) (Sysix)
- 1f29459 linter: Split no-restricted-jest-methods rule into jest and vitest (#21859) (Sysix)
- e7f8d55 linter: Remove eslint prefixes from plugin names in diagnostics (#21806) (Connor Shea)
- 89fff8b linter: Split valid-expect-in-promise/jest rule into jest and vitest rules (#21854) (Said Atrahouch)

🐛 Bug Fixes
- 7c9bf88 linter/no-single-promise-in-promise-methods: Avoid unused array fix (#22116) (camc314)
- 0b48848 linter/prefer-array-some: Make find rewrite a suggestion (#22103) (camc314)
- d24027e linter/prefer-array-some: Preserve find comparison fixes (#22094)
1.62.0 27 d’abril del 2026 — 64 bits ZIPARM64 ZIP32 bits ZIP
Notes de la versió
💥 BREAKING CHANGES
- 502e804 ast: [BREAKING] Reduce size of TSTypePredicateName (#21711) (overlookmotel)
- 5651539 ast: [BREAKING] Reduce size of JSXExpression (#21710) (overlookmotel)
- c44e280 ast: [BREAKING] Reduce size of ArrayExpressionElement (#21709) (overlookmotel)

🚀 Features
- 0c0e741 linter: Implemented prefer-expect-assertions in Vitest and Jest (#21488) (Said Atrahouch)
- e37cfc4 oxfmt/lsp: Format files outside workspace folders (#21481) (Sysix)
- b4acdbd linter/vue: Implement no-deprecated-delete-set rule (#21766) (bab)
- 613bfef linter: Split jest/prefer-to-contain into a jest and a vitest rule. (#21821) (connorshea)
- c629719 linter/vue: Implement no-deprecated-events-api rule (#21793) (Alex Peshkov)
- f2a8528 linter: Split jest/require-top-level-describe rule into a Jest and a Vitest rule. (#21822) (connorshea)
- ea4b358 linter: Split jest/prefer-todo into a shared rule and a vitest-specific rule. (#21820) (connorshea)
- 3a66819 linter: Split jest/no-mocks-import into vitest/no-mocks-import (#21818) (camchenry)
- 0b3ffce linter: Split jest/no-large-snapshots into vitest/no-large-snapshots (#21814) (camchenry)
- d1cf22e linter: Split jest/no-interpolation-in-snapshots into vitest/no-interpolation-in-snapshots (#21812) (camchenry)
- bb0c359 linter: Split jest/no-identical-title into vitest/no-identical-title (#21810) (camchenry)
- c26ea41 linter: Split jest/no-hooks into vitest/no-hooks (#21809) (camchenry)
- 46b32f2 linter: Split jest/no-focused-tests into vitest/no-focused-tests (#21804) (camchenry)
- acf41a8 linter: Split jest/no-duplicate-hooks into vitest/no-duplicate-hooks (#21803) (camchenry)
- 54d787f linter: Split jest/no-disabled-tests into vitest/no-disabled-tests (#21802) (camchenry)
- 9c9a676 linter/vue: Implement no-deprecated-data-object-declaration rule (#21764) (bab)
- 4445855 linter: Split jest/no-conditional-in-test into vitest/no-conditional-in-test (#21763) (camchenry)
- b8604de linter: Split jest/no-conditional-expect into vitest/no-conditional-expect (#21762) (camchenry)
- 0dbd650 linter: Split jest/no-commented-out-tests into vitest/no-commented-out-tests (#21761) (camchenry)
- 7f1a97c linter: Split jest/no-alias-methods into vitest/no-alias-methods (#21760) (camchenry)
- eb97c49 linter: Split jest/max-nested-describe into vitest/max-nested-describe (#21759) (camchenry)
- d870cad linter: Split jest/max-expects into vitest/max-expects (#21758) (camchenry)
- 1b97124 linter/vue: Implement no-deprecated-vue-config-keycodes rule (#21699) (bab)
- 5f81883 linter/eslint: Implement func-name-matching rule (#21708) (Mikhail Baev)
- 348f46c linter: Add respectEslintDisableDirectives option (#21384) (Christian Vuerings)
- 63ec351 linter: Support nested vite+ config discovery (#21638) (camc314)
- 560feb4 linter: Introduce Vite variant to DiscoveredConfigFile (#21637) (camc314)
- 07dc41e linter/eslint: Implement no-underscore-dangle rule (#21630) (Paul-Arthur THIERY)
- e270d54 linter/react: Impl react/no-did-update-set-state (#17322) (Kenzo Wada)
- ca81199 linter/react: Implement forbid-component-props rule (#20005) (Mikhail Baev)
- 6776403 linter/branches-sharing-code: Move rule from nursery to pedantic (#21621) (camc314)
- ce7a4dc linter/no-unreachable: Move rule from nursery to correctness (#21618) (camc314)
- e3b5e78 linter/getter-return: Move rule from nursery to correctness (#21617) (camc314)
- d3a7e9a linter/unicorn: Implement suggestion for no-useless-iterator-to-array rule (#21610) (Mikhail Baev)
- a0c883c oxlint/lsp: Add vite plus version to server info (#21587) (Sysix)
- 67ff860 linter/no-unknown-property: Support React 19 precedence prop (#21590) (João Pedro Schmitz)

🐛 Bug Fixes
- b6dcc22 linter/valid-expect: Allow string message in Vitest valid-expect (#18975) (Cédric Exbrayat)
- cff9277 linter/valid-expect: Clarify fixer suggestion messages (#21839) (camc314)
- aace797 linter: Detect Svelte TS and module scripts correctly (#20819) (mustafa0x)
- 3612db1 linter/prefer-default-parameters
1.61.0 20 d’abril del 2026 — 64 bits ZIPARM64 ZIP32 bits ZIP
Notes de la versió
Table of Contents
- Oxlint v1.61.0
- Oxfmt v0.46.0

Oxlint v1.61.0

💥 BREAKING CHANGES
- 24fb7eb allocator: [BREAKING] Rename Box and Vec methods (#21395) (overlookmotel)

🚀 Features
- 38d8090 linter/jest: Implemented jest version settings in config file. (#21522) (Said Atrahouch)
- 7dbbb99 linter/eslint: Implement suggestion for no-case-declarations rule (#21508) (Mikhail Baev)
- 9b4d9f6 linter/prefer-template: Implement autofix (#21502) (François)
- daa64ed linter/no-empty-pattern: Add allowObjectPatternsAsParameters option (#21474) (camc314)
- cf2d281 linter/typescript: Implement explicit-member-accessibility (#21447) (Hunter Tunnicliff)
- d48de6f linter/unicorn: Add help messages to 3 rule diagnostics (#21459) (Mukunda Rao Katta)
- cffdc2e linter: Backfill rule version metadata (#21391) (Old Autumn)

🐛 Bug Fixes
- 96ede2c linter/no-useless-assignment: Preserve conditional self-reads (#21582) (camc314)
- 1e69b91 linter/no-useless-assignment: Improve diagnostic spans (#21581) (camc314)
- f272594 linter/plugins: Align RuleMeta.replacedBy type with ESLint (#21544) (bab)
- 4d57851 linter/eslint: Enhance no-empty-function rule to support async and generator functions in VariableDeclarator (#21542) (Mikhail Baev)
- 00fc136 codegen: Preserve coverage comments before object properties (#21312) (bab)
- a56b7b9 oxlint: Dont enable gitlab formatter by default (#21501) (camc314)
- 9c9b6a2 linter/array-callback-return: Ignore non-exit CFG dead ends (#21497) (camc314)
- 61088e0 linter/unicorn: Handle computed property access in prefer-dom-node-remove rule (#21470) (Mikhail Baev)
- eab5934 linter: Report an error on unsupported extends values (#21406) (John Costa)
- 3289ba0 linter/valid-expect-in-promise: Check a jest fn to be test instead of describe (#21422) (Said Atrahouch)
- 4417fe3 linter/prefer-ending-with-an-expect: Ignore vi.mock factory callbacks (#21414) (Cédric Exbrayat)
- a904883 linter/consistent-type-imports: Ignore vue/svelte/astro files (#21415) (bab)
- 2498fe6 linter/no-unused-vars: Allow segments of dotted namespace declarations (#21416) (bab)
- 44b5b35 linter: Preserve vitest-compatible jest rules when applying overrides (#21389) (Cameron)
- 7bd8331 linter/prefer-ending-with-an-expect: Add missing version docs (#21390) (Said Atrahouch)
- 43d8f0d linter/no-useless-assignment: Ignore writes read by closures (#21380) (camc314)

📚 Documentation
- c1eeae3 linter: Add version to rule.json (#21547) (camchenry)
- 0ec6ab2 linter: Improve the vitest/no-importing-vitest-globals rule documentation. (#21557) (connorshea)

Oxfmt v0.46.0

💥 BREAKING CHANGES
- 24fb7eb allocator: [BREAKING] Rename Box and Vec methods (#21395) (overlookmotel)

🚀 Features
- 5aa7fe1 oxfmt: Add --disable-nested-config CLI flag (#21514) (leaysgur)
- b5cb8d1 oxfmt: Update prettier to 3.8.3 (#21451) (leaysgur)
- 16713d5 oxfmt/cli: Support per-directory config (#21103) (leaysgur)
- 952de06 oxfmt/lsp: Support per-directory config (#21081) (leaysgur)

🐛 Bug Fixes
- a501a53 formatter: Handle comments after pipe in single-member union types (#21487) (John Costa)
- 6f49fad oxfmt: Respect nested config.ignorePatterns (#21489) (leaysgur)
- 7c98d52 oxfmt: Do not panic on finding invalid nested config (#21461) (leaysgur)
- 41bb2d5 formatter: Preserve more intrinsic parens (#21449) (leaysgur)
- f894750 formatter: Preserve parens around intrinsic in type alias annotation (#21410) (Dunqing)

⚡ Performance
- df27b48 oxfmt: Skip ancestors check when no nested config found (#21517) (leaysgur)
- 5e1522a oxfmt: Do not occupy the rayon thread solely for handover (#21408) (leaysgur)
1.60.0 13 d’abril del 2026 — 64 bits ZIPARM64 ZIP32 bits ZIP
Notes de la versió
Table of Contents
- Oxlint v1.60.0
- Oxfmt v0.45.0

Oxlint v1.60.0

💥 BREAKING CHANGES
- 382958a span: [BREAKING] Remove re-exports of string types from oxc_span crate (#21246) (overlookmotel)
- c4aedfa str: [BREAKING] Add static_ident! macro (#21245) (overlookmotel)
- 7354f3c linter: [BREAKING] Error on no matched files (#21144) (camc314)

🚀 Features
- 94a32b9 linter/jest: Share common pattern expect functions (#21376) (Said Atrahouch)
- bab5c31 linter/jest: Implement prefer-ending-with-an-expect rule (#21372) (Said Atrahouch)
- 91f2c79 linter/eslint-jest-plugin: Implemented prefer-importing-jest-globals rule (#21303) (Said Atrahouch)
- a02f32c linter: Add release version for existing rules (#21363) (camchenry)
- b9e93da linter: Allow tagging rules with release version (#21362) (camchenry)
- f99ecda oxlint: Gate vite.config.ts recognition behind VP_VERSION env var (#21298) (leaysgur)
- cf459d3 linter: Implement suggestion for no-empty-function rule (#21347) (Mikhail Baev)
- 7213d61 linter: Adding pending suggestions fix to valid_expect rules. (#21249) (Said Atrahouch)
- ae45312 linter: Introduce --type-check-only flag (#21184) (camc314)
- 1ce8b90 linter: Implemented valid-expect-in-promise vitest and jest rule (#21170) (Said Atrahouch)
- 39f7fda linter: Add auto-fix to unicorn/prefer-default-parameters (#21166) (yefan)
- 15574bc linter/unicorn: Implement consistent-template-literal-escape (#21126) (AliceLanniste)
- c5c8c03 linter/prefer-readonly-parameter-types: Move rule from nursery to pedantic (#21114) (camc314)
- 1893be1 linter/no-useless-default-assignment: Move rule from nursery to correctness (#21113) (camc314)
- 5462ff9 linter/strict-void-return: Move rule from nursery to pedantic (#21115) (camc314)
- c2989bd linter/no-unnecessary-type-parameters: Move rule from nursery to suspicious (#21112) (camc314)
- 79d339a linter/no-unnecessary-qualifier: Move rule from nursery to style (#21111) (camc314)

🐛 Bug Fixes
- b577efc linter/unicorn: Handle optional chaining in prefer-array-flat and no-invalid-remove-event-listener (#21299) (Mikhail Baev)
- 5e55735 oxlint/lsp: Skip .git directories in LSP walkers (#21316) (camc314)
- ec7f6ed oxlint, oxfmt: Apply check_for_writer_error to .flush() (#21343) (Craig Morrison)
- a17a08a linter/no-useless-assignment: Handle continue edges in loop analysis (#21358) (camc314)
- a0eac12 linter/array-type: Move match to first stmt (#21357) (camc314)
- 1b3abc3 linter: Exclude boundary tokens from JSXText whitespace check in isSpaceBetweenTokens (#21313) (bab)
- ecbcf5e linter: More info to summary output for GitHub formatter (#21330) (Théo LUDWIG)
- a0a8c62 linter/no-fallthrough: Check from start of switch case for empty lines (#21324) (Josh Cartmell)
- 36f0bc4 linter/no-cycle: Report all cyclic dependencies inside a file (#21259) (camc314)
- 3f80536 linter: Ignore regex flags other than g/u/v in prefer-string-replace-all (#21203) (bab)
- f21d3aa linter/unicorn: Report on optional in require-number-to-fixed-digits-argument rule (#21207) (Mikhail Baev)
- af8e122 linter: Render each config error as a separate diagnostic (#21120) (bab)
- a950f55 linter/unicorn: Do not report on optionals in no-single-promise-in-promise-methods (#21157) (Mikhail Baev)
- 472f8ee linter: Mark complete comment for unused disable directives + lsp fix (#21092) (copilot-swe-agent)
- edd0865 linter/no-array-index-key: False positive when index is inside an expression within a template literal (#21123) (bab)
- 7e8d520 linter/unicorn: Report on optional foo?.postMessage in require-post-message-target-origin rule (#21104) (Mikhail Baev)

⚡ Performance
- addcd02 napi/parser, linter/plugins: Raw transfer deserializer for Vecs use shift instead of multiply where possible (#21142) (overlookmotel)
- 3068ded napi/parser, linter/plugins: Shift before add when calculating positions in raw transfer deserializer (#21141) (overlookmotel)
- eb400b8 napi/parser, linter/plugins: Remove uint32 buffer view (#21140) (overlookmotel)
- 7a8661
1.59.0 7 d’abril del 2026 — 64 bits ZIPARM64 ZIP32 bits ZIP
Notes de la versió
Table of Contents
- Oxlint v1.59.0
- Oxfmt v0.44.0

Oxlint v1.59.0

💥 BREAKING CHANGES
- 22ce6af oxlint/lsp: [BREAKING] Show/fix safe suggestions by default (#19816) (Sysix)

🚀 Features
- 7a7b7b8 oxlint/lsp: Add source.fixAllDangerous.oxc code action kind (#20526) (bab)
- 9cfe57e linter/unicorn: Implement prefer-import-meta-properties rule (#20662) (Irfan - ئىرفان)
- 1edb391 linter/eslint: Implement no-restricted-exports rule (#20592) (Nicolas Le Cam)
- 0f12bcd linter/react: Implement hook-use-state rule (#20986) (Khaled Labeb)
- 1513a9f oxlint/lsp: Show note field for lsp diagnostic (#20983) (Sysix)
- 7fdf722 linter/unicorn: Implement no-useless-iterator-to-array rule (#20945) (Mikhail Baev)
- 39c8f2c linter/jest: Implement padding-around-after-all-blocks (#21034) (Sapphire)
- ac39e51 linter/eslint-vitest-plugin: Prefer importing vitest globals (#20960) (Said Atrahouch)
- 0b84de1 oxlint: Support allow option for prefer-promise-reject-errors (#20934) (camc314)
- 23db851 linter/consistent-return: Move rule from nursery to suspicious (#20920) (camc314)
- 9a27e32 linter/no-unnecessary-type-conversion: Move rule from nursery to suspicious (#20919) (camc314)
- 1ca7b58 linter/dot-notation: Move rule from nursery to style (#20918) (camc314)
- 73ba81a linter/consistent-type-exports: Move rule from nursery to style (#20917) (camc314)
- b9199b1 linter/unicorn: Implement switch-case-break-position (#20872) (Mikhail Baev)
- 3435ff8 linter: Implements prefer-snapshot-hint rule in Jest and Vitest (#20870) (Said Atrahouch)
- 98510d2 linter: Implement react/prefer-function-component (#19652) (Connor Shea)
- 871f9d9 linter: Implement no-useless-assignment (#15466) (Zhaoting Zhou)
- 0f01fbd linter: Implement eslint/object-shorthand (#17688) (yue)

🐛 Bug Fixes
- 8be4de7 linter/unicorn: Do not report on optionals in prefer-array-flat-map (#21082) (Mikhail Baev)
- dd2df87 npm: Export package.json for oxlint and oxfmt (#20784) (kazuya kawaguchi)
- 9bc77dd linter/no-unused-private-class-members: False positive with await expr (#21067) (camc314)
- 60a57cd linter/const-comparisons: Detect equality contradictions (#21065) (camc314)
- 2bb2be2 linter/no-array-index-key: False positive when index is passed as function argument (#21012) (bab)
- 6492953 linter/no-this-in-sfc: Only flag this used as member expression object (#20961) (bab)
- 9446dcc oxlint/lsp: Skip node_modules in oxlint config walker (#21004) (copilot-swe-agent)
- af89923 linter/no-namespace: Support glob pattern matching against basename (#21031) (bab)
- 64a1a7e oxlint: Don't search for nested config outside base config (#21051) (Sysix)
- 3b953bc linter/button-has-type: Ignore document.createElement calls (#21008) (Said Atrahouch)
- 8c36070 linter/unicorn: Add support for Array.from() for prefer-set-size rule (#21016) (Mikhail Baev)
- c1a48f0 linter: Detect vitest import from vite-plus/test (#20976) (Said Atrahouch)
- 5c32fd1 lsp: Prevent corrupted autofix output from overlapping text edits (#19793) (Peter Wagenet)
- ca79960 linter/no-array-index-key: Move span to key property (#20947) (camc314)
- 2098274 linter: Add suggestion for jest/prefer-equality-matcher (#20925) (eryue0220)
- 6eb77ec linter: Allow default-import barrels in import/named (#20757) (Bazyli Brzóska)
- 9c218ef linter/eslint-vitest-plugin: Remove pending fix status for require-local-test-context-for-concurrent-snapshot (#20890) (Said Atrahouch)

⚡ Performance
- fb52383 napi/parser, linter/plugins: Clear buffers and source texts earlier (#21025) (overlookmotel)
- 3b7dec4 napi/parser, linter/plugins: Use utf8Slice for decoding UTF-8 strings (#21022) (overlookmotel)
- 012c924 napi/parser, linter/plugins: Speed up decoding strings in raw transfer (#21021) (overlookmotel)
- 55e1e9b napi/parser, linter/plugins: Initialize vars as 0 (#21020) (overlookmotel)
- c25ef02 napi/parser, linter/plugins: Simplify branch condition in deserializeStr (#21019) (overlookmotel)
- 9f494c3 napi/parser, linter/plugins: Raw transfer use String.f
1.58.0 31 de març del 2026 — 64 bits ZIPARM64 ZIP32 bits ZIP
Notes de la versió
Table of Contents
- Oxlint v1.58.0
- Oxfmt v0.43.0

Oxlint v1.58.0

💥 BREAKING CHANGES
- c0ebbce linter: [BREAKING] Report error on unknown builtin rule (#20464) (camc314)

🚀 Features
- 04f85e5 linter/no-unused-vars: Add safe-fix option for import fixes (#20839) (Marcell Toth)
- 32a3706 linter/eslint-vitest-plugin: Implements require-test-timeout rule (#20806) (Said Atrahouch)
- ae03653 linter: Implement suggestion for eslint/no-useless-computed-key rule (#20805) (Mikhail Baev)
- 6624513 linter/prefer-string-starts-ends-with: Move rule from nursery to style (#20797) (camc314)
- 58941f8 linter/prefer-readonly: Move rule from nursery to style (#20796) (camc314)
- 8837ffd linter/prefer-regexp-exec: Move rule from nursery to style (#20795) (camc314)
- 7e88871 linter/prefer-find: Move rule out of nursery (#20794) (camc314)
- ca6e5bc linter/vitest: Implement prefer-called-exactly-once-with (#17562) (Said Atrahouch)
- e80c0bf linter/eslint-plugin-vitest: Implement require-mock-type-parameters (#20785) (Said Atrahouch)
- cec8b8f linter/vitest: Implement require-awaited-expect-poll rule (#20702) (Said Atrahouch)
- d8e9d01 linter/eslint-plugin-vitest: Set prefer-to-have-been-called-times compatible with jest (#20703) (Said Atrahouch)
- caf8231 linter: Enhance import plugin diagnostics with help messages (#20766) (离谱)
- f44adfa linter: Improve the oxlint config generated by --init. (#20632) (connorshea)
- 43f4827 linter: Add help text to jest and promise diagnostics (#20640) (kszongic)
- 16516de linter: Enhance types for DummyRule (#20751) (camc314)
- 27374e8 linter: Add hint about node version when ts config fail to import (#20570) (camc314)
- 8e34150 linter/eslint-plugin-vitest: Sync rule with JS implementation (#20679) (Said Atrahouch)

🐛 Bug Fixes
- df057d5 linter/no-noninteractive-tabindex: Add missing composite widget … (#20860) (bab)
- bb34073 linter: Mark vitest/valid-title as a compatible jest rules (#20463) (Nicolas Le Cam)
- bd2c76b linter: Handle shadowed locals in no-restricted-globals (#20811) (Ulrich Stark)
- 62e39be linter: Sort nested object keys in fix of eslint/sort-keys in one pass (#20838) (Ulrich Stark)
- 3ef37da oxlint/lsp: Error on unknown command (#20841) (Sysix)
- ab1070d oxlint/cli: Skip parsing base config again for nested config search (#20809) (Sysix)
- 2be3728 oxlint/lsp: Skip parsing base config again for nested config search (#20808) (Sysix)
- 6171217 oxlint: Respect NO_COLOR env for format=stylish (#20804) (Sysix)
- d89ae8f linter/plugins: Patch WeakMap to emulate WeakMaps keyed by sourceCode (#20799) (overlookmotel)
- c610666 linter/no-shadow: Respect env settings when builtinGlobals is enabled (#20429) (vvnikita74)
- 6bb502f linter/no-invalid-void-type: Allow void generic args in heritage clauses (#20780) (camc314)
- 365bb7d linter: Skip typed nested literals in explicit-module-boundary-types (#20776) (camc314)
- 0aa1ff0 linter/plugins: Ensure after hook is always called in ESLint compat mode (#20721) (overlookmotel)
- 31145a9 linter/plugins: Fire after hook after CFG events in ESLint compat (#20720) (overlookmotel)
- c09a5ab diagnostics: Skip minified fallback for single-line reporters (#20716) (camc314)
- e4dc9a1 linter: Isolate --init config writes from parallel tests (#20717) (camc314)
- 7e394ec linter: Clarify empty replacement fixer help text (#20698) (camc314)
- d15a99c linter/jsx-curly-brace-presence: Flag empty string literals (#20690) (camc314)

📚 Documentation
- c722495 linter: Update JS Plugins + LS references (#20843) (camc314)
- e1f9748 linter/jsdoc/require-property: Fix typo (#20792) (Benjaming61001)
- be3dcc1 linter: Add note about node version + custom TS plugin (#19381) (camc314)

Oxfmt v0.43.0

🚀 Features
- 6ef440a oxfmt: Support bool for object style options (#20853) (leaysgur)
- 23050fa oxfmt: Support markdown-in-js substitution (#20683) (leaysgur)
- 4087295 oxfmt: Support angular-in-js substitution (#20676) (leaysgur)
1.57.0 24 de març del 2026 — 64 bits ZIPARM64 ZIP32 bits ZIP
Notes de la versió
Table of Contents
- Oxlint v1.57.0
- Oxfmt v0.42.0

Oxlint v1.57.0

🚀 Features
- 2244984 linter: Implement vitest/prefer-strict-boolean-matchers rule (#20603) (Mikhail Baev)
- c5f0ed3 linter/array-callback-return: Use CFG for analysis (#20498) (camc314)
- f9a63ca linter: Implement unicorn/custom-error-definition rule (#20520) (Mikhail Baev)

🐛 Bug Fixes
- 5e893d7 jsdoc: Parse tags after interval notation in descriptions (#20046) (camc314)
- 532c921 linter/plugins: Include loc when call JSON.stringify on Tokens and Comments (#20512) (overlookmotel)
- c3d9e91 linter/plugins: Fix memory leak in tokens and comments (#20477) (overlookmotel)
- 525c398 linter: Detect no-cycle with auto-discovered tsconfig paths (#20566) (camc314)
- 9519380 linter/no-noninteractive-tabindex: Handle numeric tabIndex values on non-interactive elements (#20538) (camc314)
- 04c84bb linter: Fix cloning on Windows by reducing the size of a problematic snapshot filename. (#20511) (connorshea)
- 65a7c3c linter/hex-escape: False positive for String.raw (#20497) (camc314)
- d3cdc82 linter/escape-case: False positive for String.raw (#20496) (camc314)
- 50d59e9 linter/explicit-function-return-type: False negative with HOF detection (#20495) (camc314)
- d78c55d linter/no-unused-vars: Handle loop-carried self-reassignments (#20457) (camc314)
- 6a307d1 linter/explicit-module-boundary-types: Fix false positives for satisfies-wrapped members (#20439) (camc314)
- 0c57312 tsgolint: Use primary span for the disable directive (#20436) (camc314)
- 4791b2e linter: Add summary output to GitHub formatter (#20404) (Hideyasu-Ozawa)

⚡ Performance
- 30891bd linter/plugins: Share empty Uint32Array across multiple places (#20509) (overlookmotel)
- 336f7f7 linter/plugins: Faster conversion of span to Location (#20507) (overlookmotel)
- a187333 linter/plugins: Reuse descriptor objects for Object.defineProperty calls (#20505) (overlookmotel)
- 5984a66 linter/plugins: Recycle Location objects (#20491) (overlookmotel)
- 8729614 linter/plugins: Reduce operations in binary search (#20490) (overlookmotel)
- 9cfc312 linter/plugins: Reduce allocations for tokens and comments with accessed loc (#20480) (overlookmotel)
- 9c7a267 linter/plugins: Reduce allocations for regex tokens (#20479) (overlookmotel)
- 4ee80ac linter/plugins: Remove bounds checks on regex tokens (#20478) (overlookmotel)
- 4a22f60 linter/plugins: Remove regex from getCommentsBefore + getCommentsAfter (#20475) (overlookmotel)
- 9a622c7 linter/plugins: Lazy deserialize tokens and comments (#20474) (overlookmotel)
- c6ea0a0 ast: Place NodeId field after Span in structs (#20584) (overlookmotel)
- d176ecc napi/parser, oxlint/plugins: Shorten deserializer for WithClause (#20575) (overlookmotel)
- 57b2e82 linter/no-required-prop-with-default: Restructure so lintgen works (#20537) (camc314)
- 9ddfb42 linter/no-const-assign: Use BindingPattern::get_symbol_ids (#20533) (camc314)

📚 Documentation
- f064f80 linter/plugins: Correct comment about offset to line-column conversion (#20506) (overlookmotel)
- 4047e71 linter/plugins: Improve docs for conformance tests (#20528) (overlookmotel)
- 6022ddb linter: Add note about options to react/jsx_key (#20484) (connorshea)
- 5c104ff linter/curly: Fix incorrect examples code (#20421) (KUAI)

Oxfmt v0.42.0

🚀 Features
- 416865a formatter,oxfmt: Add doc comments for JsdocConfig (#20644) (leaysgur)
- 4fec907 formatter: Add JSDoc comment formatting support (#19828) (Dunqing)
- c21c5a7 oxfmt: Support html-in-js substitution (#20193) (leaysgur)
- c5aeae4 formatter,oxfmt: Support /* LANG */ comment for gql|html-in-js (#20224) (leaysgur)

🐛 Bug Fixes
- 399e629 formatter: Align more trailing comment cases with prettier (#20636) (#20643) (Andreas Lubbe)
- 909fb4d formatter: Remove unnecessary parens around TSConstructorType in arrow function return type (#20573) (bab)
- 828b56a oxfmt: Re-export all nested types (#20636) (leaysgur)
- c1b461b oxfmt/lsp: Revert #19977, prefer file extension over langua
1.56.0 16 de març del 2026 — 64 bits ZIPARM64 ZIP32 bits ZIP
Notes de la versió
Table of Contents
- Oxlint v1.56.0
- Oxfmt v0.41.0
Oxlint v1.56.0
🚀 Features
- c95951f linter/plugins: Implement sourceCode.markVariableAsUsed (#20357) (overlookmotel)
- 7a2a7d0 linter: Implement n/handle-callback-err rule (#19616) (Mikhail Baev)
🐛 Bug Fixes
- 89ce30b oxlint,oxfmt: Redirect JS stdout to stderr for LSP (#20321) (leaysgur)
- f8fbd6e linter/plugins: Remove hashbang property from AST (#20365) (overlookmotel)
- 6eb5b01 linter/prefer-await-to-then: Ignore Promise static methods (#20347) (camc314)
- a4b61f7 linter: Remove defineConfig check (#20308) (camc314)
- 3ad7f53 linter/explicit-module-boundary-types: False positive with satisfies expr (#20309) (camc314)
- f547401 linter/no-unused-private-class-members: Treat switch discriminants as read (#20307) (camc314)
- 1c07b3b diagnostics: Handle WouldBlock in stdout writes to prevent panic (#20295) (Boshen)
⚡ Performance
- e4f7248 linter: Remove unnecessary clone of owned String in drain loop (#20388) (Boshen)
- 4a67f1d linter: Eliminate Vec allocation in disable directive matching (#20387) (Boshen)
- 618a598 linter/plugins: Add fast path for files with no comments (#20366) (overlookmotel)
- b0125c5 linter/plugins: Deserialize comments without AST (#20364) (overlookmotel)
- 9cd612f linter/plugins: Recycle comment objects (#20362) (overlookmotel)
- bf442f8 linter/plugins: Cheaper Token creation (#20360) (overlookmotel)
- 5474d0a semantic: V8-style walk-up reference resolution (#20292) (Boshen)
- 7946eba linter/plugins: Avoid arguments spread and temp array when merging (#20318) (overlookmotel)
- fc7cf8a linter/plugins: Pre-define less CFG merger functions (#20317) (overlookmotel)
- 3b9eb28 linter/plugins: Streamline getting/creating visit fn mergers (#20319) (overlookmotel)
- f04e850 linter/plugins: Inline binary search functions into call sites (#20312) (overlookmotel)
- fe24afe linter/plugins: Apply replace globals TSDown plugin to JS files (#20305) (overlookmotel)
- 77cdacc linter/plugins: Use array buffer views for tokens (#20301) (overlookmotel)
- 910c941 linter/plugins: Reorder branches in getTokenByRangeStart (#20296) (overlookmotel)
- af7674c linter/tokens: Avoid extra token value allocation (#20013) (camc314)
📚 Documentation
- 24490b5 linter: Improve formatting for 80ish rules' docs. (#20411) (connorshea)
- 3383523 linter: Improve --tsconfig flag docs (#20342) (camc314)
Oxfmt v0.41.0
🚀 Features
- d22c443 oxfmt: Export OxfmtConfig type (#20275) (leaysgur)
- a11ecff oxfmt/lsp: Respect angular language id as .component.html file (#20242) (Sysix)
🐛 Bug Fixes
- 89ce30b oxlint,oxfmt: Redirect JS stdout to stderr for LSP (#20321) (leaysgur)
- ce65099 formatter: Preserve parentheses around as expression before private field access (#20419) (bab)
- f908742 oxfmt: Revert #20326 partially (#20413) (leaysgur)
- 4ef93ea formatter: Honor trailing ignore comments after list separators (#19925) (Andreas Lubbe)
- 68fb0d0 oxfmt: Skip vite.config.ts which fails to import (#20326) (leaysgur)
- 88ee826 oxfmt: Handle literalline for script-in-vue (#20130) (leaysgur)
- 1c07b3b diagnostics: Handle WouldBlock in stdout writes to prevent panic (#20295) (Boshen)
1.55.0 12 de març del 2026 — 64 bits ZIPARM64 ZIP32 bits ZIP
Notes de la versió
Table of Contents
- Oxlint v1.55.0
- Oxfmt v0.40.0
Oxlint v1.55.0
🐛 Bug Fixes
- 6b46ce8 oxlint: Ignore inherited root-only options in nested configs (#20291) (camc314)
- bc20217 oxlint,oxfmt: Omit useless | null for Option<T> field from schema (#20273) (leaysgur)
- f26e6ab linter: Make generate-plugin-eslint script work on windows (#20246) (camc314)
📚 Documentation
- e4aa5b5 parser/napi, linter/plugins: Add JSDoc comments to raw transfer constants (#20286) (overlookmotel)
- f339f10 linter/plugins: Promote JS plugins to alpha status (#20281) (overlookmotel)
Oxfmt v0.40.0
🐛 Bug Fixes
- 96f761f oxfmt: Ensure stdin blocking mode is set for non-TTY environments (#20289) (camc314)
- bc20217 oxlint,oxfmt: Omit useless | null for Option<T> field from schema (#20273) (leaysgur)
1.54.0 12 de març del 2026 — 64 bits ZIPARM64 ZIP32 bits ZIP
Notes de la versió
Table of Contents
- Oxlint v1.54.0
- Oxfmt v0.39.0
Oxlint v1.54.0
🐛 Bug Fixes
- 4ea67de oxlint,oxfmt: Skip vite.config.ts exports defineConfig(fn) (#20260) (leaysgur)
- cc89dbf oxlint: Skip vite.config.ts w/o .lint field in auto-discovery (#20255) (leaysgur)
- 89b7ca9 linter/no-duplicate-imports: Only check aggregated exports (#20178) (kennytm)
- 691f556 linter/explicit-module-boundary-types: Ignore constructor callbacks (#20221) (camc314)
⚡ Performance
- d160dca linter/plugins: Reduce array lookups in visitor compilation (#20249) (overlookmotel)
📚 Documentation
- 0c7da4f linter: Fix extra closing brace in example config. (#20253) (connorshea)
- 13606c3 linter/plugins: Update conformance README (#20234) (overlookmotel)
Oxfmt v0.39.0
🐛 Bug Fixes
- 4ea67de oxlint,oxfmt: Skip vite.config.ts exports defineConfig(fn) (#20260) (leaysgur)
- 11a2b45 oxfmt: Skip vite.config.ts w/o .fmt field in auto-discovery (#20254) (leaysgur)
1.51.0 2 de març del 2026 — 64 bits ZIPARM64 ZIP32 bits ZIP
Notes de la versió
Table of Contents
- Oxlint v1.51.0
- Oxfmt v0.36.0
Oxlint v1.51.0
🚀 Features
- 2e0e1d0 linter/no-unused-vars: Add experimental fix mode controls (off|suggestion|fix) (#19774) (camc314)
- f34f6fa linter: Introduce typeCheck config option (#19764) (camc314)
- 694be7d linter: Introduce typeAware as config options (#19614) (camc314)
- 655c38f semantic: Add "did you mean?" suggestions to undefined name errors (#19102) (copilot-swe-agent)
- e97a57e linter/id-length: Use serde to deserialize rule options (#19636) (camc314)
- c4a3677 parser: Report error for initializer in ambient context (#19187) (camc314)
- 346045a linter/id-length: Add checkGeneric option (#19634) (camc314)
🐛 Bug Fixes
- 1b7a937 linter: Correct double-comparisons fix with swapped operands (#19846) (camc314)
- c308857 linter/consistent_type_imports: Add missing help and notes to diagnostics (#19827) (Daniel Osmond)
- 7682e5a linter/plugins: Decode escapes in identifier tokens (#19838) (overlookmotel)
- f368fcd linter/consistent_type_assertions: Add missing with_help and with_note to diagnostics (#19826) (Daniel Osmond)
- 04e6223 npm: Add preferUnplugged for Yarn PnP compatibility (#19829) (Boshen)
- 86d5037 linter: Add help text to no-extend-native, no-useless-backreference (#19733) (Anthony Amaro)
- 50e8eff linter: Add .with_help() to operator-assignment, no-nonoctal-decimal-escape (#19732) (Anthony Amaro)
- 1417bdc linter/no-wrapper-object-types: Add help messages to missing diagnostics (#19771) (Daniel Osmond)
- 0838477 linter/ban_ts_comment: Add help and notes to missing diagnostics (#19781) (Daniel Osmond)
- e8c77cf linter/adjacent_overload_signatures: Add missing diagnostics (#19780) (Daniel Osmond)
- 28834ac linter/ban_types: Add missing help and note to diagnostics (#19782) (Daniel Osmond)
- fd938d3 linter/prefer-enum-initializers: Add help messages to missing diagnostics (#19772) (Daniel Osmond)
- eb928ee linter/no-dynamic-delete: Add help messages to missing diagnostics (#19768) (Daniel Osmond)
- a985666 linter/no-empty-interface: Add help messages to missing diagnostics (#19769) (Daniel Osmond)
- 2dc0ceb linter/no-extra-non-null-assertion: Add help messages to missing diagnostics (#19770) (Daniel Osmond)
- 95d5d66 linter/no-dupe-keys: Handle __proto__ proto setters in (#19762) (camc314)
- 24ff0db linter/exhaustive-deps: False positive for member expressions in IIFEs (#19751) (Dennis Chen)
- 7243a58 linter/no-use-before-define: Honor ignoreTypeReferences when value and type name collisions (#19747) (Dimava)
- eefd818 linter/explicit-module-boundary-types: Add help messages to missing diagnostics (#19736) (Daniel Osmond)
- 0440e9a linter: Add help text to no_control_regex, no_fallthrough, no_param_reassign (#19655) (Anthony Amaro)
- e84cb2f react/display-name: Handle merged type+value context symbols (#19608) (camc314)
- ce7e253 linter/prefer-object-from-entries: Require exact path match in unicorn helper (#19687) (camc314)
- f5694ce estree/tokens: Reverse field order of regex object in tokens (#19679) (overlookmotel)
- b2b7a55 estree/tokens: Generate tokens for files with BOM (#19535) (overlookmotel)
- 0722721 linter/jsx-curly-brace-presence: False positive with prop & mixed quotes (#19674) (camc314)
- 3496acd linter: Enhance diagnostic help messages for eslint rules (#19653) (Anthony Amaro)
- e384e94 linter: Enhance help diagnostic messages for more eslint rules (#19658) (Anthony Amaro)
- a4d5b34 linter: Avoid non-promise catch false positives (#19574) (camc314)
- 5706f38 linter: unicorn/no-array-callback-reference skip Effect.* array-like methods name. (#19633) (Said Atrahouch)
⚡ Performance
- 05ccf9f linter/plugins: Transfer tokens via raw transfer (#19893) (overlookmotel)
- 4b0611a estree/tokens: Introduce ESTreeTokenConfig trait (#19842) (overlookmotel)
- ec88f6a estree/tokens: Serialize tokens while visiting AST (#19726) (overlookmotel)
- d4dcf26 linter/plugins: Remove typescript from bundle (#19531) (overlookmotel)
- 6a6513c linter/plugins: Use Ox
1.50.0 23 de febrer del 2026 — 64 bits ZIPARM64 ZIP32 bits ZIP
Notes de la versió
Table of Contents
- Oxlint v1.50.0
- Oxfmt v0.35.0
Oxlint v1.50.0
🚀 Features
- 46177dd linter: Implement unicorn/prefer-module (#19603) (camc314)
- 42f78bb linter: Implement unicorn/prefer-ternary (#19605) (camc314)
🐛 Bug Fixes
- 43df857 react/exhaustive-deps: Normalize .current callback deps (#19610) (camc314)
- 574f48f linter/no-throw-literal: Close warning block (#19612) (camc314)
- 79fe3b4 linter/prefer-mock-return-shorthand: Avoid unsafe autofixes for call-like returns (#19581) (camc314)
- 85045e8 linter: Check protected members in explicit-module-boundary-types (#19594) (camc314)
- e38115e linter: Catch missing return type on exported arrow/function expressions (#19587) (Peter Wagenet)
- 419d3fd linter: Fix false negatives in typescript/no-require-imports (#19589) (Peter Wagenet)
- 7958b56 linter: Fix syntax error reporting in some output formatters. (#19590) (connorshea)
- 024f51c linter: Add help text to more eslint diagnostics (#19591) (Anthony Amaro)
- a8489a1 linter: Warning eslint/no-throw-literal rule to be deprecated, better use typescript/only-throw-error (#19593) (Said Atrahouch)
- 50fc70d linter/type-aware: Use correct span for disable directives (#19576) (camc314)
- 421a99c linter: Add help guidance to eslint diagnostic messages (#19562) (Anthony Amaro)
- e81364a linter: Add help text to eslint rule diagnostics (#19560) (Anthony Amaro)
- 89b58d0 linter: Add help text to more eslint rule diagnostics (#19561) (Anthony Amaro)
- 74f7833 linter/jest/prefer-mock-return-shorthand: Preserve typed arrow returns (#19556) (camc314)
- bdd6f34 linter: Restrict prefer-import-in-mock to mock calls (#19555) (camc314)
📚 Documentation
- a331993 linter: Improve docs for eslint/radix rule. (#19611) (connorshea)
🛡️ Security
- c67f9dc linter: Update ajv version. (#19613) (connorshea)
Oxfmt v0.35.0
🚀 Features
- 984dc07 oxfmt: Strip "experimental"SortXxx prefix (#19567) (leaysgur)
🐛 Bug Fixes
- d7b63a4 oxfmt: Update API types for sortPackageJsonOptions (#19569) (leaysgur)
1.49.0 19 de febrer del 2026 — 64 bits ZIPARM64 ZIP32 bits ZIP
Notes de la versió
Table of Contents
- Oxlint v1.49.0
- Oxfmt v0.34.0
Oxlint v1.49.0
💥 BREAKING CHANGES
- 4315594 oxlint: [BREAKING] Deprecate "always" and "as-needed" options of the radix rule (#19408) (Sysix)
- d4c7af3 linter: [BREAKING] Remove allowRuleToRunWithoutStrictNullChecksIKnowWhatIAmDoing option (#19451) (camc314)
🚀 Features
- 82ca5c3 linter: Add typescript/dot-notation rule (#19442) (camc314)
- 6db0811 linter: Implement eslint-plugin-vitest/no-importing-vitest-globals (#18694) (Said Atrahouch)
- c7fe8ae linter: Implement eslint-plugin-vitest/prefer-import-in-mock (#17966) (Said Atrahouch)
- 0abb39a linter: Implement eslint-vitest-jest-plugin/prefer-mock-return-shorthand (#18002) (Said Atrahouch)
- 2b95537 linter: Implement n/no-path-concat rule (#19502) (Mikhail Baev)
- 735d0e4 linter: Implement typescript/no-useless-default-assignment (#19488) (camc314)
- 31c3a93 linter: Add typescript/no-unnecessary-type-parameters rule (#19450) (camc314)
- c948090 linter: Add typescript/consistent-return rule (#19449) (camc314)
- 9f87df0 linter: Add typescript/prefer-string-starts-ends-with rule (#19448) (camc314)
- 04536be linter: Add typescript/prefer-regexp-exec rule (#19447) (camc314)
- 56a7feb linter: Add typescript/prefer-readonly rule (#19446) (camc314)
- a1cea63 linter: Add typescript/no-unnecessary-qualifier rule (#19445) (camc314)
- e3144d2 linter: Add typescript/prefer-find rule (#19444) (camc314)
- 13c7408 linter: Add typescript/prefer-readonly-parameter-types rule (#19443) (camc314)
- 9b17d44 linter: Add typescript/strict-void-return rule (#19441) (camc314)
- ed821b4 linter: Add typescript/consistent-type-exports rule (#19440) (camc314)
🐛 Bug Fixes
- daad7bc linter/array-callback-return: Check allowVoid option (#19506) (Said Atrahouch)
- 638cf94 linter: Add help text to eslint rule diagnostics (#19508) (Kyle Tse)
- 79fc6d7 linter: Move no-use-before-define to eslint plugin (#19438) (camc314)
- c832a9f linter: Add onScrollEnd and onScrollEndCapture to react/no-unknown-property. (#19536) (connorshea)
- 999a0db linter: Add help text to symbol-description diagnostics (#19538) (Anthony Amaro)
- f064482 linter: Add help text to eslint rule diagnostics (#19539) (Anthony Amaro)
- fd11073 linter/react/no-unknown-property: Add missing fetchPriority prop (#19525) (João Pedro Schmitz)
- a9bb604 linter/no-shadow: Align initializer shadow handling with typescript-eslint (#19462) (camc314)
- 32e6eb9 linter: Handle typed arrays/array buffers in prefer-spread rule. (#19478) (connorshea)
- e309f84 linter: Handle additional cases in typescript/consistent-generic-constructors rule. (#19477) (connorshea)
- 71db91a linter/array-callback-return: Check fromAsync, update test cases (#19483) (Said Atrahouch)
- 2a12d74 linter: Handle optional chaining in no-array-method-this-argument rule. (#19476) (connorshea)
- f65310b linter: Handle optional chaining in prefer-object-from-entries rule. (#19475) (connorshea)
- 840acf4 linter: Handle optional chain in no-unnecessary-array-flat-depth rule. (#19471) (connorshea)
- 85a19e9 linter: Skip string literal imports in consistent-assert rule. (#19474) (connorshea)
⚡ Performance
- 6155ac4 linter/constructor-super: Use node_id over nodes loop (#19489) (camc314)
- a02496d linter/consistent-index-object-style: Resolve circular type refs semantically (#19490) (camc314)
Oxfmt v0.34.0
🚀 Features
- 652c346 oxfmt/lsp: Support untitled:// schema (#19287) (Sysix)
🐛 Bug Fixes
- 6c61b70 oxfmt: Fix outdated sortImports.groups doc comments (#19513) (leaysgur)
1.48.0 16 de febrer del 2026 — 64 bits ZIPARM64 ZIP32 bits ZIP
Notes de la versió
Table of Contents
- Oxlint v1.48.0
- Oxfmt v0.33.0
Oxlint v1.48.0
💥 BREAKING CHANGES
- 7711821 oxlint: [BREAKING] no-shadow-restricted-names report globalThis by default (#19407) (Sysix)
🚀 Features
- ce1baa0 linter: Implement eslint/no-shadow (#18979) (Víctor Fernández)
- 7a333c1 linter: Support dynamic configs via CLI arguments (#19384) (camc314)
- 1bf569b linter: Implement typescript/unified-signatures (#19375) (camc314)
- 6562a9b linter: Implement typescript/parameter-properties (#19374) (camc314)
- 94d8d74 linter: Implement typescript/no-use-before-define (#19373) (camc314)
- 80b002a linter: Implement fixer for unicorn/no-instanceof-builtins (#19371) (camc314)
- 5c3784b linter: Implement eslint/no-unmodified-loop-condition (#19341) (Vincent R)
- cc00a59 linter/const-comparisons: Improve diagnostics when mixing logical/comparison operators (#19370) (camc314)
- ea2c401 linter: Add support for no constructed context values (#18067) (Jovi De Croock)
- f2440eb linter: Mark eslint/no-return-assign as having no fixer (#19327) (camc314)
- 8588670 linter/unicorn: Implement suggestion for unicorn/no-await-in-promise-methods rule (#19359) (Mikhail Baev)
- f0af965 linter: Move jsx-a11y/no-static-element-interactions rule out of the nursery. (#19355) (connorshea)
- be0ce50 linter/tsgolint: Add support for labeled ranges in tsgolint diagnostics (#19201) (camchenry)
- b5bc900 linter: Implement fixer for unicorn/no-new-buffer (#19326) (camc314)
- 1612932 linter: Add typescript/no-unnecessary-condition (#19130) (camc314)
- 37dc6c5 linter: Implement fixer for unicorn/prefer-includes (#19323) (camc314)
🐛 Bug Fixes
- db7da3b linter: Add a few new DOM props for react/no-unknown-property. (#19414) (connorshea)
- c2b1870 linter: Enforce config options for react/forbid-dom-props rule. (#19387) (connorshea)
- 3d24e44 linter: Honor no-empty-function allow getters/setters for object literals (#19393) (camc314)
- bbced8d linter: Enforce config options for eslint/no-empty-function rule, improve docs. (#19390) (connorshea)
- 6bc8aec linter: Fix the behavior of import/extensions rule for a file that has multiple extensions. (#18919) (connorshea)
- c62a295 linter/img-redundant-alt: Enforce whole-word matching for redundant alt text (#19367) (camc314)
- 98956fe linter/describe-function-title: Skip autofix for type-only imports (#19329) (camc314)
- d96d26d linter/plugins: Provide parser.version (#19364) (overlookmotel)
- 81f0039 linter_codegen: Compute rule IDs relative to previous rule (#19350) (camchenry)
- b7ef0a8 linter/consistent-indexed-object-style: Avoid unsafe Record conversions for mapped types (#19320) (camc314)
📚 Documentation
- 3a6059f linter: Improve docs for eslint/require-await rule. (#19361) (connorshea)
- b069269 linter/plugins: Add comment about deprecated ScopeManager methods (#19363) (overlookmotel)
- 2d8aaf9 linter: Disable formatting for eslint/no-unsafe-negation examples. (#19347) (connorshea)
- fb87806 linter: Ensure that we do not auto-format the docs for unicorn/number-literal-case rule. (#19346) (connorshea)
- 8d3ae27 linter/typescript: Skip docs for deprecated type aware rule options (#19324) (camc314)
Oxfmt v0.33.0
💥 BREAKING CHANGES
- 00135b5 formatter/sort_imports: [BREAKING] Change default groups order (#19427) (leaysgur)
- 9c34f72 formatter/sort_imports: [BREAKING] Report invalid group name with renaming side-effect > side_effect (#19416) (leaysgur)
🚀 Features
- 4baebef formatter/sort_imports: Support { newlinesBetween: bool } inside groups (#19358) (leaysgur)
- d1c2fb6 formatter/sort_imports: Support customGroups attributes(selector and modifiers) (#19356) (leaysgur)
🐛 Bug Fixes
- 47d6a3e formatter: Revert #19399 (#19433) (leaysgur)
- f084ea6 oxfmt: Explicitly pass process.env for the forked process (#19380) (Long Ho)
- 2bc7a14 formatter: Arrow function body incorrectly broken when return type has comment (#19368) (Dunqing)
- 90ec3d2 oxfmt: Update tailwind plugin which fixes crash on non-js file (#19353) (leaysgur)
1.46.0 10 de febrer del 2026 — 64 bits ZIPARM64 ZIP32 bits ZIP
Notes de la versió
Table of Contents
- Oxlint v1.46.0
- Oxfmt v0.31.0
Oxlint v1.46.0
🐛 Bug Fixes
- 5a16f10 oxlint, oxfmt: Update bindings.js files (#19229) (overlookmotel)
- 3ea8f08 jsdoc: Prevent outer JSDoc from applying to nested functions (#19219) (camc314)
- 1b2f354 ci: Add missing riscv64/s390x napi targets for oxfmt and oxlint (#19217) (Cameron)
Oxfmt v0.31.0
🐛 Bug Fixes
- 5a16f10 oxlint, oxfmt: Update bindings.js files (#19229) (overlookmotel)
- 1b2f354 ci: Add missing riscv64/s390x napi targets for oxfmt and oxlint (#19217) (Cameron)
1.43.0 2 de febrer del 2026 — 64 bits ZIPARM64 ZIP
Notes de la versió
Table of Contents
- Oxlint v1.43.0
- Oxfmt v0.28.0
Oxlint v1.43.0
💥 BREAKING CHANGES
- b34a155 linter/plugins: [BREAKING] RuleTester set context.filename to absolute path (#18702) (overlookmotel)
🚀 Features
- 1753209 linter/vscode: Run extension when JS configs are detected (#18832) (camc314)
- c962dd2 linter/lsp: Implement support for oxlint.config.ts (#18826) (camc314)
- da32203 linter: Auto generate oxlint.config.ts types (#18597) (camc314)
- 19b4df7 oxlint: Introduce defineConfig helper (#18596) (camc314)
- ea97231 linter: Implement oxlint.config.ts support (#17563) (camc314)
- 17ca42d linter: Implement react/no-multi-comp rule. (#18794) (connorshea)
- 88f30e0 linter/plugins: Move eslint compatible plugin conversion to eslintCompatPlugin function (#18791) (overlookmotel)
- 2a72794 linter/plugins: RuleTester take cwd property (#18756) (overlookmotel)
- 9f533db linter: Add find_prev_token_within method for token search (#18769) (camc314)
- 772ea70 linter: Introduce load_js_configs napi callback (#18767) (camc314)
- e9690c1 linter: Introduce DiscoveredConfig in preparation for JS configs (#18674) (camc314)
- 558b588 linter/prefer-namespace-keyword: Move to correctness (#18733) (camc314)
- 7a5c268 oxlint/lsp: Support jsPlugins (#17840) (Sysix)
- c07497c linter/prefer-modern-dom-apis: Implement suggestion (#17965) (Mikhail Baev)
- 8531bc9 linter: Implement prefer-const (#18687) (camchenry)
- 8670b18 parser: Error on ambient class accessor implementations (#18592) (camc314)
- 6b8a5ae linter: Add eslint-plugin-import/no-nodejs-modules rule (#18006) (Mikhail Baev)
- 04f400d linter/no-duplicates: Add support for considerQueryString option (#18657) (camc314)
- 3b7f260 linter/consistent-generic-constructor: Implement fixer (#18616) (camc314)
- 794f9e4 linter/prefer-exponentation-operator: Implement suggestion (#18602) (camc314)
- 773d916 linter: eslint/sort_keys ignore leading and trailing spreads in auto-fix (#18485) (Lonami)
- 20d4ede linter: Implement import/no-relative-parent-imports rule (#18513) (Valentin Maerten)
- 0da45ef vscode: Fallback to globally installed oxlint/oxfmt packages (#18007) (Sysix)
🐛 Bug Fixes
- a3417b1 linter/plugins: Clear state when reloading workspace (#18837) (overlookmotel)
- c879992 linter: Error on arrays passed in as config (#18822) (camc314)
- 5c80422 linter/tsdown: Ensure relative path for globals import starts with ./ (#18820) (camc314)
- 7419dfb linter: Remove invalid debug assersion, add test (#18819) (camc314)
- 0ca6269 ci: Fix the repo path normalization logic for tests on Windows. (#18815) (connorshea)
- c7b0a65 linter: Fix config option docs for react/jsx-boolean-value rule. (#18811) (connorshea)
- cce374e linter/prefer-const: Replace entire declaration over just the let kw (#18814) (camc314)
- 41f92d1 linter: Error when given config options for a lint rule that has no config options defined. (#18809) (connorshea)
- 0867a36 linter/consistent-index-object-style: False positive with mapped + generic types (#18801) (camc314)
- 1d34b42 linter: Fix 32 bit build (#18783) (camc314)
- 95df577 linter/plugins: Handle error from destroyWorkspace (#18763) (overlookmotel)
- b3261dc linter: Fix the curly rule config to enforce the shape of the config and emit correct docs (#18743) (connorshea)
- d981978 linter/plugins: Use non-blocking mode when calling destroyWorkspace (#18762) (overlookmotel)
- 3f43d4c linter: Accept bools as valid values for fixable (#18772) (camc314)
- 005910a linter/plugins: Support plugins outside of workspace (#18755) (overlookmotel)
- fd92711 vscode: Use fsPath for workspace mapping (#18728) (Sysix)
- 358b2c1 linter/consistent-generic-constructors: Check bounds when searching for : token (#18745) (connorshea)
- abd0c28 linter/capitalized-comments: Fix generated rule option docs (#18748) (connorshea)
- d90a9f6 linter: Add more tests for prefer-const's fixer and fix its invalid behavior. (#18747) (connorshea)
- f82011b oxlint/lsp: Disable JS plugins support in LSP except in tests
1.42.0 26 de gener del 2026 — 64 bits ZIPARM64 ZIP
Notes de la versió
Table of Contents
- Oxlint v1.42.0
- Oxfmt v0.27.0
Oxlint v1.42.0
💥 BREAKING CHANGES
- 777fc40 ast: [BREAKING] Add Ident type (#18354) (Boshen)
🚀 Features
- 34c3ec3 linter/prefer-logical-operator-over-ternary: Implement fixer (#18545) (camc314)
- 019e0aa linter/valid-typeof: Add suggestions if type is misspelled (#18543) (camchenry)
- 704c8eb linter/use-isnan: Add more specific error message for equality/inequality (#18542) (camchenry)
- 1e99ace linter/use-isnan: Support more indexOf cases and improve diagnostic messages (#18537) (camchenry)
- bffd134 linter/text-encoding-identifier-case: Add withDash option (#18533) (camc314)
- 993fd2b parser: Parse unambiguous await with better error messages (#18480) (Boshen)
- b4b6247 linter/plugins: RuleTester support settings (#18445) (overlookmotel)
- 15d69dc linter: Implement react/display-name rule (#18426) (camchenry)
- 2fbceae linter: Implement rule docs and config support for rules with tuple config options. (#18372) (connorshea)
- 8db0e78 linter/plugins: Handle BOMs (#18376) (overlookmotel)
- 6ac09e2 linter/plugins: Support source text not being at start of buffer (#18375) (overlookmotel)
- fc3c86b linter: Update 125 rules to raise errors when provided with invalid config options. (#18104) (connorshea)
- 2cc6ad2 linter/plugins: Add ecmaFeatures to parserOptions (#18313) (overlookmotel)
🐛 Bug Fixes
- b6a8c1c oxlint/lsp: Clear disable directive entries for file on error (#18501) (Sysix)
- 2acf568 linter/plugins: Keep Infinity in rule default options (#18550) (overlookmotel)
- 332d2ef linter/plugins: Add jsx property to parserOptions.ecmaFeatures (#18549) (overlookmotel)
- 7d9bb1b linter: Update eslint/func-names to error on invalid rule config options, improve docs. (#18510) (connorshea)
- 9c67974 linter: Improve the jsx-a11y/no-noninteractive-tabindex rule to match original rule logic better (#17848) (connorshea)
- 75e7163 vscode: Support json5 for oxfmt (#18502) (Sysix)
- c205b0d ast: Remove ThisExpression from TSModuleReference (#18489) (Boshen)
- c51339a oxlint/lsp: Respect code action source.fixAll as an alias for source.fixAll.oxc (#18366) (Sysix)
- 3c0e9b9 oxlint/lsp: Skip dangerous fixes/suggestions for "fix all" code action and command (#18364) (Sysix)
- c44c093 linter: Fix behavior of unicorn/catch-error-name to match original rule (#18209) (connorshea)
- 9c65aff linter/jsx-a11y: Change no-autofocus autofix to suggestion (#18155) (Ben Lowery)
- 235c820 linter/unicorn: Fix prefer-array-some autofix for .filter().length pattern (#18153) (Ben Lowery)
- a9925dc linter: Mark fixes in unicorn/no-null rule as dangerous. (#18436) (connorshea)
- cee29b4 linter: Remove confusing scope from react/only-export-components rule diagnostics. (#18434) (connorshea)
- aed3669 parser: Parse HTML-like comments in unambiguous mode (#18442) (Boshen)
- b8a371d linter: Fix the path used in the gitlab format output (#18165) (connorshea)
- e046ea6 linter: vue/no-lifecycle-after-await skip looking into arrow functions (#18302) (Sysix)
- a9bfbcf linter: Compatibility issue with DiagnosticData type in ESLint (#18396) (루밀LuMir)
- 10ab424 linter: react/no_array_index_key continue search for other attributes (#18409) (Lonami)
- 9d776d4 linter: Update import/no-cycle rule to error on invalid config options. (#18330) (connorshea)
- c163231 linter: Update eslint/sort-imports to validate options. (#18378) (connorshea)
- 79bbcff linter: Update eslint/func-style to error on invalid configuration options. (#18390) (connorshea)
- b871235 linter/plugins: Fix identifying "use strict" directives in scope analysis (#18402) (overlookmotel)
- 5985141 linter: Update jest/prefer-lowercase-title rule to error on invalid config options. (#18332) (connorshea)
- faca4b5 linter/plugins: Tokenize let, static and yield as Keywords (#18368) (overlookmotel)
- a3914fd linter/plugins: Allow line number passed to report to be 1 over line count (#18341) (overlookmotel)
- 88e0896 linter: Update typescript/no-restricted-types rule t
1.41.0 19 de gener del 2026 — 64 bits ZIPARM64 ZIP
Notes de la versió
Table of Contents
- Oxlint v1.41.0
- Oxfmt v0.26.0
Oxlint v1.41.0
⚡ Performance
- 1a247f1 linter/no-redeclare: Avoid repeated PHF hashmap lookups (#18248) (overlookmotel)
📚 Documentation
- 64459e5 linter: Update a handful of rules that were missing the "Why is this bad?" docs header. (#18263) (connorshea)
- 8a294d5 oxfmt, oxlint: Update logo (#18242) (Dunqing)
Oxfmt v0.26.0
🐛 Bug Fixes
- 864b4ab oxfmt: Use format_config for external_options override (#18252) (leaysgur)
- 90ce4b7 oxfmt: Restore customGroups handling lost (#18243) (leaysgur)
📚 Documentation
- 8a294d5 oxfmt, oxlint: Update logo (#18242) (Dunqing)
1.40.0 19 de gener del 2026 — 64 bits ZIPARM64 ZIP
Notes de la versió
Table of Contents
- Oxlint v1.40.0
- Oxfmt v0.25.0
Oxlint v1.40.0
💥 BREAKING CHANGES
- ba9c750 span: [BREAKING] Use ModuleKind::CommonJS for .cjs and .cts file extensions (#18117) (Boshen)
- 3a0a190 linter/plugins: [BREAKING] Prevent access to cwd in createOnce (#18081) (overlookmotel)
- 9135b0b ast: [BREAKING] Move scope from TSEnumDeclaration to TSEnumBody (#18058) (Boshen)
🚀 Features
- 7c86fc3 linter/plugins: Support commonjs source type in RuleTester (#18198) (overlookmotel)
- 6e8fa80 napi/parser, napi/transform: Accept sourceType: "commonjs" (#18197) (overlookmotel)
- 66b8c02 parser: Implement unambiguous module parsing for JS/TS files (#18124) (Boshen)
- 08dad63 span: Add sourceType: 'commonjs' support (#18089) (Boshen)
- b516088 linter: Implement rule option validation/error handling for jest/no-hooks and eslint/no-return-assign rules. (#17600) (connorshea)
- 883f472 vscode: Change icon source (#17998) (Alexander Lichter)
- e7631dd website: Update website generation flow for JSON rules output (#17973) (connorshea)
- 1757251 linter: Update linter JSON rule output to include extra information. (#15763) (connorshea)
- 1f3cdcd linter/no-useless-rename: Add automatic fix (#17951) (camchenry)
- fe1444c linter/no-unused-vars: Improve fixer for unused imports (#17941) (camc314)
- 251f301 linter/fixer: Expose find_next_token_within in fixer (#17942) (camc314)
- f04aa60 linter/fixer: Expose find_next_token_from in fixer (#17940) (camc314)
🐛 Bug Fixes
- 4d68448 linter/plugins: report accept out of range column indexes in loc (#18199) (overlookmotel)
- a0b3721 linter: Move typescript/prefer-optional-chain to nursery for now. (#18147) (connorshea)
- 8a2dabc linter/plugins: Rule tester default to module source type in ESLint compat mode (#18195) (overlookmotel)
- a7e2eb2 vscode: Resolve binary paths with node resolver (#17970) (Sysix)
- 5f98e1a linter: Update react/jsx-max-depth to raise an error if provided invalid config options. (#18105) (connorshea)
- c7e7008 linter: Raise errors for invalid config on eslint/prefer-promise-reject-errors rule (#18103) (connorshea)
- 618c629 linter/rules-of-hooks: Detect hook calls inside JSX render props (#17980) (LeeKangbok)
- 121a239 linter: Sort paths by length instead of alphabetically for depth heuristic (#18084) (Boshen)
- 6956543 linter: Fix LSP panic from stale directive spans (#18082) (Boshen)
- 2aae4fc linter: Fix stack overflow in no-unreachable rule on large files (#18077) (Boshen)
- 7a0ca99 linter/plugins: Use correct ScriptKind for tokens (#17185) (Peter Wagenet)
- 2a397f8 oxlint/lsp: Don't send workspace/diagnostic/refresh notification on watched file changes (#17885) (Sysix)
- 8deef41 linter/prefer-destructuring: Fix rule to exclude using and await using (#17952) (camchenry)
- dbe06d8 linter/no-promise-executor-return: Check if Promise is the global one (#17949) (camchenry)
- ad02e03 linter/no-await-in-loop: Add support for await using (#17947) (camchenry)
- 63e2737 linter/no-import-node-test: Mark fixer as suggestion (#17925) (camc314)
📚 Documentation
- 4afa5c8 linter: Cleanup docs for various rules for consistency. (#18214) (connorshea)
- c1c152b linter: Fix formatting for empty-brace-spaces rule example. (#18203) (connorshea)
- 7028745 linter: Fix formatting of JSON examples in filename-case rule docs. (#18202) (connorshea)
- 926b7be linter: Fix a mistake in the documentation for prefer-ts-expect-error (#18201) (connorshea)
- d51cb6c linter/plugins: Remove outdated comments (#18194) (overlookmotel)
- 85a846c linter: Prefer enum docs over struct field docs for no-unused-vars (#18123) (Boshen)
- d8f5c66 vcode: Add example for editor.formatOnSave with editor.formatOnSaveMode (#18126) (Sysix)
- 5346fc9 editor: Update the README for the vscode extension to clarify experimental setting (#18048) (Connor Shea)
- c2173a7 linter: Minor typo fix for nextjs rules. (#18018) (connorshea)
- 132cc48 linter: Improve prefer-spread docs. (#17976) (connorshea)
Oxfmt v0.25.0
🚀 Features
- a95b9b
1.39.0 12 de gener del 2026 — 64 bits ZIPARM64 ZIP
Notes de la versió
Table of Contents
- Oxlint v1.39.0
- Oxfmt v0.24.0
Oxlint v1.39.0
🚀 Features
- 9699a1b linter/prefer-global-this: Add suggestion (#17873) (Mikhail Baev)
- 51c2815 linter/no-invalid-regexp: Add labels and help text to flag diagnostics (#17865) (camchenry)
- 344d77d linter/no-ex-assign: Improve diagnostic with more detail (#17864) (camchenry)
- 7d280e0 linter: Add fixer for unicorn/no-useless-error-capture-stack-trace rule (#17839) (Mikhail Baev)
- af1d0e3 linter/prefer-optional-chain: Add rule (#17831) (camc314)
- e3c4108 vscode: Add more supported languages to extension (#17812) (Alexander Lichter)
- 4a46678 vscode: Activate extension on more languages (#17717) (Sysix)
- b1298fc vscode: Sync formatter with supported files (#17615) (Alexander Lichter)
- c7f0848 linte/rno-required-prop-with-default: Implement suggestion (#17747) (Minsu Lee)
- 0e8127e linter/vue: Implement no-lifecycle-after-await (#17701) (yefan)
- 3567304 linter/vitest: Implement consistent-each-for (#17601) (Said Atrahouch)
- 883e156 linter: Add fixer for unicorn/no-useless-collection-argument rule (#17594) (Mikhail Baev)
- 4eb335c linter/vitest: Implemented prefer-called-once (#17674) (Said Atrahouch)
- 2bd2d5a linter/vitest: Implement hoisted-apis-on-top (#17658) (Said Atrahouch)
- cfb2bcc linter/vue: Implement no-arrow-functions-in-watch (#17672) (yefan)
- a68208a linter/eslint-plugin-vitest: Implements prefer-describe-function-title (#17677) (Said Atrahouch)
- efa029f linter/vitest: Implement no-unneeded-async-expect-function (#17494) (Minsu Lee)
🐛 Bug Fixes
- 49cf66e lsp: Fix workspace worker selection for nested and similar-named workspaces (#17853) (Copilot)
- 84f4f3c linter: Add doc url for tsgolint diagnostics (#17879) (Sysix)
- 76c903f linter/consistent-indexed-object-style: Skip fixing default exported interface (#17874) (Copilot)
- 7e87d16 linter/tabindex-no-positive: Improve diagnostic phrasing (#17849) (connorshea)
- 28f9fba vscode: Fix nested search for binaries (#17832) (Sysix)
- 8ca2cd2 linter: Move jsx-a11y/no-static-element-interactions rule to nursery. (#17818) (connorshea)
- dc9fdd6 linter/consistent-indexed-object-style: Re-port test cases and fix some bugs (#17802) (camc314)
- 7bbd880 linter: Update prefer-destructuring rule metadata (#17642) (Hamir Mahal)
- 3c45185 linter/consistent-indexed-object-style: False positive with circular reference (#17789) (heygsc)
- bd186b4 vscode: Search for oxlint and oxfmt in every workspace directory (#17760) (Sysix)
- 3e0dff7 linter/no-hooks: Add punctuation to diagnostic message (#17751) (camc314)
- 6ae21f9 linter/prefer-called-once: Avoid panic on trailing comma (#17735) (Said Atrahouch)
- 32c3901 oxlint: Do not panic on invalid no-unused-vars configuration (#17719) (Sysix)
- 59a6228 parser: Detect TS1363 error for type-only imports with mixed default and named/namespace bindings (#17712) (Copilot)
⚡ Performance
- f87a1e2 linter: Check for giving reserved plugin name before calling load_plugin on napi side (#17841) (Sysix)
📚 Documentation
- a2b3a24 linter/no-caller: Improve docs and diagnostic for rule. (#17890) (connorshea)
- aa48247 linter/no-unsafe-finally: Improve rule docs. (#17891) (connorshea)
- 1b0bdee linter: Tweak docs for no-useless-constructor and hoisted-apis-on-top (#17888) (connorshea)
- 8f24fa9 vscode: Remove mention of a built-in server (#17836) (Sysix)
- e81a306 linter: Update the tsconfig flag mention for the import plugin. (#17778) (connorshea)
Oxfmt v0.24.0
🚀 Features
- 539b350 formatter/sort_imports: Update NODE_BUILTINS modules (#17771) (nilptr)
- 2e03ebf oxfmt/lsp: Use SourceFormatter to support non-JS files and napi features (#17655) (leaysgur)
- 623f7eb oxfmt/sort_package_json: Use options.sort_scripts (#17740) (leaysgur)
- 86c0168 oxfmt/sort_package_json: Handle oxfmtrc.sort_scripts option (#17738) (leaysgur)
- 256636a oxfmt/lsp: Add .editorconfig to get_watcher_patterns (#17694) (leaysgur)
- 3f3db39 oxfmt/lsp: Use ConfigResolver to align with CLI (#17654) (leaysgur)
🐛
1.38.0 6 de gener del 2026 — 64 bits ZIPARM64 ZIP
Notes de la versió
Table of Contents
- Oxlint v1.38.0
- Oxfmt v0.23.0
Oxlint v1.38.0
Oxfmt v0.23.0
🚀 Features
- a19cc93 oxfmt: Add debug logging to oxfmt LSP to troubleshoot resolved options at runtime (#17695) (Nicholas Rayburn)
🐛 Bug Fixes
- 3b4aced formatter: Should not treat multi-type arguments of TSTypeReference as a complex type (#17708) (Dunqing)
- dcfdd41 formatter: Should not set up tailwindcss callback when no tailwindcss configuration is set (#17696) (Dunqing)
- 6f65901 formatter: Return original classes when there are no tailwindcss classes sort callback (#17689) (Dunqing)
⚡ Performance
- c6a99fd formatter: Don't call sort_tailwind_classes if no classes need to be sorted (#17698) (Dunqing)
1.37.0 5 de gener del 2026 — 64 bits ZIPARM64 ZIP
Notes de la versió
Table of Contents
- Oxlint v1.37.0
- Oxfmt v0.22.0
Oxlint v1.37.0
💥 BREAKING CHANGES
- f7da875 oxlint: [BREAKING] Remove oxc_language_server binary (#17457) (Boshen)
🚀 Features
- 659c23e linter: Init note field boilerplate (#17589) (Shrey Sudhir)
- 6870b64 parser: Add TS1363 error code (#17609) (Sysix)
- 6154c8c linter/eslint-plugin-vitest: Implemented vitest/warn-todo rule (#17228) (Said Atrahouch)
- 0043cd6 linter/eslint-plugin-vitest: Implement consistent-vitest-vi rule (#17389) (Said Atrahouch)
- a6d773d linter: Add full TS support to eslint/no-useless-constructor (#17592) (camc314)
- f02c0e7 linter/eslint: Implement complexity (#17569) (Nguyen Tran)
- bc7aae7 linter/no-unused-vars: Add fixer to remove unused catch bindings (#17567) (Don Isaac)
- 9e8ec78 linter/only-throw-error rule: Add allowRethrowing option for (#17554) (camc314)
- b67e819 linter: Add fixer for unicorn/prefer-response-static-json rule (#17559) (Mikhail Baev)
- 44b0361 linter/vue: Implement no-this-in-before-route-enter (#17525) (yefan)
- ee34716 linter/react: Implement no-will-update-set-state (#17530) (Kenzo Wada)
- 3088e1d linter/react: Implement no-this-in-sfc (#17535) (Kenzo Wada)
- 29a2868 linter/jsx-a11y: Implement no-static-element-interactions (#17538) (Kenzo Wada)
- eadf057 linter: Enable tsconfig auto discovery by default (#17489) (Boshen)
- 12a7d6e website_linter: Add a count of rules with fixes available to rules table. (#17476) (Connor Shea)
🐛 Bug Fixes
- 77ccfe5 linter/no-standalone-expect: Support it.fails and test.fails (#17668) (Copilot)
- b90243c linter/capitalized-comments: Handle URLs in multiline block comments correctly (#17664) (Copilot)
- a702f13 oxlint/lsp: Correct position for "disable for this file" with shebang (#17613) (Sysix)
- 19fdfb6 linter: Panic in sort-keys rule with Unicode numeric characters (#17629) (Adel Rodríguez)
- 2e8f469 vscode: Search for node_modules/.bin/oxlint.exe too (bun setup) (#17597) (Sysix)
- be39906 linter/aria-proptypes: Allow template literals with expressions for string-type ARIA props (#17460) (Jökull Sólberg Auðunsson)
- 529901c linter: Include JS plugin rules when calculating total rule count (#17520) (connorshea)
- 96ef2cc linter: Print total rule # when using a single nested config (#17517) (connorshea)
- 9ad0f29 oxlint: Do not enable external plugin store when no external linter is passed (#17498) (Sysix)
- 174375d oxfmt,oxlint: Disable mimalloc for 32-bit Arm targets (#17473) (Yaksh Bariya)
- ff70fe9 linter/no-standalone-expect: Allows expect in wrapper functions passed to test blocks (#17427) (Copilot)
- dab232f linter/catch-or-return: Handle arrow functions with implicit returns correctly (#17440) (Copilot)
- a38892a linter: Update no-unnecessary-template-expression docs and test case (#17453) (camc314)
⚡ Performance
- edbfdb9 linter/capitalized-comments: Use trim_start over trim (#17671) (camc314)
- 605dbf1 vscode: Restrict searching for oxlint/oxfmt binaries only 3 levels deep + 10s timeout (#17345) (Sysix)
📚 Documentation
- 884fb63 linter/react: Improve docs for jsx-curly-brace-presence (#17579) (connorshea)
- 1d3ee07 linter: Improve rule explanation for vue/no-this-in-before-route-enter. (#17581) (connorshea)
- 5f189f8 linter/arrow-body-style: Correctly document default mode option (#17566) (Rägnar O'ock)
- bb2e8e4 linter: Add a note to the typescript/no-var-requires rule about the missing allow option (#17551) (connorshea)
- 655afc1 linter: Improve docs for import/extensions and add a few more tests (#17539) (connorshea)
- 7e5fc90 linter: Update list of plugins that are reserved. (#17516) (connorshea)
Oxfmt v0.22.0
💥 BREAKING CHANGES
- f7da875 oxlint: [BREAKING] Remove oxc_language_server binary (#17457) (Boshen)
🚀 Features
- a680d99 formatter: Support migration of prettier-plugin-tailwindcss in --migrate:prettier (#17652) (Dunqing)
- c20ef0c formatter: Add TailwindCSS support for non-JS/TS files (#17648) (Dunqing)
- 26ed46b formatter: Add TailwindCSS support for JS/TS files (#
1.36.0 29 de desembre del 2025 — 64 bits ZIPARM64 ZIP
Notes de la versió
Table of Contents
- Oxlint v1.36.0
- Oxfmt v0.21.0
Oxlint v1.36.0
🚀 Features
- 5988dfa vscode: Show language server version inside sidebar status item tooltip (#17360) (Sysix)
- 71ead34 linter/no-nonoctal-decimal-escape: Implement suggestion (#17319) (GRK)
- d9aa426 vscode: Support diagnostic pull mode (#17211) (Sysix)
- 220e8e8 oxlint/lsp: Support textDocument/diagnostic (#17209) (Sysix)
- 267e255 linter/react: Implement react/no-did-mount-set-state (#17313) (Kenzo Wada)
- c813582 linter/react: Implement react/jsx-max-depth (#17279) (Kenzo Wada)
- 94a482b linter/node: Implement n/global-require (#17283) (Mikhail Baev)
- 5cc7c90 linter/plugins: Pass env from Rust to JS (#17291) (overlookmotel)
- ed79fca linter/eslint-plugin-vitest: Implement consistent-test-filename (#17284) (Said Atrahouch)
- e031056 codegen: Add sourcemap feature flag (#17305) (Boshen)
- b97101a linter: Implement aria/proptypes (#17253) (mehm8128)
- a5ef127 linter: Auto-fixer for prefer-destructuring (#17235) (Hamir Mahal)
🐛 Bug Fixes
- 786a505 lsp: Fmt.configPath empty string handling (#17425) (copilot-swe-agent)
- 97aef58 language_server: Treat empty string config path as None in language server (#17415) (copilot-swe-agent)
- fec2863 linter: Respect .gitignore regardless of if a git repo is initialized (#17375) (copilot-swe-agent)
- b7e8bca lsp: Do not sent de-registrations for watched files on shutdown request (#17318) (Sysix)
- c6690d1 rust: Remove unsupported tokio io-std feature for WASM compatibility (#17311) (Boshen)
- 7eaa660 linter/plugins: Set up global scope correctly (#17293) (overlookmotel)
- 79b83b0 linter/no-unused-vars: Handle non-null assertion in update expressions (#17281) (camc314)
- b547335 linter/import-first: Correctly respect all relative path imports (#17268) (Mohit Karekar)
⚡ Performance
- c27514c linter/only-used-in-recursion: Improve skip_to_next_char slicing (#17374) (camchenry)
- eecee5d linter: Inline is_function_node into run functions (#17373) (camchenry)
- d2abc78 linter: No-multi-str: skip searching strings when in jsx attribute (#17327) (camchenry)
- 687ffd6 linter: Jest/no-confusing-set-timeout: do not lowercase import name (#17324) (camchenry)
📚 Documentation
- e8444bf linter: Fix grammar and typos in consistent_test_filename rule (#17359) (camc314)
Oxfmt v0.21.0
🚀 Features
- 4df8063 oxfmt: Respect .gitignore in sub directries (#17352) (leaysgur)
- 7c3dae3 formatter: Support Vitest test functions (#17340) (leaysgur)
- b00da37 formatter: Normalize line break for directive (#17303) (Dunqing)
🐛 Bug Fixes
- 1bf0ffc formatter: Incorrect JSX text wrapping when the expression container is an arrow function that will break (#17445) (Dunqing)
- 42ad9d6 formatter: JSXFragment missed a leading semicolon when semicolon is disabled (#17386) (Dunqing)
- c8c5341 formatter: Complete is_complex_type_arguments() (take2) (#17362) (leaysgur)
- 745bc5d formatter: Do not consider rest param as simple (#17354) (leaysgur)
- e836f37 formatter: Fix Deno() to not detect as test functions (#17339) (leaysgur)
- 09848b3 formatter: Handle more test functions (#17337) (leaysgur)
- a55bfc1 formatter: Count emoji sequences correctly (#17331) (leaysgur)
- c6690d1 rust: Remove unsupported tokio io-std feature for WASM compatibility (#17311) (Boshen)
- 0a39cba oxfmt: Update wrong doc comment (#17288) (leaysgur)
- 2d556cb formatter: Should treat TSMappedType as a complex type in assignment-like formatting (#17257) (Dunqing)
- fa5cef3 formatter: Shouldn't treat TaggedTemplateExpression as a simple argument in the member chain (#17256) (Dunqing)
- 6ad3951 formatter: Trailing comments of JSX in call arguments are moved out the of call (#17255) (Dunqing)
1.35.0 22 de desembre del 2025 — 64 bits ZIPARM64 ZIP
Notes de la versió
Table of Contents
- Oxlint v1.35.0
- Oxfmt v0.20.0
Oxlint v1.35.0
🚀 Features
- d913f87 linter/plugins: Implement code path analysis (CFG) (#17229) (overlookmotel)
- 33b4e63 linter/plugins: Support more selector classes in visitor (#17219) (overlookmotel)
- 951a2a2 linter: Implement vue/no-deprecated-destroyed-lifecycle (#17119) (Tu Shaokun)
- 9348f10 linter: Implement eslint/max-statements (#15804) (Pascal Chorus)
- b2b87c6 linter/plugins: Add getRange and getLoc methods to SourceCode (#17179) (overlookmotel)
- 0f63e75 linter: Implement react/no-unsafe (#16532) (Kenzo Wada)
- 9e624c9 linter/react: Add version to ReactPluginSettings (#17169) (camc314)
- 563b039 linter/plugins: Add SourceCode#getLines method (#17177) (overlookmotel)
- ffc1674 linter: Add suggestion fix for unicorn/require-module-attributes (#17168) (camc314)
- 16d9dc2 linter: Implement vitest/prefer-called-times (#17051) (秦宇航)
- 30fb206 linter: Add unicorn/require-module-attributes rule (#17166) (Mikhail Baev)
- 5b5f2fd linter/no-base-to-string: Add checkUnknown option (#17139) (camc314)
- d03b855 linter/no-unsafe-member-access: Add allowOptionalChaining option (#17138) (camc314)
- b86a134 linter/no-unnecessary-type-assertion: Add checkLiteralConstAssertions option (#17137) (camc314)
- 09e8e31 linter: Implement unicorn/no-immediate-mutation rule (#17118) (Tu Shaokun)
- 3e2ae7b regular_expression: Improve error messages (#16953) (sapphi-red)
🐛 Bug Fixes
- e08fdf1 linter/plugins: Include hashbang in comments (#17231) (overlookmotel)
- a3d203b linter/plugins: Make node, token, and comment objects have Object.prototype in prototype chain (#17220) (overlookmotel)
- 6f753a8 linter/plugins: Fix :function selector class (#17218) (overlookmotel)
- 4027039 linter/plugins: Reset ancestors if error during AST walk (#17207) (overlookmotel)
- 376caf1 linter: Improve the error message for when the oxlint config file is invalid. (#17196) (connorshea)
- c95a0ec linter: valid-title: fix diagnostic quoted in strings (#17180) (camchenry)
- c08e6df linter/exhaustive-deps: Fix fixer incorrectly adding property chain from destructuring pattern (#17167) (camc314)
- 5a7fcd1 linter/no-unused-vars: Correctly detect unused symbols in TypeScript namespaces (#17129) (camc314)
- 2c45017 linter: Resolve import/extensions false positives and align with ESLint behavior (#14602) (Tyler Earls)
- fc6e715 vscode: Lsp server path in quotes (only windows) (#17126) (Sysix)
- aba2795 linter/no-single-promise-in-promise-methods: Preserve array structure in fixer for Promise.all (#17128) (camc314)
- bfd4a1e linter/no-unused-private-class-members: Handle sequence expression correctly (#17127) (camc314)
⚡ Performance
- b8e321c linter/curly: Remove iterating on all nodes (#17223) (camc314)
- c48c406 linter/curly: Avoid additional parent AST lookup (#17222) (camc314)
- 78df915 linter: Avoid multiple to_string_lossy calls in loop (#17212) (overlookmotel)
- 5aefb84 linter/plugins: Reduce size of walker code (#17176) (overlookmotel)
📚 Documentation
- c14afd3 editor: Improve description for 'no-unused-disable-directives' settings options (#17236) (connorshea)
- e14db66 linter: Ensure that the docs render default values for various rules that use enum config options (#17192) (connorshea)
- 9b10c80 linter: Fix/improve the configuration docs for no-unused-vars (#17188) (connorshea)
- e7d8c88 linter: Improve the react/no-unsafe rule's config docs. (#17194) (connorshea)
- 1714719 linter/plugin: Correct doc comment on getNodeLoc function (#17178) (overlookmotel)
- c7cbe69 linter: Improve the documentation for the import/extensions rule. (#17162) (connorshea)
Oxfmt v0.20.0
🚀 Features
- 97a02d1 oxfmt: Add insertFinalNewline option (#17251) (leaysgur)
- a3f3c58 oxfmt: Support TOML(v1.0 only) files (#17113) (leaysgur)
🐛 Bug Fixes
- c83f90c formatter: Should expand call arguments group when the argument will break (#17254) (Dunqing)
- def4ec1 formatter: Wrongly added an indentation for an union type when there is a lea
1.34.0 19 de desembre del 2025 — 64 bits ZIPARM64 ZIP
Notes de la versió
Table of Contents
- Oxlint v1.34.0
- Oxfmt v0.19.0
Oxlint v1.34.0
🚀 Features
- 6cc3fdf linter/no-inferrable-types: Implement fixer (#17090) (camc314)
- 2067997 linter/no-negation-in-equality-check: Implement suggestion (#17084) (camc314)
- 552f9ef vscode: Auto-generate VSCode README configuration from package.json (#16970) (Copilot)
- 9190c4b linter/no-unnecessary-array-flat-depth: Implement fixer (#17057) (camc314)
- ed789de linter/misrefactored-assign-op: Implement fixer (#17056) (camc314)
- a0f74a0 linter/config: Allow aliasing plugin names to allow names the same as builtin plugins (#15569) (Cameron)
- a43d251 linter/plugins: RuleTester support languageOptions.globals (#17009) (overlookmotel)
- 35070d9 linter/bad-bitwise-operator: Implement fixer (#17006) (camc314)
- 322d995 linter/prefer-enum-initializers: Implement fixer (#17004) (camc314)
- ae1e5bc vscode: Add support for tsgolint binary configuration (#16921) (ColemanDunn)
- 3bfe31e linter/eslint-plugin-vitest: Add prefer-called-with as vitest compatible jest rule (#16993) (Said Atrahouch)
- 0cd075f linter/eslint-plugin-jest: Add fix capabilities to prefer-called-with rule (#16987) (Said Atrahouch)
- 357564b linter: Add options for typescript/require-array-sort-compare rule. (#16980) (connorshea)
- 2b0ffba linter: Add options for typescript/no-meaningless-void-operator rule. (#16981) (connorshea)
- 8bc4287 linter/plugins: Validate options against schema (#16974) (overlookmotel)
- fdc7d08 linter: Implement eslint/capitalized-comments (#16896) (Tu Shaokun)
- f8b6561 linter: Add support for test.for in vitest (#16925) (camchenry)
- 7ee0379 linter/eslint-plugin-vitest: Implement prefer-spy-on (#16426) (Said Atrahouch)
- fc96ee0 linter: Implement jest/prefer-to-have-been-called-times (#16938) (秦宇航)
- 291b57b ast_tools: Generate TS declaration files for deserializer and walk files (#16912) (camc314)
- e31da2a linter: Implement jest/perfer-to-have-been-called (#16899) (秦宇航)
- 1a31306 linter/eslint-plugin-vitest: Add require-hook as vitest compatible jest rule (#16880) (Said Atrahouch)
- cd3db21 linter: Add ignoredTypeNames option to no-base-to-string rule (#16898) (camc314)
- 763b25a linter: Implement eslint/no-inline-comments (#16885) (Tu Shaokun)
🐛 Bug Fixes
- fb9e193 linter: OOM problems with custom plugins (#17082) (overlookmotel)
- 005ec25 linter: Permit $schema .oxlintrc.json struct (#17060) (Copilot)
- fd03131 linter/plugins: Handle plugin names containing slashes (#17073) (overlookmotel)
- b2a4fac linter/plugins: Error if plugin name alias is not normalized (#17071) (overlookmotel)
- e046c4e linter/no-misused-spread: Add rule options support (#17054) (camc314)
- 5c1a9e0 linter/no-deprecated: Add rule options support (#17053) (camc314)
- 8c9cafe linter: import/consistent-type-specifier-style: add support for declaration files (#16979) (camchenry)
- dab4780 linter/no-empty-pattern: Misleading help message for arrays (#17039) (Copilot)
- 67f8c5d linter/plugins: Get correct plugin name in all cases (#17033) (overlookmotel)
- 674dab9 linter/plugins: Fix indentation in error message (#17018) (overlookmotel)
- 6524f72 linter/plugins: Add @types/node dev dependency to oxlint package (#17016) (overlookmotel)
- 7a35513 linter/plugins: Better error for null in globals in RuleTester (#17011) (overlookmotel)
- 42603ba linter/plugins: Always define languageOptions.globals (#17008) (overlookmotel)
- 4cdc2f8 linter: Fix VITEST override rule list and add test for alphabetizing the two lists (#16975) (Connor Shea)
- e466562 linter/consistent-type-definitions: Handle parenthesized types in rule (#16998) (camc314)
- fce267c linter: Correct vitest plugin source to be @vitest/eslint-plugin (#16976) (connorshea)
- 477bb57 linter: Fix vitest/no-restricted-vi-methods and add tests for it. (#16971) (connorshea)
- 7d6974d linter: Ignore oxlint directive comments in capitalized-comments (#16989) (Tu Shaokun)
- 23ac6b1 linter/plugins: Apply defaults from meta.schema to options (#16930) (overloo
1.33.0 15 de desembre del 2025 — 64 bits ZIPARM64 ZIP
Notes de la versió
Table of Contents
- Oxlint v1.33.0
- Oxfmt v0.18.0
Oxlint v1.33.0
💥 BREAKING CHANGES
- e654c13 linter/plugins: [BREAKING] Do not export NodeOrToken type (#16806) (overlookmotel)
- f814c82 linter/plugins: [BREAKING] Use TypeScript parser directly for getting tokens (#16805) (overlookmotel)
- 320c09f ast, parser, linter, codegen, formatter: [BREAKING] Rename CommentKind::Block to CommentKind::SinglelineBlock (#16501) (Dunqing)
🚀 Features
- 5a95f62 linter: Implement eslint/no-sequences rule (#16872) (Tu Shaokun)
- 99c0496 linter/approx-constant: Implement fixer (#16847) (camc314)
- f5e752c linter/eslint-plugin-vitest: Add no-large-snapshot as vitest compatible jest rule (#16846) (Said Atrahouch)
- 08bf389 linter/no-regex-spaces: Implement fixer (#16837) (camc314)
- 652a2bf linter/eslint-plugin-vitest: Add prefer-to-contain as vitest compatible jest rule (#16836) (Said Atrahouch)
- 55eb0dc linter: Implement eslint/no-loop-func rule (#16830) (Tu Shaokun)
- 8bb67a6 eslint-plugin-jest: Add fix capabilities to prefer to contain rule (#16809) (Said Atrahouch)
- 1bdaab1 linter/prefer-nullish-coalescing: Add rule (#16778) (camc314)
- 057b75e linter: Implement eslint/accessor-pairs rule (#16820) (Tu Shaokun)
- 1f42ad3 linter: Auto-fixer for extra cases in unicorn/prefer-query-selector (#16787) (Hamir Mahal)
- 67bde85 linter: Implement no-promise-executor-return rule (#16779) (Tu Shaokun)
- 3ffe342 linter: Implement eslint/no-implicit-coercion rule (#16735) (Tu Shaokun)
- 725a5c0 linter: Implement disallows using this in an exported function rule (#15745) (Rintaro Itokawa)
- fb4700a linter: Add react/jsx-props-no-spreading rule (#15769) (Mikhail Baev)
- a1d9bbd linter/eslint-plugin-vitest: Reuse no-mocks-import jest linter rule (#16540) (Said Atrahouch)
- e1b1bc3 linter: Add react/no-redundant-should-component-update rule (#16147) (Mikhail Baev)
- 200d17b linter: Add unicorn/prefer-keyboard-event-key rule (#16611) (Rintaro Itokawa)
- a082040 editor: Adjust oxlint oxfmt config file editor supporting (#16616) (Liang Mi)
- 2b73b14 linter/plugins: Support parserOptions.ecmaFeatures.jsx option in RuleTester (#16690) (overlookmotel)
- 563eab7 linter/plugins: Add parserOptions.lang option to RuleTester (#16688) (overlookmotel)
- e39f487 linter/plugins: Add ignoreNonFatalErrors option to RuleTester (#16672) (overlookmotel)
- 4cf1353 linter/plugins: RuleTester support languageOptions.sourceType (#16660) (overlookmotel)
- 8550c0f linter: Add unicorn/prefer-default-parameters rule (#16620) (Rintaro Itokawa)
- 8c8b6d9 linter/plugins: Add languageOptions types to RuleTester config types (#16642) (overlookmotel)
- 554250e linter/plugins: RuleTester parser support options (#16641) (overlookmotel)
- 30a9076 ast, parser, codegen: Add CommentKind::MultilineBlock (#16479) (Dunqing)
- 767db50 linter: Promote constructor_super rule from nursery to correctness (#16605) (camc314)
- 7c7219e linter: Promote no_map_spread rule from nursery to perf (#16604) (camc314)
🐛 Bug Fixes
- bb86e0e linter: Fix empty-tags rule logic. (#16873) (connorshea)
- a998ceb linter/unicorn/prefer-dom-node-dataset: Ignore awaited getAttribute call (#16882) (Kei Sakamoto)
- eccffcf linter/plugins: report() accept loc with no end (#16859) (overlookmotel)
- d402242 linter: Fix the config option docs for array-callback-return rule. (#16854) (connorshea)
- d3208dc parser: Parse let?.x (#16840) (Copilot)
- b16fe64 linter: Fix incorrect allowNames config option name in typescript/no-this-alias rule. (#16852) (connorshea)
- 3302fcb linter/plugins: Sort visitors in order of specificity (#16834) (overlookmotel)
- 50e0a23 linter: Rewrite constructor-super to use iterative dataflow analysis (#16706) (camc314)
- cb51c74 linter: Mark consistent-type-definitions fix as dangerous inside declare global blocks (#16745) (camc314)
- 36c9097 linter/plugins: RuleTester sort diagnostics before comparing to errors (#16741) (overlookmotel)
- 32e23f7 linter/plugins: Correct punctuation in error message (#16718
1.32.0 8 de desembre del 2025 — 64 bits ZIPARM64 ZIP
Notes de la versió
Table of Contents
- Oxlint v1.32.0
- Oxfmt v0.17.0
Oxlint v1.32.0
🚀 Features
- 5c62c16 linter/plugins: Allow JS plugins to access globals (#16512) (Arsh)
- ba7bd51 linter: Implement no-useless-return rule (#16388) (FMP1783)
- fa605df linter: Fix arrow-body-style automatically (#16252) (Hamir Mahal)
- 7584938 linter/plugins: Add ESLint compat mode to RuleTester (#16538) (overlookmotel)
- b38c2d0 linter/plugins: Add SourceCode#lineStartIndices getter (#16510) (overlookmotel)
- ba93ffc linter/plugins: Add SourceCode#tokensAndComments getter (#16503) (overlookmotel)
- d2ca540 linter/plugins: Add SourceCode#isESTree property (#16499) (overlookmotel)
- 9001234 linter: Add fix support for tsgolint diagnostics (#16344) (camc314)
- 2d6bb85 editors: Toggle client after vscode config changing (#16162) (Liang Mi)
- 0ec454c linter/plugins: Merge default options into options (#16358) (overlookmotel)
🐛 Bug Fixes
- a806d74 linter: Use import type for ESTree in visitor.d.ts (#16472) (camc314)
- 8933c84 linter: Fix jest/expect-expect rule docs. (#16550) (connorshea)
- 1c08879 linter: Fix false positive in no-invalid-fetch-options for conditional expressions (#16570) (camc314)
- 1a69b06 linter: Junit support for multiple files/errors/diagnostics (#16568) (Shrey Sudhir)
- a7d435b linter/sort-keys: Preserve multi-line formatting in autofix (#16563) (camc314)
- fd84dcc linter/plugins: RuleTester parser catch fatal errors (#16558) (overlookmotel)
- ab4deb0 linter/plugins: Improve safety of options merging (#16549) (overlookmotel)
- a58c76a linter: Fix the react/jsx-fragments rule config to take a string argument (#16175) (connorshea)
- f7751cc linter/plugins: Fix TS types for RuleTester (#16546) (overlookmotel)
- 6d33320 linter/plugins: Prevent user modifying the default config (#16545) (overlookmotel)
- b4483c5 linter/plugins: Add config support skeleton to RuleTester (#16537) (overlookmotel)
- 3a49158 linter/plugins: Improve TS types for tokens (#16502) (overlookmotel)
- 0c14531 oxlint/lsp: Revalidate all known files after internal restart (#16407) (Sysix)
- 2d3217e linter/plugins: Remove panics from lint_file and setup_configs (#16453) (overlookmotel)
- 655341b linter/oxc: Not emit error when the threshold is zero and we haven't detected a barrel file (#16455) (Said Atrahouch)
- b9f359f linter/no-var: Expand fix span to prevent conflicts with other rules (#16445) (camc314)
- c6778f3 linter: Preserve original quote style in no-hex-escape fixer (#16410) (camc314)
- 3ad913b linter: Improve rule docs page autofix description (#16281) (Hamir Mahal)
- 0b7e00c linter: Handle keyword unary expressions in yoda rule fix (#16402) (camc314)
- 5fd3096 lsp: Skip (un)registering file watcher when not dynamic watchers are supported (#16406) (Sysix)
- 804144f lsp: Respect null as invalid settings for workspace/didChangeConfiguration (#16361) (Sysix)
- 723a7e5 linter: Prevent invalid BigInt literal fix for exponential notation (#16401) (camc314)
- 2589fb1 linter: Fix prefer_expect_resolves fixer for member expressions (#16393) (camc314)
- 428c7cd linter: Wrap logical expressions in parentheses when fixing no-extra-boolean-cast (#16363) (camc314)
- 3903567 linter: Skip prefer-string-raw in type annotations and .d.ts files (#16382) (camc314)
- d490daa linter/func-names: Use centralized reserved keyword check and fix ancestor traversal (#16362) (camc314)
- d846c53 tsgolint: Use expect when sending diagnostics (#16341) (camc314)
- 114665d lsp: Watch for files when workspace folder is added & workspace/configuration is not supported (#16307) (Sysix)
- f5d0ebb linter/func-names: Avoid suggesting reserved keywords as function names (#16352) (camc314)
- d268135 linter/no-console-spaces: Preserve escape sequences in fixer output (#16349) (camc314)
- b02c21a linter/valid-title: Preserve escape sequences in fixer output (#16348) (camc314)
- 2373b76 linter/no-untyped-mock-factory: Fix fixer producing invalid syntax when newline exists after opening paren (#16351) (camc314)
1.31.0 1 de desembre del 2025 — 64 bits ZIPARM64 ZIP
Notes de la versió
Table of Contents
- Oxlint v1.31.0
- Oxfmt v0.16.0
Oxlint v1.31.0
💥 BREAKING CHANGES
- 74cf572 ast: [BREAKING] Make source field of TSImportType a StringLiteral (#16114) (copilot-swe-agent)
🚀 Features
- 1651806 linter/plugins: Rule options (#16215) (Arsh)
- 5da1a63 linter/plugins: Introduce RuleTester (#16206) (overlookmotel)
- 41129ab linter/plugins: Implement languageOptions.parser (#16292) (overlookmotel)
- 4b24825 linter: Implement no-restricted-types rule (#16276) (camc314)
- 7150209 linter/plugins: Implement SourceCode#getNodeByRangeIndex (#16256) (overlookmotel)
- 3226864 linter/plugins: Implement options merging (#16217) (overlookmotel)
- cbb108a linter/plugins: Support default options (#16170) (overlookmotel)
- 04a3a66 linter/plugins: Implement SourceCode#getTokenOrCommentAfter() (#16045) (Arsh)
- 68b63d9 linter/plugins: Implement SourceCode#getTokenOrCommentBefore() (#16044) (Arsh)
- 04d9454 linter/plugins: Implement SourceCode#getTokenByRangeStart() (#16043) (Arsh)
- 7b8d578 linter/plugins: Implement SourceCode#getTokensBetween() (#16034) (Arsh)
- 79c242f linter/plugins: Implement SourceCode#getLastTokensBetween() (#16033) (Arsh)
- 1772078 linter/plugins: Implement SourceCode#getFirstTokenBetween() (#16032) (Arsh)
- 21bb86d linter/plugins: Implement SourceCode#getFirstTokensBetween() (#16019) (Arsh)
- 78f74b1 linter/plugins: Implement SourceCode#getLastTokenBetween() (#16008) (Arsh)
- df0b948 linter/plugins: Implement SourceCode#getLastToken() (#16003) (Arsh)
🐛 Bug Fixes
- decf2ad linter: Fix rule option docs for no-extra-boolean-cast, prefer-number-properties, and prefer-structured-clone (#16285) (connorshea)
- cf249f5 linter/plugins: Fix message interpolation (#16300) (overlookmotel)
- 9149a26 linter/plugins, napi/parser: Deep freeze visitor keys (#16293) (overlookmotel)
- 71271ee linter: Fix typescript/no-empty-interface config option casing. (#16282) (connorshea)
- 653fa6c oxlint/oxfmt/lsp: Tell client the real tool name & version (#16212) (Sysix)
- 385e13e linter: Support both prefer-inline and preferInline for import/no-duplicates (#16275) (copilot-swe-agent)
- efc08d3 linter: Fix config docs for no-return-assign and unicode-bom rules. (#16260) (connorshea)
- dc96d3f linter: Correct docs to use string option for import/first rule. (#16264) (connorshea)
- 15ce491 linter: Correct the default config options for the switch-exhaustiveness-check rule. (#16268) (connorshea)
- 13f985c linter: Fix casing for unicorn/explicit-length-check config option. (#16269) (connorshea)
- 0df1901 linter/plugins: Reset state after error during AST visitation (#16246) (overlookmotel)
- 42e9dcc linter: Fix docs for consistent-type-specifier-style and consistent-type-definitions rules. (#16253) (connorshea)
- 505ceb1 linter: Fix the radix rule docs to correctly render as a string-only config option (#16248) (connorshea)
- 135cee6 oxlint/lsp: Run diagnostics after delayed worker initialization (#16244) (Sysix)
- 78aa294 linter/plugins: Deep freeze options (#16218) (overlookmotel)
- 123bffe linter/plugins: Handle zero-token files in SourceCode#getLastToken() (#16184) (Arsh)
- 55fcfba linter: Add considerDefaultExhaustiveForUnions option to switch-exhaustiveness-check (#16204) (camc314)
- 9cc20a1 minifier: Avoid merging side effectful expressions to next assignment statement if the side effect may change the left hand side reference (#16165) (sapphi-red)
- 75249e0 linter/plugins: Handle non-UTF8 file paths (#16157) (overlookmotel)
- 86fa667 linter/plugins: Improve type def for RuleMeta defaultOptions property (#16159) (overlookmotel)
- d2b7dcb tsgolint: Improve lsp diagnostic when linting fails (#16115) (camc314)
- 8810bd5 linter: Prevent conflicting fixes between prefer_number_properties and prefer_numeric_literals (#16113) (camc314)
- 91eb3f2 ast/estree: Convert TSImportType argument field to Literal (#16109) (overlookmotel)
- 2da2fc1 linter: Fix prefer-string-raw fixer producing invalid JS for non-ASCII strings (#16102) (camc314)
- 
1.30.0 24 de novembre del 2025 — 64 bits ZIPARM64 ZIP
Notes de la versió
Table of Contents
- Oxlint v1.30.0
- Oxfmt v0.15.0
Oxlint v1.30.0
💥 BREAKING CHANGES
- cbb27fd ast: [BREAKING] Add TSGlobalDeclaration type (#15712) (overlookmotel)
🚀 Features
- 72660f7 linter: Support auto generate config document for tuple lint option (#15904) (Duc Nghiem Xuan)
- 0c1f82b linter/plugins: Add tokens property to Program (#16020) (overlookmotel)
- 9e61beb linter/plugins: Implement SourceCode#getFirstToken() (#16002) (Arsh)
- 9a548dd linter/plugins: Implement SourceCode#getLastTokens() (#16000) (Arsh)
- 0b6cb11 linter/plugins: Implement SourceCode#getFirstTokens() (#15976) (Arsh)
- 166781e linter/plugins: Implement SourceCode#getTokenAfter() (#15973) (Arsh)
- 6ae232b linter: Expose type errors via tsgolint (#15917) (camc314)
- 2bfdd26 linter/plugins: Implement SourceCode#getTokensAfter() (#15971) (Arsh)
- 45fffc1 linter/plugins: Implement SourceCode#getTokenBefore() (#15956) (Arsh)
- 776e473 linter/plugins: Implement SourceCode#getTokensBefore() (#15955) (Arsh)
- 595867a oxlint: Generate markdownDescription fields for oxlint JSON schema. (#15959) (connorshea)
- 5569317 vscode: Add quick actions to status bar tooltip (#15962) (Sysix)
- 986cac1 linter/plugins: Token-related SourceCode APIs (TS ESLint implementation) (#15861) (Arsh)
- a21f9e4 linter: Implement unicorn/prefer-bigint-literals rule (#15923) (Michiel Vrins)
- 4b9d8d2 linter/type-aware: Include range with tsconfig diagnostics (#15916) (camc314)
- 220d01e editor: Improve the status bar item for the VS Code extension by adding a tooltip. (#15819) (connorshea)
🐛 Bug Fixes
- 2bd3cb6 apps, editors, napi: Fix oxlint-disable comments (#16014) (overlookmotel)
- 81f5360 linter/prefer-number-properties: Get fixer to replace entire call expr (#15979) (camc314)
- e4ba07f language_server: Always write to memory file system (#15975) (Sysix)
- a8a2032 linter: Support missing range for internal diagnostics (#15964) (camc314)
- 619a226 oxlint/lsp: Don't register textDocument/formatting capability (#15882) (Sysix)
- 6ab1a20 linter: Fix no_useless_spread producing invalid syntax when removing empty object spreads (#15905) (camc314)
- be4b6df linter: Unicorn/prefer-string-replace-all incorrectly escapes backslashes (#15901) (camc314)
- 9fa9ef2 linter: Gracefully fail when using import plugin, large file counf and JS plugins (#15864) (camc314)
- c027398 linter/plugins: Correct bindings package names glob in TSDown config (#15871) (overlookmotel)
- b622ef8 linter: Fix oxc/bad_array_method_on_arguments rule behavior. (#15854) (connorshea)
- aa06c3f linter: Recognize NewExpression as value context in no-unused-private-class-members (#15843) (camc314)
- e89c5ba typescript/prefer-namespace-keyword: Skip nested TSModuleDeclarations (#15806) (overlookmotel)
- 646d020 linter/exhaustive-dependencies: Prevent is_callee_of_call_expr flag from leaking into nested expressions (#15832) (camc314)
- 46bd6bd linter/plugins: Pin @typescript-eslint/scope-manager dependency (#15807) (overlookmotel)
- fba31fa linter: Patch @typescript-eslint/scope manager (#15214) (Arsh)
- 50307c1 linter/jest: Ignore expect identifier in argument position (#15785) (camc314)
⚡ Performance
- 024b48a linter/plugins: Lazy-load tokens parsing code (#16011) (overlookmotel)
- 15365c9 linter/plugins: Reduce var assignments (#15953) (overlookmotel)
- 84d1f4f linter/plugins: Downgrade some checks to debug-only (#15922) (overlookmotel)
- a49f704 linter/typescript: Avoid searching source text unless required (#15805) (overlookmotel)
📚 Documentation
- ceffa5a linter: Add config option docs for various rules. (#16024) (connorshea)
- 9a0ed13 linter: Fix config option docs for eslint/operator-assignment rule. (#16030) (connorshea)
- 0b18005 linter: Add config docs generation for rules with Regex arguments (#15978) (connorshea)
- 48d18e0 linter: Improve diagnostic message for promise/catch-or-return rule (#15980) (connorshea)
- 6c72e84 linter: Use backticks for code elements across more rule diagnostics (#15958) (connorshea)
1.29.0 17 de novembre del 2025 — 64 bits ZIPARM64 ZIP
Notes de la versió
Table of Contents
- Oxlint v1.29.0
- Oxfmt v0.14.0
Oxlint v1.29.0
🚀 Features
- bce6154 linter/prefer-includes: Add rule (#15774) (camc314)
- 5a66558 linter: Handle config docs for string/enum values and add config option docs for various rules. (#15759) (connorshea)
- c199e38 linter: Implement config for all tsgolint rules supporting options (#15659) (camchenry)
- 7598b3e linter: Allow configuring tsgolint rules (#15286) (camchenry)
- e77f2ce vscode: Support oxlint --lsp (#15680) (Sysix)
- e01c551 oxlint: Add --lsp flag to run the language server (#15611) (Sysix)
- ac5c2ab lsp/fmt: Support ignore files & patterns (#15647) (Sysix)
- e50a9bf linter: Add unicorn/prefer-response-static-json rule (#15692) (Mikhail Baev)
- f5d9abb oxlint: Add enabled? column to --rules cli output (#15213) (Wren)
- 6b5205c linter/plugins: Implement deprecated SourceCode#getJSDocComment method (#15653) (overlookmotel)
- 5eccff1 linter/plugins: Implement deprecated SourceCode tokens methods (#15645) (overlookmotel)
- 4c62ffa language_server: Add run_server helper for CLI tools (#15609) (Sysix)
- 0d52a5e linter/plugins: Implement Context#parserOptions getter (#15632) (overlookmotel)
- 287a538 linter/plugins: Implement Context#get* deprecated methods (#15606) (overlookmotel)
- 84de1ca oxlint,oxfmt: Allow comments and also commas for vscode-json-ls (#15612) (leaysgur)
- e763919 linter: Add test to enforce schema documentation for rules with configuration options (#15234) (Connor Shea)
- 6cd0b5f linter/no-callback-in-promise: Add support for timeoutsErr option (#15507) (Li Wei)
🐛 Bug Fixes
- 1decd57 linter/no-empty-named-blocks: Only search within node for comma token (#15751) (camc314)
- 17c3d6d linter: Improve docs, diagnostic message, and implementation of typescript/consistent-indexed-object-style rule. (#15750) (connorshea)
- 78a6df2 linter/no-empty-named-blocks: Skip comments when searching for token (#15735) (camc314)
- 042befd linter/require-await: Skip comments when searching for token (#15734) (camc314)
- 7a78220 linter/no-async-await: Skip comments when searching for token (#15733) (camc314)
- 23b9ad1 linter/consistent-type-specifier-style: Skip comments when searching for token (#15732) (camc314)
- 440a977 ast: Include rest properties when using get_binding_identifiers (#15710) (camc314)
- 516d14e linter/no-namespace: Skip comments when searching for token (#15716) (camc314)
- b5aaace linter/prefer-namespace-keyword: Skip comments when searching for token (#15715) (camc314)
- 4eb9fa6 editor: Execute oxc.path.server in win32 with shell (#14203) (Sysix)
- 9f991a4 linter: Reverse extends overrides priority (#14939) (Peter Wagenet)
- 7c4a916 linter: Restores oxlint --rules -f=json functionality. (#15689) (Wren)
- 24d00f4 linter/plugins: Add types for suggested fixes (#15636) (overlookmotel)
- 257360f linter/plugins: Fill in TS type def for RuleMeta (#15629) (overlookmotel)
- 81e179c linter: Allow file extensions without a dot in react/jsx-filename-extension rule (#15574) (Connor Shea)
- 7a0e931 linter: Update the unicorn/prefer-add-event-listener rule with new JavaScript APIs (#15581) (connorshea)
- bb5f8ca oxlint: Fix type annotation for big-endian (#15561) (Sysix)
⚡ Performance
- e2a0997 linter/plugins: Recycle empty visitor object in ESLint compat mode (#15693) (overlookmotel)
- 7528db4 language_server: Pass file content as a referenced String (#15568) (Sysix)
- 54061e9 linter/plugins: Avoid implicit boolean coercion in initLines (#15641) (overlookmotel)
- ccfd935 language_server: Avoid Mutex in ServerLinter (#15516) (Sysix)
📚 Documentation
- 3ab750a linter: Clarify react-in-jsx-scope rule docs. (#15749) (connorshea)
- a5feebc linter: oxlint-disable not eslint-disable (#15672) (overlookmotel)
- 3d15805 linter: Reformat doc comments (#15670) (overlookmotel)
- 16fcba6 linter: Remove "experimental" from description of stable features (#15669) (overlookmotel)
- e62fd98 linter: Correct comment on what EnablePlugins does (#15668) (overlookmotel)
- 
1.28.0 10 de novembre del 2025 — 64 bits ZIPARM64 ZIP
Notes de la versió
Table of Contents
- Oxlint v1.28.0
- Oxfmt v0.13.0
Oxlint v1.28.0
🚀 Features
- 9f759a0 linter: Add unicorn/no-useless-collection-argument (#15545) (Mikhail Baev)
🐛 Bug Fixes
- 1b994d1 linter/no-unused-private-class-members: Correctly detect value context for private members in assignment expressions (#15553) (camc314)
Oxfmt v0.13.0
1.16.0 16 de setembre del 2025 — 64 bits PortableARM64 Portable
Notes de la versió
[1.16.0] - 2025-09-16
🚀 Features
- 97c8d06 linter: Add preserve-caught-error rule (#13748) (孔辉)
- 8c19b18 linter/exhaustive-deps: Implement fixer for dep in global scope (#13783) (camc314)
- 06bce8f linter/exhaustive-deps: Implement fixer for missing dep (#13782) (camc314)
- a8675f4 linter: Add eslint/class-methods-use-this rule (#12977) (Peter Cardenas)
- db33196 parser: Adds typescript rule for empty argument list (#13730) (Karan Kiri)
- 2751193 linter: Add eslint/no-useless-computed-key rule (#13428) (yefan)
- 9a205d1 regex-parser: Parse simple TemplateLiterals (#13265) (Sysix)
🐛 Bug Fixes
- a2c91cd linter: Drop rules to allow mutable access to ctx_host in run_external_rules (#13832) (camc314)
- 3af1e5d linter/no-unsafe-declaration-merging: Always mark first span as primary (#13830) (camc314)
- 1c43c7c linter: Keep message when merging composite fixes (#13827) (camc314)
- 26af302 linter/exhaustive-deps: Check stable value is on lhs of assignment expr (#13815) (camc314)
- 4bc12d0 linter/exhaustive-deps: Remove impossible comparison with parent kind (#13814) (camc314)
- 12baf5e linter/exhaustive-deps: Respect primary span when identifying disable directive location (#13781) (camc314)
- fa7400a linter/no-undef: False positive with arguments in functions (#13763) (camc314)
- 50e6e3c editor: Restrict servers paths for oxc.path.server (#13740) (Sysix)
- b45077d editor: Strip leading slash for bin path on windows (#13738) (Sysix)
- 8fa6227 editor: Don't allow oxc.path.server for untrusted workspaces (#13734) (Sysix)
- 56da114 linter/react/jsx-handler-names: Do not detect the function name within the inline-function's body block (#13456) (Takuji Shimokawa)
- b2bc5b4 linter/react-perf/jsx-no-new-object-as-prop: Skip as/satisfies exprs (#13718) (camc314)
- ab51394 raw_transfer: Disable layout assertions on some 32-bit platforms (#13716) (overlookmotel)
- 09428f6 linter/plugins: Remove outdated comment (#13691) (overlookmotel)
- a294721 linter/plugins: Exit early if JS plugins enabled on unsupported platforms (#13689) (overlookmotel)
- 68a2280 linter/plugins: More graceful exit for --experimental-js-plugins CLI option (#13688) (overlookmotel)
🚜 Refactor
- 395d40d linter: Derive inmpls for PartialEq, Eq over manual ones (#13828) (camc314)
- 8e4cd8f linter/func-names: Use run_once over looping over all nodes (#13798) (camc314)
- 7f4e2fe eslint/func-names: Clean up implementation and improve documentation (#13601) (Antoine Zanardi)
- 137896a language_server: Split options for linting and formatting (#13627) (Sysix)
- 7346099 linter: Move oxlint application code into separate module (#13745) (overlookmotel)
- 6dd4107 linter: Remove #[cfg(test)] attributes from tester module (#13714) (overlookmotel)
- c40c6ef linter/plugins: Directory for JS plugins-related code (#13701) (overlookmotel)
- a0022c1 linter/plugins: Improve error messages for JS plugins (#13699) (overlookmotel)
- 1fd993f napi/oxlint: Rename napi/oxlint2 to napi/oxlint (#13682) (overlookmotel)
⚡ Performance
- 90c8286 linter: Detect node types from let..else statements (#13690) (camchenry)
- 08c05df semantic: Make CFG construction a compile-time feature (#13678) (Boshen)
🎨 Styling
- 99a7638 linter: Add comments + re-organise imports (#13715) (overlookmotel)
🧪 Testing
- 18a1145 linter: Add debug assertions for skipping rules (#13724) (camc314)
- cb080de linter/no-unused-vars: Add test for non ASCII chars in JSX components (#13820) (camc314)
- b6eba27 linter/no-undef: Add more test cases for arguments (#13764) (camc314)
- fb2d087 linter: Set CWD for tests (#13722) (overlookmotel)
💼 Other
- b99de17 oxlint: V1.16.0 (#13833) (Boshen)
1.15.0 11 de setembre del 2025 — 64 bits PortableARM64 Portable
Notes de la versió
[1.15.0] - 2025-09-11
💥 BREAKING CHANGES
- edc70ea allocator/pool: [BREAKING] Remove disable_fixed_size Cargo feature (#13625) (overlookmotel)
🚀 Features
- b20b56d linter: Add vue/no-multiple-slot-args rule (#13579) (Sysix)
- aafe08c linter: Add vue/define-emits-declaration rule (#13567) (Sysix)
- 2ed5059 linter: Add vue/define-props-declaration rule (#13566) (Sysix)
- a718c23 linter: Add vue/valid-define-props rule (#13565) (Sysix)
- 75a673e editor: Support relative path for oxc.path.server (#13542) (Sysix)
- 4af886b linter: Add unicorn/no-array-reverse rule (#13530) (yefan)
- 2db32eb data_structures: Add boxed_slice! and boxed_array! macros (#13596) (overlookmotel)
🐛 Bug Fixes
- fb9d0f4 language_server: Don't resend diagnostic on save, when typeAware is disabled and run is onType (#13604) (YongSeok Jang (장용석))
- 2f36350 editor: Add notice for a possible restart when fixing filename-case (#13557) (Sysix)
- e17fccc linter: Update RuleRunner impl after merge (#13642) (camc314)
- 3d27c5b linter/no-unused-private-class-members: False positive with spread expr (#13634) (yefan)
- 8314ed5 linter/tsgolint: Correct comment (#13589) (camc314)
- 198243b semantic: Dont parse @ as jsdoc tags inside quotes (#13571) (Gwenn Le Bihan)
- 89084d7 linter/custom-plugins: Enforce exact matching for disable directives (#13538) (Copilot)
- 277c5e1 linter: Output eslint-plugin-vue for vue diagnostics (#13564) (Sysix)
- 34d3cde rust: Fix clippy issues (#13540) (Boshen)
- 5fccafc linter: unicorn/prefer-array-flat-map ignore React.Children (#13534) (Sysix)
- 7e78e39 linter: Don't panic when parsing regex with multiple parentheses (#13524) (Sysix)
- 0d867b1 linter: Skip running tsgolint when no files need type aware linting (#13502) (Copilot)
- b677376 language_server: Include the diagnostic of the other linter (#13490) (Sysix)
- e87d7bd linter: Parse regex inside new RegExp() with parentheses (#13448) (Sysix)
- 5990f17 linter: Change typescript/no-confusing-void-expression to pedantic (#13473) (Boshen)
🚜 Refactor
- 7775c21 linter/plugins: Remove oxlint2 Cargo feature (#13648) (overlookmotel)
- 8f37e88 linter: Update tsgolint payload (#13547) (camchenry)
- 2d53203 linter/plugins: Move tokio usage from oxc_linter to napi/oxlint2 (#13647) (overlookmotel)
- 6cd6be2 linter: Add --experimental-js-plugins CLI arg (#13658) (overlookmotel)
- 476729b linter: Simplify RuleRunner trait definition (#13637) (camchenry)
- 2f02ac6 linter/plugins: Remove disable_oxlint2 Cargo feature (#13626) (overlookmotel)
- ff9e4fb linter/plugins: Use fixed-size allocators when ExternalLinter exists (#13623) (overlookmotel)
- f9bff64 linter_codegen: Improve code style for collecting nodes (#13636) (camchenry)
- babbaca all: Remove pub from modules with no exports (#13618) (overlookmotel)
- 91759c6 linter/plugins: Only use RawTransferFileSystem if JS plugins registered (#13599) (overlookmotel)
- 118020c linter/plugins: Discard ExternalLinter if no JS plugins registered (#13598) (overlookmotel)
- 8d30bce linter/tsgolint: Report an error if the tsgolint exe could not be found (#13590) (camc314)
- bccc276 eslint/for-direction: Clean up implementation and improve documentation (#13532) (Antoine Zanardi)
- 1425da2 eslint/default-case-last: Simplify default case last check in switch statement (#13529) (Antoine Zanardi)
- d245376 oxlint: Remove unused runner module (#13561) (camc314)
- 53f2fc1 eslint/default-case: Simplify implementation and enhance readability (#13430) (Antoine Zanardi)
- 6f15060 eslint/block-scoped-var: Clean up implementation and improve documentation (#13417) (Antoine Zanardi)
- 671e0fd language_server: Only store one instance of a diagnostic (#13514) (Sysix)
- 1b425d6 eslint/default-case-last: Simplify implementation and enhance readability (#13515) (Antoine Zanardi)
- e4bbbce eslint/default-param-last: Simplify implementation and enhance readability (#13516) (Antoine Zanardi)
- e0396fd linter: Remove static lifetime from disable directives function argument (#13492
1.14.0 30 d’agost del 2025 — 64 bits PortableARM64 Portable
Notes de la versió
[1.14.0] - 2025-08-30
💥 BREAKING CHANGES
- df8e639 allocator: [BREAKING] Put AllocatorPool behind pool feature (#13373) (overlookmotel)
🚀 Features
- f717ac4 npm/oxlint: 'oxlint-tsgolint': '>=0.1.5' (Boshen)
- 7fc4aef npm/oxlint: 'oxlint-tsgolint': '>=0.1.4' (Boshen)
- d1c9db5 linter: Convert spans to UTF-16 in JS plugins (#13344) (overlookmotel)
- 9c9f80d linter/grouped-accessor-pairs: Add enforceForTSTypes option (#13296) (Copilot)
- 5b91f3c linter: Add vue/valid-define-emits (#12545) (Sysix)
🐛 Bug Fixes
- c215619 linter: Parse globalThis.RegExp for regexp rules (#13395) (Sysix)
- 3c34767 linter: Handle errors from tsgolint (#13252) (camc314)
- 902b39b language_server: Split run logic for oxlint and tsgolint (#13332) (Sysix)
- 2a910c5 language_server: Disable tsgolint test on big endian (#13313) (camc314)
🚜 Refactor
- d499400 linter/jsx-handler-names: Simplify option checks for inline functions and local variables (#13405) (camc314)
- 62da550 linter/no-done-callback: Remove nested if-let stmts (#13400) (camc314)
- c9cb2a4 eslint/arrow-body-style: Clean up implementation and improve documentation (#13389) (Antoine Zanardi)
- 53de36e linter: ContextSubHost hold owned Semantic (#13338) (overlookmotel)
- e871dab linter: Run linter with ContextSubHost (#12769) (Sysix)
- 077abdf linter: Introduce ContextSubHost for cross script block analyse (#12724) (Sysix)
- 6431033 linter: Move ignore logic to LintIgnoreMatcher (#13222) (Sysix)
📚 Documentation
- 51d3840 linter: Update oxlint CLI help message on .oxlintrc.json config file (#13334) (0xCLARITY)
⚡ Performance
- 827fe1c linter: Use Cell instead of RefCell (#13330) (overlookmotel)
🧪 Testing
- 13470b2 oxc_linter: Run from_tsgo_lint_diagnostic tests only with lsp feature flag (#13396) (Sysix)
- 6eeeb67 oxlint: Add test for ignore patterns referenced by symlink file (#13356) (Sysix)
- 33e0e8b language_server: Dont run tsgolint related test on big-edian (#13342) (Sysix)
💼 Other
- 90f674e oxlint: V1.14.0 (#13416) (oxc-bot)
1.13.0 26 d’agost del 2025 — 64 bits PortableARM64 Portable
Notes de la versió
[1.13.0] - 2025-08-26
💥 BREAKING CHANGES
- 63abd7c oxlint: [BREAKING] Do not ignore hidden dot directories by default (#13194) (Sysix)
🚀 Features
- 47aefa8 editor: Add oxc.typeAware option for workspaces (#13147) (Sysix)
- faee1a4 language_server: Add typeAware option (#13146) (Sysix)
- 70f0143 linter: Add jest/padding-around-test-blocks rule (#12985) (Peter Cardenas)
- a56f0da linter: Add profiling support for tsgolint via environment variables (#13238) (no-yan)
- cc7f088 linter: Add react/jsx-handler-names rule (#13079) (Takuji Shimokawa)
- c6c5075 linter/always-return: Implement promise rule always-return (#13178) (Li Wei)
🐛 Bug Fixes
- fd14b39 linter/array-callback-return: False postive with throw stmt in callback (#13264) (camc314)
- 648e939 linter: Parse ignorePatterns with gitignore syntax (#13221) (Sysix)
- a1b52c8 linter/no-unused-private-class-members: Fix false positive with await expression (#13249) (camc314)
- d80c07c linter/explicit-module-boundary-types: False positve with arrow fn in exported fn body (#13232) (camc314)
- 06ec43c linter: Enhance handling of disable directives for next-line and line spans (#13157) (camc314)
- 163dbea linter/prefer-for-of: False positive with diff member expression (#13201) (camc314)
- ada4e84 linter/prefer-await-to-then: False positive with Promise call as return arg (#13189) (camc314)
- 63d12d3 linter: Handle arrow function expressions in static blocks for no-unused-private-class-members (#13181) (camc314)
- 02c779f npm/oxlint: Make oxlint-tsgolint truly optional (#13153) (Boshen)
🚜 Refactor
- 2f9a6ac linter: Move lsp relevant code into own file (#13243) (Sysix)
- 2761300 linter: Include tsgolint suggestion for Message::from_tsgo_lint_diagnostic (#13255) (Sysix)
- c138fad linter: Avoid fs reads in TsGoLintState when --silent is used (#13199) (Sysix)
- 845c6de linter: Store source_text of already opened files for TsGoLintState (#13197) (Sysix)
📚 Documentation
- 7fcc51e linter: Fix doc code block in eslint/func-style rule (#13171) (leaysgur)
- deddc8c linter/no-console: Correct typo in correct code example (#13182) (camc314)
🧪 Testing
- 30c54a3 linter: Add test for Message::from_tsgo_lint_diagnostic (#13254) (Sysix)
1.12.0 17 d’agost del 2025 — 64 bits PortableARM64 Portable
Notes de la versió
[1.12.0] - 2025-08-17
🚀 Features
- 09b597f linter: Handle help message from tsgolint (#13143) (Boshen)
- aecacae linter: Support ignorePatterns for nested configs (#12210) (Sysix)
- c661bac linter: Add eslint/prefer-template rule (#13117) (yefan)
- 920e06f linter: Implement fixer for jsx_curly_brace_presence (#13005) (RoelGo)
- 1c79d02 linter: Add react/jsx-fragments rule (#12988) (Peter Cardenas)
- a799982 linter/consistent-type-specifier-style: Add fixer for top-level style config (#13023) (Li Wei)
- 61112a3 linter: Add 36 new TypeScript ESLint rules with comprehensive test fixtures (#12893) (Copilot)
- 4ce252c linter: Add dangerous suggestion for jsx-a11y/tabindex-no-positive (#12963) (Sysix)
🐛 Bug Fixes
- 66a350e oxlint: Should type linting files after ignore (#13149) (Boshen)
- 81b0162 linter: Preserve json key order for oxlint --init (#13121) (Boshen)
- f97791a linter/no-this-alias: Update NoThisAliasConfig default config (#13095) (camc314)
- 43b1c5a linter: Do not count type-aware rules, when not enabled (#13062) (Sysix)
- 618ee87 linter/array-callback-return: Fix handling of default case in switch statements for array-callback-return rule (#13081) (Li Wei)
- c211d32 linter: Fix whitespace handling in disable directives (#13083) (Li Wei)
- a0ccada tsgolint: Handle non-zero exit status from tsgolint process (#13087) (camc314)
- b0558a4 linter: Prevent unsound use of Allocator across threads (#13032) (overlookmotel)
- 2d287d0 linter/no-unused-private-class-members: False positive with private member in compound assignments (#13053) (yefan)
🚜 Refactor
- 700b412 linter: Add impl for TsGoLintDiagnostic into Message (#13144) (Sysix)
- 437a63d linter: message_to_message_with_position helper function (#13140) (Sysix)
- 8459a12 linter: Pass paths to TsGoLintState.lint method (#13131) (Sysix)
- 0dd7908 linter: Fix dead code warnings when compiling napi/oxlint2 (#13132) (overlookmotel)
- f0a517f linter: Pass cwd instead of LintServiceOptions into TsGoLintState (#13127) (Sysix)
- b638371 language_server: Do not check twice for supported extension (#13130) (Sysix)
- 34ae2f0 linter: Move tsgolint.rs to oxc_linter crate (#13126) (Sysix)
- 9f924f6 linter: Always explicitly initialize Rayon thread pool (#13122) (overlookmotel)
- 6c5b8be linter: Create AllocatorPool in Runtime::new (#13106) (overlookmotel)
- cc2a85b linter: Remove CliRunResult from TsGoLintState (#13119) (Sysix)
- 23e5642 linter: Move TsGoLintInput creation into own function (#13118) (Sysix)
- 0453ee3 linter: Rename var for consistency (#13074) (overlookmotel)
- 5783df2 linter: Dereference Allocator from AllocatorGuard (#13073) (overlookmotel)
- 1d77d92 linter: Avoid unnecessary var initialization (#13072) (overlookmotel)
- 1c15288 linter: Extract duplicated is_jsx_fragment function to shared utils (#13093) (Copilot)
- 0b61338 linter/jsx-curly-brace-presence: Iter over chars rather than using regex (#13094) (Copilot)
- 74fb6c9 linter: Reduce repeated code (#13070) (overlookmotel)
⚡ Performance
- 3bfb235 linter: Implement streaming diagnostics for tsgolint instead of waiting for output to finish (#13098) (copilot-swe-agent)
1.11.2 12 d’agost del 2025 — 64 bits PortableARM64 Portable
Notes de la versió
Bug Fixes
- c461a86 oxlint: Fix type-aware linting crash when Vue files are present (#13007) (Copilot)
- 42de3d1 linter: Update warn_correctness to correctly warn when using vitest plugin (#12991) (camc314)
- 1b0136e linter/exhaustive-deps: Use codegen in fixer rather than manual string manipulation (#12987) (camc314)
- 2936545 linter/tsgolint: Report an error if tsgolint executable failed to spawn (#12984) (camc314)
- 166f5cc linter: Fix no-fallthrough rule, when the default condition is not last (#12927) (Li Wei)
- d7e1ddb linter/config: Ensure that overrides correctly replace base rules (#12941) (camc314)
- a13b3ee oxlint: Run tsgolint.CMD under windows (#12932) (Sysix)
Refactor
- 69303de oxlint: Pass DiagnosticService as a parameter for TsGoLintState.lint() (#13004) (Sysix)
Testing
- fb8cbbf oxlint: Enable tsgolint test with config parameter for windows (#13001) (Alexander S.)
- d59f3bb oxlint: Match x.ys when replacing var (#12990) (camc314)
- 6b054b6 linter/expect-expect: Add test case for calling expect as return arg (#12983) (camc314)
- d7cca12 linter: Add test for extended configs and overrides for tsgolint (#12924) (camchenry)

El més popular a Utilitats per a desenvolupadors

Mostra-ho tot
  1. WinMergeUtilitats per a desenvolupadors · Thingamahoochie Software
  2. jqUtilitats per a desenvolupadors · jqlang
  3. x64dbgUtilitats per a desenvolupadors · x64dbg
  4. BiomeUtilitats per a desenvolupadors · BiomeJS
  5. deltaUtilitats per a desenvolupadors · Dan Davison
  6. ValeUtilitats per a desenvolupadors · errata.ai
  7. jadxUtilitats per a desenvolupadors · Skylot
  8. dnSpyUtilitats per a desenvolupadors · dnSpyEx
  9. Detect It EasyUtilitats per a desenvolupadors · horsicq
  10. DifftasticUtilitats per a desenvolupadors · Wilfred Hughes

Més programes de VoidZero Inc. & Contributors

Mostra-ho tot
  • oxfmtUtilitats per a desenvolupadors · VoidZero Inc. & Contributors

Etiquetes

Comparteix