Oxc Release Notes
200 release notes curated from 1 source by the Releasebot Team. Last updated: Sep 7, 2026
- Sep 7, 2026
- Date parsed from source:Sep 7, 2026
- First seen by Releasebot:Sep 7, 2026
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])
- Sep 7, 2026
- Date parsed from source:Sep 7, 2026
- First seen by Releasebot:Sep 7, 2026
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.
- Sep 7, 2026
- Date parsed from source:Sep 7, 2026
- First seen by Releasebot:Sep 7, 2026
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
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
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)
Similar to Oxc with recent updates:
- Zed release notes167 release notes Β· Latest Sep 9, 2026
- Flagsmith release notes126 release notes Β· Latest Sep 9, 2026
- Apple release notes143 release notes Β· Latest Aug 25, 2026
- Cursor release notes130 release notes Β· Latest Sep 2, 2026
- Ghostty release notes9 release notes Β· Latest Mar 13, 2026
- Smokeball release notes144 release notes Β· Latest Sep 4, 2026
- Sep 1, 2026
- Date parsed from source:Sep 1, 2026
- First seen by Releasebot:Sep 2, 2026
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)
- Sep 1, 2026
- Date parsed from source:Sep 1, 2026
- First seen by Releasebot:Sep 2, 2026
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
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)
Original source
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) - Aug 24, 2026
- Date parsed from source:Aug 24, 2026
- First seen by Releasebot:Aug 24, 2026
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
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 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
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 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
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
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
8c4552dlinter: [BREAKING] Split react/react-compiler into per-category rules (#25500) (Boshen)
π Features
9b7394elinter/typescript/no-empty-object-type: Implement suggestion (#25833) (Mikhail Baev)
π Bug Fixes
345f981react_compiler: Skip node_modules by default (#25859) (Boshen)2f40afalinter/unicorn/no-array-callback-reference: Ignore effect library imports (#25857) (MichaΓ«l Bitard)7b565a0linter: Align React Compiler rule categories (#25840) (Boshen)228e8e0linter: Resolve inactive React compiler rules (#25830) (Boshen)f8e4884linter/eslint/no-useless-constructor: Allow parameter properties (#25811) (camc314)e4b6993linter: Report exhaustive effect dependencies (#25829) (Boshen)742e25flinter/eslint/no-return-assign: Anchor diagnostic on return stmt (#25803) (camc314)b831ca8react-compiler: Improve derived state diagnostic (#25804) (Boshen)5908c87linter/jest/prefer-mock-return-shorthand: Preserve implementations using this (#25802) (camc314)f6b2265linter/eslint/no-redeclare: Run in ES modules, skipping only the globals check (#25691) (Hamody We)ca9f553linter/unicorn/prefer-default-parameters: Mark fixer as a suggestion (#25801) (camc314)aa49d86linter: Allow spread rule options in config types (#25675) (ch3rry)d5483f8linter/typescript/no-useless-empty-export: Skip TS declaration files (#25789) (Evyatar Daud)57f2199linter/typescript/no-useless-empty-export: Report after imports (#25786) (camc314)633bc19linter/typescript/no-unnecessary-type-conversion: Mark fixer as suggestion (#25787) (camc314)dea3339linter/typescript/explicit-module-boundary-types: Anchor diagnostics on arrows (#25779) (camc314)5cd6f02linter/eslint/array-callback-return: Anchor diagnostic on callback (#25780) (camc314)ef8cebflinter/eslint/preserve-caught-error: Handle AggregateError options (#25775) (camc314)c108d5clinter: Improve React Compiler diagnostics (#25742) (Boshen)c9ec55ereact-compiler: Improve diagnostic spans (#25731) (Boshen)1cbbcb7linter/unicorn/prefer-string-replace-all: Apply fixes in one pass (#25709) (Mikhail Baev)dec0a86react-compiler: Standardize diagnostics (#25702) (Boshen)5fd77f7linter/react/display-name: Report curried HOC inner component (#25662) (camc314)4dbb80elinter/import/no-named-as-default: Report local export conflicts (#25658) (camc314)e8a7214linter/react/rules-of-hooks: Report hooks inside try blocks (#25670) (camc314)36f8451linter/eslint/no-eval: Align indirect default with ESLint (#25656) (camc314)d901d24linter/react/exhaustive-deps: Handle destructured object dependencies (#25669) (camc314)beb724dlinter/eslint/no-unused-vars: Report bare underscore parameters (#25663) (camc314)fa36f26linter/react/no-this-in-sfc: Detect this in nested arrow callbacks (#25653) (camc314)44d1be3linter/typescript/no-var-requires: Run rule on JavaScript (#25664) (camc314)4004c10linter/eslint/no-irregular-whitespace: Check comments by default (#25660) (camc314)625401dlinter/import/no-named-default: Flag type-only named defaults (#25661) (camc314)8eacb2dlinter/typescript/no-non-null-asserted-optional-chain: Detect assertions after continued optional chains (#25659) (camc314)d55b76clinter/react/no-direct-mutation-state: Detect computed state mutations (#25654) (camc314)f92c651linter/unicorn/no-abusive-eslint-disable: Use directive prefix in diagnostic (#25657) (camc314)ee44996linter/eslint/max-classes-per-file: Anchor diagnostic at program start (#25652) (camc314)403ec40linter/eslint/no-multi-assign: Handle parenthesized declarator initializers (#25651) (camc314)6c9ba37linter/jest/expect-expect: Detect assertions in nested function declarations (#25650) (camc314)285820elinter/no-large-snapshots: Precompile and document allowed snapshot matchers (#25611) (Mikhail Baev)1be1e20linter/eslint/prefer-promise-reject-errors: Report on spread arguments (#25648) (Mikhail Baev)a38f7b3oxlint,oxfmt: Apply .gitignore only to walk targets, not explicitly named files (#25531) (leaysgur)509931bsemantic: Classify global references per identifier (#25608) (camc314)0c68b7festree: Emit decorators on FormalParameterRest (#25582) (camc314)1d22912linter/plugins: Parse rule-less directive justifications (#25559) (camc314)eaf80d8linter/unicorn/prefer-node-protocol: Validate exact Node.js built-in specifiers (#25558) (camc314)57b94aflinter/promise/no-multiple-resolved: Ignore unresolved globals (#25530) (Tushar Singh)80e64c2linter/expect-expect: Validate assertion regex (#25504) (Mikhail Baev)7830604linter/react/exhaustive-deps: Treat binary expressions as a stable dependency (#25508) (Hamody We)4df5835linter: Allow capitalized built-in calls (#25516) (Boshen)9d49d27react_compiler: Bail out instead of panicking on "Expected a node for all scopes" (#25506) (Boshen)d43b562linter/vitest/prefer-expect-assertions: Handle parameterized Vitest assertion suggestions (#25476) (camc314)
β‘ Performance
e8303d6linter: Shrink rule serialization dispatch (#25818) (Boshen)c84ede3estree_tokens: Share JS token update entry point (#25826) (Boshen)35c8eb2linter: Compute sort keys once with sort_by_cached_key (#25821) (Boshen)f0121edlinter: Share config deserialization entry point (#25820) (Boshen)2dacf7aoxlint: Reduce debug formatting code size (#25797) (Boshen)9ed10b7linter: Use unstable sorts for unique keys (#25778) (Boshen)63ff8eflinter: Outline diagnostic construction (#25762) (Boshen)2dd7446diagnostics: Preallocate graphical output (#25721) (Boshen)9c8ababdiagnostics: Batch graphical reports (#25710) (Boshen)8e9b95flinter: Use table for rule names (#25458) (Boshen)
Oxfmt
π Features
c07fe7coxfmt: Support experimentalOperatorPosition (#25643) (leaysgur)2adb8fbformatter: Implement operatorPosition option (#25581) (leaysgur)
π Bug Fixes
44231fbformatter: Fix comment and indent issues around unions (#25665) (leaysgur)2465e87formatter: Keep comments in place when dropping EmptyStatement (#25730) (leaysgur)7e4f3b7formatter: Print JSDocUnknownType (#25729) (leaysgur)5238d9eformatter: Keep nested awaited-paren member chain grouped in call arguments (#25646) (leaysgur)a38f7b3oxlint,oxfmt: Apply .gitignore only to walk targets, not explicitly named files (#25531) (leaysgur)5c0a5ffformatter_css: Fill own-line block comments inside space-separated values (#25578) (leaysgur)53debfaformatter_css: Keep trailing comma and indent after comment-preceded last map value (#25577) (leaysgur)1a83a8doxfmt: Mirror printer line suppression and restore dedent-to-root (#25573) (leaysgur)7f350d1formatter: Keep unary comment and print only needed parens (#25526) (leaysgur)f405789formatter_yaml: Consistent chomped eos behavior (#25523) (leaysgur)a243311formatter_yaml: Bump oxc-yaml-parser for contentless block scalar (#25519) (leaysgur)40d38a0formatter_css: Keep multi value function args intact after leading comment (#25518) (leaysgur)
π Documentation
223e785oxfmt/conformance: Update notes on conformance (#25757) (Yuji Sugiura)673dc6doxfmt: Move some docs from AGENTS.md to code comment (#25649) (leaysgur)fed6681oxfmt: Skip expanding overrides options (#25572) (leaysgur)
Co-authored-by: Boshen [email protected]
Original source
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.