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.
58 versions en 1 any · unes 52 per any
| Versió | Data | Mida | Fitxers |
|---|---|---|---|
| 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) |