Oxc Release Notes

Follow

200 release notes curated from 1 source by the Releasebot Team. Last updated: Sep 7, 2026

Get this feed:
  • Sep 7, 2026
    • Date parsed from source:
      Sep 7, 2026
    • First seen by Releasebot:
      Sep 7, 2026
    Oxc logo

    Oxc

    oxlint_v1.82.0: release(apps): oxlint v1.82.0 && oxfmt v0.67.0 (#26384)

    Oxc releases Oxlint and Oxfmt updates with new lint rule support, many bug fixes, CSS and GraphQL formatter improvements, faster formatting, and a security dependency refresh. Oxfmt also includes a breaking parser change and expanded comment handling.

    Oxlint

    πŸš€ Features

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

    πŸ› Bug Fixes

    • 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])

    Oxfmt

    πŸ’₯ BREAKING CHANGES

    • 2c9a947 parser: [BREAKING] Reduce MAX_LEN to 256 bytes below u32::MAX (#26352) (overlookmotel)

    πŸš€ Features

    • 68e12ab formatter_css: Follow the oxc-css-parser's acceptance line (#26337) (leaysgur)

    πŸ› Bug Fixes

    • f7acdc0 formatter: Treat a JSDoc cast target as opaque in chain layouts (#26375) (leaysgur)
    • 104061b formatter: Keep JSDoc cast parens with a comment inside them (#26374) (leaysgur)
    • 3d00a76 formatter_css: Keep comment inside important and simple-vars colon (#26370) (leaysgur)
    • 172ddb6 formatter_css: Keep a same-line line comment on its line (#26321) (leaysgur)
    • cafaf32 formatter_css: Never drop comments inside an at-rule prelude (#26320) (leaysgur)
    • 534a0fe formatter_css: Keep a line comment on its comma's line (#26319) (leaysgur)
    • 99cfd75 formatter_css: Hide raw comment printing API, use strcut instead (#26316) (leaysgur)
    • 2028896 formatter_css: Preserve comments around SCSS/Less variable values (#26276) (leaysgur)
    • 6752abc formatter_css: Keep leading comments before (#26272) (leaysgur)
    • 3b054de formatter_graphql: Align comment printing after open { (#26271) (leaysgur)
    • b3c287a formatter_css: Fix SCSS bracket list printing (#26270) (leaysgur)
    • bac770a formatter_css: Preserve comment in SCSS paren comma list (#26269) (leaysgur)
    • c7b57ef formatter_css: Print SCSS map consisntent with and without comment (#26268) (leaysgur)
    • 063e2b6 formatter_css: Preserve trailing comma in single-item scss lists (#26245) (leaysgur)
    • 5f9580d oxfmt: Bump prettier-plugin-tailwindcss (#26273) (leaysgur)

    ⚑ Performance

    • 1cad286 oxfmt: Match editorconfig once per file (#26239) (Yuji Sugiura)
    • 260c5eb oxfmt: Match overrides once per file (#26238) (leaysgur)
    • 61565bc oxfmt: Share resolved FormatConfig via Arc instead of cloning per file (#26237) (leaysgur)

    πŸ“š Documentation

    • 32084d4 formatter_core: Clarify printer hard_line compression (#26312) (leaysgur)
    • 4fabdcc formatter,formatter_css,formatter_graphql,formatter_yaml: Update DIVERGENCES.md (#26267) (leaysgur)
    • 26a1fa4 formatter_core: Refine FORMATTER_POLICY (#26266) (leaysgur)

    πŸ›‘οΈ Security

    • 9a612d5 deps: Update npm packages (#26178) (renovate[bot])
    Original source
  • Sep 7, 2026
    • Date parsed from source:
      Sep 7, 2026
    • First seen by Releasebot:
      Sep 7, 2026
    Oxc logo

    Oxc

    oxfmt_v0.67.0: release(apps): oxlint v1.82.0 && oxfmt v0.67.0 (#26384)

    Oxc releases new linting, formatting, and performance updates, including broader ESLint and TypeScript rule support, multiple bug fixes, CSS and GraphQL formatter improvements, faster file-based config handling, and a parser breaking change in Oxfmt.

    Oxlint

    πŸš€ Features

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

    πŸ› Bug Fixes

    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])

    Oxfmt

    πŸ’₯ BREAKING CHANGES

    2c9a947 parser: [BREAKING] Reduce MAX_LEN to 256 bytes below u32::MAX (#26352) (overlookmotel)

    πŸš€ Features

    68e12ab formatter_css: Follow the oxc-css-parser's acceptance line (#26337) (leaysgur)

    πŸ› Bug Fixes

    f7acdc0 formatter: Treat a JSDoc cast target as opaque in chain layouts (#26375) (leaysgur)

    104061b formatter: Keep JSDoc cast parens with a comment inside them (#26374) (leaysgur)

    3d00a76 formatter_css: Keep comment inside important and simple-vars colon (#26370) (leaysgur)

    172ddb6 formatter_css: Keep a same-line line comment on its line (#26321) (leaysgur)

    cafaf32 formatter_css: Never drop comments inside an at-rule prelude (#26320) (leaysgur)

    534a0fe formatter_css: Keep a line comment on its comma's line (#26319) (leaysgur)

    99cfd75 formatter_css: Hide raw comment printing API, use strcut instead (#26316) (leaysgur)

    2028896 formatter_css: Preserve comments around SCSS/Less variable values (#26276) (leaysgur)

    6752abc formatter_css: Keep leading comments before (#26272) (leaysgur)

    3b054de formatter_graphql: Align comment printing after open { (#26271) (leaysgur)

    b3c287a formatter_css: Fix SCSS bracket list printing (#26270) (leaysgur)

    bac770a formatter_css: Preserve comment in SCSS paren comma list (#26269) (leaysgur)

    c7b57ef formatter_css: Print SCSS map consisntent with and without comment (#26268) (leaysgur)

    063e2b6 formatter_css: Preserve trailing comma in single-item scss lists (#26245) (leaysgur)

    5f9580d oxfmt: Bump prettier-plugin-tailwindcss (#26273) (leaysgur)

    ⚑ Performance

    1cad286 oxfmt: Match editorconfig once per file (#26239) (Yuji Sugiura)

    260c5eb oxfmt: Match overrides once per file (#26238) (leaysgur)

    61565bc oxfmt: Share resolved FormatConfig via Arc instead of cloning per file (#26237) (leaysgur)

    πŸ“š Documentation

    32084d4 formatter_core: Clarify printer hard_line compression (#26312) (leaysgur)

    4fabdcc formatter,formatter_css,formatter_graphql,formatter_yaml: Update DIVERGENCES.md (#26267) (leaysgur)

    26a1fa4 formatter_core: Refine FORMATTER_POLICY (#26266) (leaysgur)

    πŸ›‘οΈ Security

    9a612d5 deps: Update npm packages (#26178) (renovate[bot])

    Original source
  • All of your release notes in one feed

    Join Releasebot and get updates from Oxc and hundreds of other software products.

    Create account
  • Sep 7, 2026
    • Date parsed from source:
      Sep 7, 2026
    • First seen by Releasebot:
      Sep 7, 2026
    Oxc logo

    Oxc

    oxc crates_v0.149.0

    Oxc ships parser, minifier, transformer, and codegen improvements with breaking changes, new allocator and AST capabilities, and a slate of bug fixes and performance upgrades for more reliable JavaScript handling.

    πŸ’₯ BREAKING CHANGES

    66744f0 parser: [BREAKING] Rename panicked to fatal_error in ParserReturn (#26382) (overlookmotel)

    2c9a947 parser: [BREAKING] Reduce MAX_LEN to 256 bytes below u32::MAX (#26352) (overlookmotel)

    πŸš€ Features

    32bdc5b allocator: Construct ArenaHashSet with any Default hasher (#26372) (Dunqing)

    a17de58 minifier: Process of return/throw in non last position and fix async * inlining (#26214) (Armano)

    bfb4c57 parser: Distinguish unapplied no-side-effects comments (#26120) (η’³θ‹― Carbon)

    1d9b9d3 ast: Add GetNodeId trait (#26145) (camc314)

    πŸ› Bug Fixes

    b156333 codegen: Order accessibility before abstract on accessors (#26392) (camc314)

    116c8b8 transformer/class-properties: Keep private methods in class-expression scope (#26308) (Changsu Seong)

    1400a0f parser: Require a string source after export ... from (#26389) (camc314)

    2da73b7 codegen: Print matching quoted import names as identifiers (#26386) (camc314)

    0a81d29 codegen: Preserve private-in left operand precedence (#26383) (camc314)

    9a02337 parser: Correctly round large nondecimal literals (#26379) (camc314)

    3d95477 transformer: Gate async-only rewrites by owning transform (#26326) (Dunqing)

    f45a9ee transformer: Limit arguments capture to lowered async functions (#26317) (Dunqing)

    789969f transformer: Gate this capture by owning async transform (#26227) (Dunqing)

    affeb14 minifier: Mangle class private members in Node API (#26118) (η’³θ‹― Carbon)

    8b35abd semantic: Detect duplicate private class elements (#26361) (camc314)

    457ed57 semantic: Reject await and yield in rest parameter defaults (#26359) (camc314)

    4b89c7b semantic: Reject jumps across arrow functions (#26357) (camc314)

    c966aca parser: Do not omit < token opening type argument list (#26328) (overlookmotel)

    f07dca5 ast_visit: Add the trimmed prefix length to translation table offsets (#26173) (Bharadwaj Pendyala)

    3ab9bd1 parser: Do not re-lex template substitution tail after fatal error (#26230) (overlookmotel)

    07851b9 parser: Fix debug assert failure when lexer error with tokens enabled (#26229) (overlookmotel)

    00dea7a allocator: Gate Allocator::data_end_ptr behind fixed_size feature (#26248) (camc314)

    853ffab ecmascript: Avoid charAt panic on 32-bit (#26244) (camc314)

    34feccb runtime: Remove stale regenerator exports (#26243) (camc314)

    ⚑ Performance

    34a242e minifier: Use Ident for property mangler (#26334) (sapphi-red)

    5303f5c minifier: Unify merging of last expression into target sequence (#26264) (Armano)

    2ca7d29 minifier: Consume nodes in minimize_statements in reverse order (#26258) (Armano)

    d2354b4 mangler: Use Ident for variable names to keep (#26333) (sapphi-red)

    5b3e335 minifier: Use Ident instead of Str in KeepVar (#26332) (sapphi-red)

    51366fb minifier: Use IdentHashSet in PrivateMemberUsageStack (#26331) (sapphi-red)

    d19c42a minifier: Merge nested if stmt in place instead of creating dummies (#26351) (Armano)

    356def6 parser: Shrink annotation comment ranges (#26356) (overlookmotel)

    a5be474 parser: Shave instruction off parse_jsx_element_name (#26355) (overlookmotel)

    9780663 parser: Remove fatal error guard from parse_jsx_element_name (#26354) (overlookmotel)

    766e12f parser: Remove token field from LexerCheckpoint (#26350) (overlookmotel)

    πŸ“š Documentation

    d4b4e61 transformer: Document ES2015 target floor (#26378) (Dunqing)

    67dd054 ast_visit: Correct out-of-date comments on Utf8ToUtf16 converter (#26285) (overlookmotel)

    a8ed2a7 minifier: Fix stale validation instructions (#26251) (camc314)

    Original source
  • Sep 7, 2026
    • Date parsed from source:
      Sep 7, 2026
    • First seen by Releasebot:
      Sep 7, 2026
    Oxc logo

    Oxc

    oxlint v1.82.0 & oxfmt v0.67.0

    Oxc releases Oxlint v1.82.0 and Oxfmt v0.67.0 with breaking parser changes, new lint and formatter improvements, a broad set of bug fixes, faster formatting, and updated dependencies for security.

    Table of Contents

    Oxlint v1.82.0

    Oxfmt v0.67.0

    Oxlint v1.82.0

    πŸ’₯ 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])

    Oxfmt v0.67.0

    πŸ’₯ BREAKING CHANGES

    66744f0 parser: [BREAKING] Rename panicked to fatal_error in ParserReturn (#26382) (overlookmotel)
    2c9a947 parser: [BREAKING] Reduce MAX_LEN to 256 bytes below u32::MAX (#26352) (overlookmotel)

    πŸš€ Features

    68e12ab formatter_css: Follow the oxc-css-parser's acceptance line (#26337) (leaysgur)

    πŸ› Bug Fixes

    f7acdc0 formatter: Treat a JSDoc cast target as opaque in chain layouts (#26375) (leaysgur)
    104061b formatter: Keep JSDoc cast parens with a comment inside them (#26374) (leaysgur)
    3d00a76 formatter_css: Keep comment inside important and simple-vars colon (#26370) (leaysgur)
    172ddb6 formatter_css: Keep a same-line line comment on its line (#26321) (leaysgur)
    cafaf32 formatter_css: Never drop comments inside an at-rule prelude (#26320) (leaysgur)
    534a0fe formatter_css: Keep a line comment on its comma's line (#26319) (leaysgur)
    99cfd75 formatter_css: Hide raw comment printing API, use strcut instead (#26316) (leaysgur)
    2028896 formatter_css: Preserve comments around SCSS/Less variable values (#26276) (leaysgur)
    6752abc formatter_css: Keep leading comments before (#26272) (leaysgur)
    3b054de formatter_graphql: Align comment printing after open { (#26271) (leaysgur)
    b3c287a formatter_css: Fix SCSS bracket list printing (#26270) (leaysgur)
    bac770a formatter_css: Preserve comment in SCSS paren comma list (#26269) (leaysgur)
    c7b57ef formatter_css: Print SCSS map consisntent with and without comment (#26268) (leaysgur)
    063e2b6 formatter_css: Preserve trailing comma in single-item scss lists (#26245) (leaysgur)
    5f9580d oxfmt: Bump prettier-plugin-tailwindcss (#26273) (leaysgur)

    ⚑ Performance

    1cad286 oxfmt: Match editorconfig once per file (#26239) (Yuji Sugiura)
    260c5eb oxfmt: Match overrides once per file (#26238) (leaysgur)
    61565bc oxfmt: Share resolved FormatConfig via Arc instead of cloning per file (#26237) (leaysgur)

    πŸ“š Documentation

    32084d4 formatter_core: Clarify printer hard_line compression (#26312) (leaysgur)
    4fabdcc formatter,formatter_css,formatter_graphql,formatter_yaml: Update DIVERGENCES.md (#26267) (leaysgur)
    26a1fa4 formatter_core: Refine FORMATTER_POLICY (#26266) (leaysgur)

    πŸ›‘οΈ Security

    9a612d5 deps: Update npm packages (#26178) (renovate[bot])

    Original source
  • Sep 1, 2026
    • Date parsed from source:
      Sep 1, 2026
    • First seen by Releasebot:
      Sep 2, 2026
    Oxc logo

    Oxc

    oxlint_v1.81.0: release(apps): oxlint v1.81.0 && oxfmt v0.66.0 (#26199)

    Oxc releases Oxlint and Oxfmt updates with new lint suggestions, broader JS, JSX, Svelte, Vue, and plugin handling fixes, plus a formatter feature for CSS nested configs and many comment, YAML, and JSDoc corrections for more consistent output.

    Oxlint

    πŸš€ 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)

    Oxfmt

    πŸš€ Features

    • 1fb37b6 formatter/css: Format declaration-shaped raw-prelude rules (postcss nested config blocks) (#26194) (leaysgur)

    πŸ› Bug Fixes

    • 57e8e22 formatter_css: Space a folded sign after a call in Less operations (#26134) (leaysgur)
    • e4298fb formatter/jsdoc: Follow CommonMark for interrupting lists and guard wrapping from creating them (#26098) (leaysgur)
    • a1e21c2 formatter: Apply head body policy everywhere (#26074) (leaysgur)
    • 676b7e1 formatter: Keep comments in their for-head slot, before an empty-statement body and do-while (#26073) (leaysgur)
    • 3bbcea6 formatter: Keep comments between a head and its body out of the braces across all constructs (#26071) (leaysgur)
    • 57537a2 formatter: Place comments between a head and open paren (#26058) (leaysgur)
    • e2d53e7 formatter: Place comments between a statement head and its body (#26043) (leaysgur)
    • 662556c formatter: Print the idempotent placement for comments in dropped parens (#26041) (leaysgur)
    • faf11d9 formatter_yaml: Keep trailing whitespace in block scalars (#26072) (leaysgur)

    ⚑ Performance

    • ac4785a diagnostics: Use fixed ANSI styles (#26130) (Boshen)

    πŸ“š Documentation

    • b879608 formatter,formatter_graphql,formatter_yaml: Annotate own-line comment inlining as known policy violation (#26131) (leaysgur)
    • 181953b oxfmt,formatter_core,formatter,formatter_yaml,formatter_css,formatter_graphql: Extract DIVERGENCES.md out from AGENTS.md (#26121) (leaysgur)
    • a67cb9d formatter,formatter_core: Document comment moving policy (#26075) (leaysgur)
    • fc175b0 formatter_core: Clarify idempotency test infra (#26069) (leaysgur)
    Original source
  • Similar to Oxc with recent updates:

  • Sep 1, 2026
    • Date parsed from source:
      Sep 1, 2026
    • First seen by Releasebot:
      Sep 2, 2026
    Oxc logo

    Oxc

    oxfmt_v0.66.0: release(apps): oxlint v1.81.0 && oxfmt v0.66.0 (#26199)

    Oxc releases Oxlint and Oxfmt updates with new linting suggestions, broader rule coverage, safer autofixes, plugin and LSP fixes, and multiple formatter improvements for comments, CSS, YAML, and JSDoc.

    Oxlint

    πŸš€ 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)

    Oxfmt

    πŸš€ Features

    • 1fb37b6 formatter/css: Format declaration-shaped raw-prelude rules (postcss nested config blocks) (#26194) (leaysgur)

    πŸ› Bug Fixes

    • 57e8e22 formatter_css: Space a folded sign after a call in Less operations (#26134) (leaysgur)
    • e4298fb formatter/jsdoc: Follow CommonMark for interrupting lists and guard wrapping from creating them (#26098) (leaysgur)
    • a1e21c2 formatter: Apply head body policy everywhere (#26074) (leaysgur)
    • 676b7e1 formatter: Keep comments in their for-head slot, before an empty-statement body and do-while (#26073) (leaysgur)
    • 3bbcea6 formatter: Keep comments between a head and its body out of the braces across all constructs (#26071) (leaysgur)
    • 57537a2 formatter: Place comments between a head and open paren (#26058) (leaysgur)
    • e2d53e7 formatter: Place comments between a statement head and its body (#26043) (leaysgur)
    • 662556c formatter: Print the idempotent placement for comments in dropped parens (#26041) (leaysgur)
    • faf11d9 formatter_yaml: Keep trailing whitespace in block scalars (#26072) (leaysgur)

    ⚑ Performance

    • ac4785a diagnostics: Use fixed ANSI styles (#26130) (Boshen)

    πŸ“š Documentation

    • b879608 formatter,formatter_graphql,formatter_yaml: Annotate own-line comment inlining as known policy violation (#26131) (leaysgur)
    • 181953b oxfmt,formatter_core,formatter,formatter_yaml,formatter_css,formatter_graphql: Extract DIVERGENCES.md out from AGENTS.md (#26121) (leaysgur)
    • a67cb9d formatter,formatter_core: Document comment moving policy (#26075) (leaysgur)
    • fc175b0 formatter_core: Clarify idempotency test infra (#26069) (leaysgur)
    Original source
  • Sep 1, 2026
    • Date parsed from source:
      Sep 1, 2026
    • First seen by Releasebot:
      Sep 2, 2026
    Oxc logo

    Oxc

    oxc crates_v0.148.0

    Oxc releases a new update with breaking allocator changes, smarter minifier optimizations, fuller comment attachment in the parser, and several semantic, regex, and transform bug fixes. It also brings code generation and diagnostics performance improvements.

    BREAKING CHANGES

    a31567a allocator: [BREAKING] Make Allocator::cursor_ptr and data_end_ptr private (#26081) (overlookmotel)

    Features

    115955d minifier: Drop cases whose condition is statically false (#26172) (Armano)

    784e9fa minifier: Invert !0 and !1 in place for boolean context to 1 and 0 (#26050) (Armano)

    1e902cc minifier: Expand fold leading assignments into the var decl (#26142) (Armano)

    3ed4f6a minifier: Expand de morgan's optimization to allow move of ! (#25930) (Armano)

    5672585 parser: Attach all comments to nodes (#25944) (camc314)

    Bug Fixes

    a3d33dd semantic: Skip body bindings in type parameters and this param (#26169) (Dunqing)

    4adfb4c semantic: Validate chained continue labels (#26157) (camc314)

    b874f48 ecmascript: Math.round only exact half ties (#26150) (camc314)

    a625378 minifier: Coerce omitted indexOf search argument (#26149) (camc314)

    dc7398b ecmascript: Trim trailing whitespace in string to number (#26148) (camc314)

    243b685 transformer/object-rest: Lower multiple declarators correctly (#26147) (camc314)

    dc09a3a parser: Avoid panic on escaped string export names (#26146) (camc314)

    e412cf2 linter: Clamp invalid JS plugin locations (#26144) (camc314)

    c3dedc9 semantic: Skip function body bindings in parameters (#26099) (Dunqing)

    e74de61 transform-react: Match Babel diagnostic reporting (#26128) (Boshen)

    d5163d0 parser: Correctly classify unapplied pure annotations (#26084) (camc314)

    8531b9b linter/plugins: Alter method for obtaining mutable Program when sending AST to JS plugins (#26077) (overlookmotel)

    9b51658 regular_expression: Allow oversized decimal escape for Annex B (#26070) (leaysgur)

    c8de4df regular_expression: Reject oversized backreferences (#26055) (camc314)

    Performance

    ac4785a diagnostics: Use fixed ANSI styles (#26130) (Boshen)

    07a0793 packages/codegen: Flatten output in chunks (#26109) (overlookmotel)

    487427a packages/codegen: Faster string flattening (#26108) (overlookmotel)

    7785583 packages/codegen: Ensure indent strings are flattened (#26107) (overlookmotel)

    0dd4db3 packages/codegen: Store mapping positions in an Int32Array (#26085) (overlookmotel)

    Original source
  • Sep 1, 2026
    • Date parsed from source:
      Sep 1, 2026
    • First seen by Releasebot:
      Sep 2, 2026
    Oxc logo

    Oxc

    oxlint v1.81.0 & oxfmt v0.66.0

    Oxc releases Oxlint v1.81.0 and Oxfmt v0.66.0 with new linting suggestions, broader rule fixes, safer plugin handling, and formatter improvements for CSS, imports, comments, and YAML. The update also sharpens documentation and performance details.

    Table of Contents

    Oxlint v1.81.0

    Oxfmt v0.66.0

    Oxlint v1.81.0

    πŸš€ 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)

    Oxfmt v0.66.0

    πŸš€ Features

    1fb37b6 formatter/css: Format declaration-shaped raw-prelude rules (postcss nested config blocks) (#26194) (leaysgur)

    πŸ› Bug Fixes

    9f81002 formatter: Re-add suppressed statement terminators per options.semi (#26220) (leaysgur)
    769ffd5 formatter: Print suppressed typecast parens (#26218) (leaysgur)
    5ff57f8 formatter/sort-imports: Handle custom side effect groups (#26217) (leaysgur)
    2f4d759 formatter: Do not skip cast comment lookup (#26216) (leaysgur)
    1213e12 formatter: Preserve comment for statement terminators and binary casts (#26213) (leaysgur)
    57e8e22 formatter_css: Space a folded sign after a call in Less operations (#26134) (leaysgur)
    e4298fb formatter/jsdoc: Follow CommonMark for interrupting lists and guard wrapping from creating them (#26098) (leaysgur)
    a1e21c2 formatter: Apply head body policy everywhere (#26074) (leaysgur)
    676b7e1 formatter: Keep comments in their for-head slot, before an empty-statement body and do-while (#26073) (leaysgur)
    3bbcea6 formatter: Keep comments between a head and its body out of the braces across all constructs (#26071) (leaysgur)
    57537a2 formatter: Place comments between a head and open paren (#26058) (leaysgur)
    e2d53e7 formatter: Place comments between a statement head and its body (#26043) (leaysgur)
    662556c formatter: Print the idempotent placement for comments in dropped parens (#26041) (leaysgur)
    faf11d9 formatter_yaml: Keep trailing whitespace in block scalars (#26072) (leaysgur)

    ⚑ Performance

    ac4785a diagnostics: Use fixed ANSI styles (#26130) (Boshen)

    πŸ“š Documentation

    b879608 formatter,formatter_graphql,formatter_yaml: Annotate own-line comment inlining as known policy violation (#26131) (leaysgur)
    181953b oxfmt,formatter_core,formatter,formatter_yaml,formatter_css,formatter_graphql: Extract DIVERGENCES.md out from AGENTS.md (#26121) (leaysgur)
    a67cb9d formatter,formatter_core: Document comment moving policy (#26075) (leaysgur)
    fc175b0 formatter_core: Clarify idempotency test infra (#26069) (leaysgur)

    Original source
  • Aug 24, 2026
    • Date parsed from source:
      Aug 24, 2026
    • First seen by Releasebot:
      Aug 24, 2026
    Oxc logo

    Oxc

    oxlint_v1.80.0: release(apps): oxlint v1.80.0 && oxfmt v0.65.0 (#26045)

    Oxc releases Oxlint and Oxfmt updates with a new TypeScript lint suggestion, multiple lint and parser bug fixes, improved import and global resolution, and formatter fixes for class decorators and exports.

    Oxlint

    πŸš€ Features

    70c3e35 linter/typescript/no-confusing-non-null-assertion: Implement suggestion (#26012) (Mikhail Baev)

    πŸ› Bug Fixes

    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)

    Oxfmt

    πŸ› Bug Fixes

    bf37dd5 formatter: Preserve class decorators before export when the statement is suppressed (#26034) (leaysgur)

    Original source
  • Aug 24, 2026
    • Date parsed from source:
      Aug 24, 2026
    • First seen by Releasebot:
      Aug 24, 2026
    Oxc logo

    Oxc

    oxfmt_v0.65.0: release(apps): oxlint v1.80.0 && oxfmt v0.65.0 (#26045)

    Oxc ships Oxlint and Oxfmt updates with a new TypeScript no-confusing-non-null-assertion suggestion, refinements to ESLint, Vue, React, and estree handling, plus formatter fixes for suppressed class decorators and other bug fixes and documentation updates.

    Oxlint

    πŸš€ Features

    70c3e35 linter/typescript/no-confusing-non-null-assertion: Implement suggestion (#26012) (Mikhail Baev)

    πŸ› Bug Fixes

    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)

    Oxfmt

    πŸ› Bug Fixes

    bf37dd5 formatter: Preserve class decorators before export when the statement is suppressed (#26034) (leaysgur)

    Original source
  • Aug 24, 2026
    • Date parsed from source:
      Aug 24, 2026
    • First seen by Releasebot:
      Aug 24, 2026
    Oxc logo

    Oxc

    oxc crates_v0.147.0

    Oxc releases a minifier, parser, and codegen update with new switch-statement folding, safer if-to-for handling, decorator span fixes, private identifier and sourcemap improvements, plus a broad round of performance optimizations and documentation cleanup.

    Features

    b6e9e5e minifier: Fold switch stmt whose parent is not block stmt (#25403) (Armano)

    Bug Fixes

    8db1053 codegen: Require sourcemap for example (#26047) (camc314)

    8a9bdbd estree: Include decorators in FormalParameterRest spans (#26021) (camc314)

    6f0c7cf minifier: Avoid merging if to for in sloppy mode when containing function declaration (#25638) (sapphi-red)

    2cde1f6 rust: Address nightly deprecations (#25998) (Boshen)

    6c5ad1b codegen: Only add mapping names for PrivateIdentifiers which have changed (#25958) (overlookmotel)

    2dad1e0 parser: Track irregular line terminators in trivia (#25947) (camc314)

    58ba651 minifier: Avoid merging if to for when the body contains a function declaration (#25637) (sapphi-red)

    a185ac3 codegen: Print # before private identifier in TS signature key (#25938) (overlookmotel)

    af82a07 minifier: Keep unary + when the other operand has side effects (#25645) (Kotaro Chikuba)

    Performance

    20711f4 packages/codegen: Remove node param from write and markMap functions in sourcemap builds (#25989) (overlookmotel)

    29a7749 packages/codegen: Pass start and end to write and mark functions (#25986) (overlookmotel)

    8ae741b packages/codegen: Replace write calls with writeIdent (#25984) (overlookmotel)

    a78ed30 packages/codegen: Remove last param from writeWithMapNamed (#25983) (overlookmotel)

    53f6270 packages/codegen: Eagerly initialize mapNames (#25979) (overlookmotel)

    5b43c60 packages/codegen: Split recording mappings into multiple functions (#25978) (overlookmotel)

    cc947b5 packages/codegen: Reduce property lookups (#25977) (overlookmotel)

    c22a9cc packages/codegen: Combine condition checks (#25976) (overlookmotel)

    215a6a5 packages/codegen: Add functions for writing/marking unnamed mappings (#25975) (overlookmotel)

    fe444cc codegen: Avoid allocations for single comment anchors (#25598) (camc314)

    a0aee81 minifier: Do not rebuild expression when substituting void to null (#25964) (Armano)

    1004439 packages/codegen: Merge mark and write calls in printImportAttributes (#25972) (overlookmotel)

    94c8a34 packages/codegen: Remove node param from printString and printNonNegativeFloat (#25971) (overlookmotel)

    7e2b4b3 packages/codegen: printNonNegativeFloat write mapping directly (#25968) (overlookmotel)

    f09c8ab minifier: Avoid creation of unnecessary conditional expressions (#25931) (Armano)

    53ff080 packages/codegen: Remove lastWasPostfixClose (#25888) (overlookmotel)

    Documentation

    07de646 packages/codegen: Fix JSDoc comments on write* methods (#25966) (overlookmotel)

    3b09c04 packages/codegen: Clarify comment (#25959) (overlookmotel)

    Original source
  • Aug 24, 2026
    • Date parsed from source:
      Aug 24, 2026
    • First seen by Releasebot:
      Aug 24, 2026
    Oxc logo

    Oxc

    oxlint v1.80.0 & oxfmt v0.65.0

    Oxc releases Oxlint v1.80.0 and Oxfmt v0.65.0, bringing a new TypeScript linting suggestion, multiple lint and formatting bug fixes, and updates to decorators, globals, React, and Vue handling.

    Table of Contents

    Oxlint v1.80.0

    Oxfmt v0.65.0

    Oxlint v1.80.0

    πŸš€ 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)

    Oxfmt v0.65.0

    πŸ› Bug Fixes

    bf37dd5 formatter: Preserve class decorators before export when the statement is suppressed (#26034) (leaysgur)

    Original source
  • Aug 19, 2026
    • Date parsed from source:
      Aug 19, 2026
    • First seen by Releasebot:
      Aug 19, 2026
    Oxc logo

    Oxc

    oxc crates_v0.146.0

    Oxc improves its minifier, codegen, and sourcemap handling with better boolean negation, faster mapping and printing paths, plus fixes for input typing, unresolved parameter types, and enum template sourcemaps.

    Features

    83cb516 minifier: Improve negation of expressions in boolean context (#25755) (Armano)

    Bug Fixes

    82a790d codegen: Narrow printSync input type (#25871) (camc314)
    134fb22 isolated-declarations: Preserve unresolved parameter types (#25909) (Dunqing)
    526c2b3 codegen: Remove deprecated test APIs (#25889) (camc314)
    344a9b2 codegen: Align enum template sourcemaps (#25872) (camc314)

    Performance

    603b904 packages/codegen: Check sourceText only once (#25887) (overlookmotel)
    5ef0c93 minifier: Unwrap all unary exprs without creating dummy expressions (#25891) (Armano)
    8783524 packages/codegen: Remove loop from growMappingBuffer (#25886) (overlookmotel)
    b6b14c0 packages/codegen: Remove redundant branch (#25885) (overlookmotel)
    be6adf0 packages/sourcemap: Make location passed to recordSourceMapping always a number (#25884) (overlookmotel)
    f720f15 packages/codegen: Take named-mapping only code off hot path in recordSourceMapping (#25883) (overlookmotel)
    a734af5 packages/codegen: Remove redundant setting of last in printImportAttributes and printIf (#25882) (overlookmotel)
    c6e44c6 packages/codegen: Combine 2 writes in printJSXElement (#25881) (overlookmotel)
    8801662 packages/codegen: Remove redundant mapping from printParams (#25880) (overlookmotel)

    Documentation

    5ad330e packages/codegen: Reformat comments (#25876) (overlookmotel)

    Original source
  • Aug 18, 2026
    • Date parsed from source:
      Aug 18, 2026
    • First seen by Releasebot:
      Aug 18, 2026
    Oxc logo

    Oxc

    oxlint_v1.79.0: release(apps): oxlint v1.79.0 && oxfmt v0.64.0 (#25866)

    Oxc ships breaking linter changes, new TypeScript and React rule improvements, better diagnostics, and performance gains. Oxfmt adds experimental operator positioning support and fixes a range of formatting and comment-handling issues across CSS, YAML, and general code.

    Oxlint

    πŸ’₯ 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)
    a38f7b3 oxlint,oxfmt: Apply .gitignore only to walk targets, not
    explicitly named files (#25531) (leaysgur)
    509931b semantic: Classify global references per identifier (#25608)
    (camc314)
    0c68b7f estree: Emit decorators on FormalParameterRest (#25582)
    (camc314)
    1d22912 linter/plugins: Parse rule-less directive justifications
    (#25559) (camc314)
    eaf80d8 linter/unicorn/prefer-node-protocol: Validate exact Node.js
    built-in specifiers (#25558) (camc314)
    57b94af linter/promise/no-multiple-resolved: Ignore unresolved globals
    (#25530) (Tushar Singh)
    80e64c2 linter/expect-expect: Validate assertion regex (#25504)
    (Mikhail Baev)
    7830604 linter/react/exhaustive-deps: Treat binary expressions as a
    stable dependency (#25508) (Hamody We)
    4df5835 linter: Allow capitalized built-in calls (#25516) (Boshen)
    9d49d27 react_compiler: Bail out instead of panicking on "Expected a
    node for all scopes" (#25506) (Boshen)
    d43b562 linter/vitest/prefer-expect-assertions: Handle parameterized
    Vitest assertion suggestions (#25476) (camc314)

    ⚑ Performance

    e8303d6 linter: Shrink rule serialization dispatch (#25818) (Boshen)
    c84ede3 estree_tokens: Share JS token update entry point (#25826)
    (Boshen)
    35c8eb2 linter: Compute sort keys once with sort_by_cached_key
    (#25821) (Boshen)
    f0121ed linter: Share config deserialization entry point (#25820)
    (Boshen)
    2dacf7a oxlint: Reduce debug formatting code size (#25797) (Boshen)
    9ed10b7 linter: Use unstable sorts for unique keys (#25778) (Boshen)
    63ff8ef linter: Outline diagnostic construction (#25762) (Boshen)
    2dd7446 diagnostics: Preallocate graphical output (#25721) (Boshen)
    9c8abab diagnostics: Batch graphical reports (#25710) (Boshen)
    8e9b95f linter: Use table for rule names (#25458) (Boshen)

    Oxfmt

    πŸš€ Features

    c07fe7c oxfmt: Support experimentalOperatorPosition (#25643)
    (leaysgur)
    2adb8fb formatter: Implement operatorPosition option (#25581)
    (leaysgur)

    πŸ› Bug Fixes

    44231fb formatter: Fix comment and indent issues around unions
    (#25665) (leaysgur)
    2465e87 formatter: Keep comments in place when dropping
    EmptyStatement (#25730) (leaysgur)
    7e4f3b7 formatter: Print JSDocUnknownType (#25729) (leaysgur)
    5238d9e formatter: Keep nested awaited-paren member chain grouped in
    call arguments (#25646) (leaysgur)
    a38f7b3 oxlint,oxfmt: Apply .gitignore only to walk targets, not
    explicitly named files (#25531) (leaysgur)
    5c0a5ff formatter_css: Fill own-line block comments inside
    space-separated values (#25578) (leaysgur)
    53debfa formatter_css: Keep trailing comma and indent after
    comment-preceded last map value (#25577) (leaysgur)
    1a83a8d oxfmt: Mirror printer line suppression and restore
    dedent-to-root (#25573) (leaysgur)
    7f350d1 formatter: Keep unary comment and print only needed parens
    (#25526) (leaysgur)
    f405789 formatter_yaml: Consistent chomped eos behavior (#25523)
    (leaysgur)
    a243311 formatter_yaml: Bump oxc-yaml-parser for contentless block
    scalar (#25519) (leaysgur)
    40d38a0 formatter_css: Keep multi value function args intact after
    leading comment (#25518) (leaysgur)

    πŸ“š Documentation

    223e785 oxfmt/conformance: Update notes on conformance (#25757) (Yuji
    Sugiura)
    673dc6d oxfmt: Move some docs from AGENTS.md to code comment (#25649)
    (leaysgur)
    fed6681 oxfmt: Skip expanding overrides options (#25572) (leaysgur)

    Co-authored-by: Boshen [email protected]

    Original source
  • Aug 18, 2026
    • Date parsed from source:
      Aug 18, 2026
    • First seen by Releasebot:
      Aug 18, 2026
    Oxc logo

    Oxc

    oxfmt_v0.64.0: release(apps): oxlint v1.79.0 && oxfmt v0.64.0 (#25866)

    Oxc ships a broad Oxlint and Oxfmt update with breaking React Compiler rule splits, new TypeScript and React lint checks, improved diagnostics, faster performance, and formatter gains including experimental operator positioning and multiple bug fixes.

    Oxlint

    πŸ’₯ 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)
    • a38f7b3 oxlint,oxfmt: Apply .gitignore only to walk targets, not explicitly named files (#25531) (leaysgur)
    • 509931b semantic: Classify global references per identifier (#25608) (camc314)
    • 0c68b7f estree: Emit decorators on FormalParameterRest (#25582) (camc314)
    • 1d22912 linter/plugins: Parse rule-less directive justifications (#25559) (camc314)
    • eaf80d8 linter/unicorn/prefer-node-protocol: Validate exact Node.js built-in specifiers (#25558) (camc314)
    • 57b94af linter/promise/no-multiple-resolved: Ignore unresolved globals (#25530) (Tushar Singh)
    • 80e64c2 linter/expect-expect: Validate assertion regex (#25504) (Mikhail Baev)
    • 7830604 linter/react/exhaustive-deps: Treat binary expressions as a stable dependency (#25508) (Hamody We)
    • 4df5835 linter: Allow capitalized built-in calls (#25516) (Boshen)
    • 9d49d27 react_compiler: Bail out instead of panicking on "Expected a node for all scopes" (#25506) (Boshen)
    • d43b562 linter/vitest/prefer-expect-assertions: Handle parameterized Vitest assertion suggestions (#25476) (camc314)

    ⚑ Performance

    • e8303d6 linter: Shrink rule serialization dispatch (#25818) (Boshen)
    • c84ede3 estree_tokens: Share JS token update entry point (#25826) (Boshen)
    • 35c8eb2 linter: Compute sort keys once with sort_by_cached_key (#25821) (Boshen)
    • f0121ed linter: Share config deserialization entry point (#25820) (Boshen)
    • 2dacf7a oxlint: Reduce debug formatting code size (#25797) (Boshen)
    • 9ed10b7 linter: Use unstable sorts for unique keys (#25778) (Boshen)
    • 63ff8ef linter: Outline diagnostic construction (#25762) (Boshen)
    • 2dd7446 diagnostics: Preallocate graphical output (#25721) (Boshen)
    • 9c8abab diagnostics: Batch graphical reports (#25710) (Boshen)
    • 8e9b95f linter: Use table for rule names (#25458) (Boshen)

    Oxfmt

    πŸš€ Features

    • c07fe7c oxfmt: Support experimentalOperatorPosition (#25643) (leaysgur)
    • 2adb8fb formatter: Implement operatorPosition option (#25581) (leaysgur)

    πŸ› Bug Fixes

    • 44231fb formatter: Fix comment and indent issues around unions (#25665) (leaysgur)
    • 2465e87 formatter: Keep comments in place when dropping EmptyStatement (#25730) (leaysgur)
    • 7e4f3b7 formatter: Print JSDocUnknownType (#25729) (leaysgur)
    • 5238d9e formatter: Keep nested awaited-paren member chain grouped in call arguments (#25646) (leaysgur)
    • a38f7b3 oxlint,oxfmt: Apply .gitignore only to walk targets, not explicitly named files (#25531) (leaysgur)
    • 5c0a5ff formatter_css: Fill own-line block comments inside space-separated values (#25578) (leaysgur)
    • 53debfa formatter_css: Keep trailing comma and indent after comment-preceded last map value (#25577) (leaysgur)
    • 1a83a8d oxfmt: Mirror printer line suppression and restore dedent-to-root (#25573) (leaysgur)
    • 7f350d1 formatter: Keep unary comment and print only needed parens (#25526) (leaysgur)
    • f405789 formatter_yaml: Consistent chomped eos behavior (#25523) (leaysgur)
    • a243311 formatter_yaml: Bump oxc-yaml-parser for contentless block scalar (#25519) (leaysgur)
    • 40d38a0 formatter_css: Keep multi value function args intact after leading comment (#25518) (leaysgur)

    πŸ“š Documentation

    • 223e785 oxfmt/conformance: Update notes on conformance (#25757) (Yuji Sugiura)
    • 673dc6d oxfmt: Move some docs from AGENTS.md to code comment (#25649) (leaysgur)
    • fed6681 oxfmt: Skip expanding overrides options (#25572) (leaysgur)

    Co-authored-by: Boshen [email protected]

    Original source
Releasebot

Curated by the Releasebot team

Releasebot is an aggregator of official release notes from hundreds of software vendors and thousands of sources.

Our editorial process involves the manual review and audit of release notes procured with the help of automated systems.