Linting and Formatting Release Notes
Release notes for code linting, formatting and type-checking tools
Products (5)
Latest Linting and Formatting Updates
- Apr 20, 2026
- Date parsed from source:Apr 20, 2026
- First seen by Releasebot:Apr 21, 2026
oxlint_v1.61.0: release(apps): oxlint v1.61.0 && oxfmt v0.46.0 (#21583)
Oxc releases breaking allocator method renames, adds new Oxlint rule support and autofixes, and expands Oxfmt with per-directory config, a disable-nested-config CLI flag, and updated Prettier. It also includes bug fixes, performance gains, and documentation updates.
Oxlint
π₯ BREAKING CHANGES
24fb7eb allocator: [BREAKING] Rename Box and Vec methods (#21395) (overlookmotel)
π Features
38d8090 linter/jest: Implemented jest version settings in config file. (#21522) (Said Atrahouch)
7dbbb99 linter/eslint: Implement suggestion for no-case-declarations rule (#21508) (Mikhail Baev)
9b4d9f6 linter/prefer-template: Implement autofix (#21502) (FranΓ§ois)
daa64ed linter/no-empty-pattern: Add allowObjectPatternsAsParameters option (#21474) (camc314)
cf2d281 linter/typescript: Implement explicit-member-accessibility (#21447) (Hunter Tunnicliff)
d48de6f linter/unicorn: Add help messages to 3 rule diagnostics (#21459) (Mukunda Rao Katta)
cffdc2e linter: Backfill rule version metadata (#21391) (Old Autumn)
π Bug Fixes
1e69b91 linter/no-useless-assignment: Improve diagnostic spans (#21581) (camc314)
f272594 linter/plugins: Align RuleMeta.replacedBy type with ESLint (#21544) (bab)
4d57851 linter/eslint: Enhance no-empty-function rule to support async and generator functions in VariableDeclarator (#21542) (Mikhail Baev)
00fc136 codegen: Preserve coverage comments before object properties (#21312) (bab)
a56b7b9 oxlint: Dont enable gitlab formatter by default (#21501) (camc314)
9c9b6a2 linter/array-callback-return: Ignore non-exit CFG dead ends (#21497) (camc314)
61088e0 linter/unicorn: Handle computed property access in prefer-dom-node-remove rule (#21470) (Mikhail Baev)
eab5934 linter: Report an error on unsupported extends values (#21406) (John Costa)
3289ba0 linter/valid-expect-in-promise: Check a jest fn to be test instead of describe (#21422) (Said Atrahouch)
4417fe3 linter/prefer-ending-with-an-expect: Ignore vi.mock factory callbacks (#21414) (CΓ©dric Exbrayat)
a904883 linter/consistent-type-imports: Ignore vue/svelte/astro files (#21415) (bab)
2498fe6 linter/no-unused-vars: Allow segments of dotted namespace declarations (#21416) (bab)
44b5b35 linter: Preserve vitest-compatible jest rules when applying overrides (#21389) (Cameron)
7bd8331 linter/prefer-ending-with-an-expect: Add missing version docs (#21390) (Said Atrahouch)
43d8f0d linter/no-useless-assignment: Ignore writes read by closures (#21380) (camc314)
π Documentation
c1eeae3 linter: Add version to rule.json (#21547) (camchenry)
0ec6ab2 linter: Improve the vitest/no-importing-vitest-globals rule documentation. (#21557) (connorshea)
Oxfmt
π₯ BREAKING CHANGES
24fb7eb allocator: [BREAKING] Rename Box and Vec methods (#21395) (overlookmotel)
π Features
5aa7fe1 oxfmt: Add --disable-nested-config CLI flag (#21514) (leaysgur)
b5cb8d1 oxfmt: Update prettier to 3.8.3 (#21451) (leaysgur)
16713d5 oxfmt/cli: Support per-directory config (#21103) (leaysgur)
952de06 oxfmt/lsp: Support per-directory config (#21081) (leaysgur)
π Bug Fixes
a501a53 formatter: Handle comments after pipe in single-member union types (#21487) (John Costa)
6f49fad oxfmt: Respect nested config.ignorePatterns (#21489) (leaysgur)
7c98d52 oxfmt: Do not panic on finding invalid nested config (#21461) (leaysgur)
41bb2d5 formatter: Preserve more intrinsic parens (#21449) (leaysgur)
f894750 formatter: Preserve parens around intrinsic in type alias annotation (#21410) (Dunqing)
β‘ Performance
df27b48 oxfmt: Skip ancestors check when no nested config found (#21517) (leaysgur)
5e1522a oxfmt: Do not occupy the rayon thread solely for handover (#21408) (leaysgur)
Co-authored-by: camc314 [email protected]
Original source - Apr 20, 2026
- Date parsed from source:Apr 20, 2026
- First seen by Releasebot:Apr 21, 2026
oxfmt_v0.46.0: release(apps): oxlint v1.61.0 && oxfmt v0.46.0 (#21583)
Oxc releases Oxlint and Oxfmt updates with a breaking allocator rename, new Jest config support, autofixes and rule improvements, plus per-directory config support, a new CLI flag, formatter bug fixes and performance gains.
Oxlint
π₯ BREAKING CHANGES
24fb7eb allocator: [BREAKING] Rename Box and Vec methods (#21395) (overlookmotel)
π Features
38d8090 linter/jest: Implemented jest version settings in config file. (#21522) (Said Atrahouch)
7dbbb99 linter/eslint: Implement suggestion for no-case-declarations rule (#21508) (Mikhail Baev)
9b4d9f6 linter/prefer-template: Implement autofix (#21502) (FranΓ§ois)
daa64ed linter/no-empty-pattern: Add allowObjectPatternsAsParameters option (#21474) (camc314)
cf2d281 linter/typescript: Implement explicit-member-accessibility (#21447) (Hunter Tunnicliff)
d48de6f linter/unicorn: Add help messages to 3 rule diagnostics (#21459) (Mukunda Rao Katta)
cffdc2e linter: Backfill rule version metadata (#21391) (Old Autumn)
π Bug Fixes
1e69b91 linter/no-useless-assignment: Improve diagnostic spans (#21581) (camc314)
f272594 linter/plugins: Align RuleMeta.replacedBy type with ESLint (#21544) (bab)
4d57851 linter/eslint: Enhance no-empty-function rule to support async and generator functions in VariableDeclarator (#21542) (Mikhail Baev)
00fc136 codegen: Preserve coverage comments before object properties (#21312) (bab)
a56b7b9 oxlint: Dont enable gitlab formatter by default (#21501) (camc314)
9c9b6a2 linter/array-callback-return: Ignore non-exit CFG dead ends (#21497) (camc314)
61088e0 linter/unicorn: Handle computed property access in prefer-dom-node-remove rule (#21470) (Mikhail Baev)
eab5934 linter: Report an error on unsupported extends values (#21406) (John Costa)
3289ba0 linter/valid-expect-in-promise: Check a jest fn to be test instead of describe (#21422) (Said Atrahouch)
4417fe3 linter/prefer-ending-with-an-expect: Ignore vi.mock factory callbacks (#21414) (CΓ©dric Exbrayat)
a904883 linter/consistent-type-imports: Ignore vue/svelte/astro files (#21415) (bab)
2498fe6 linter/no-unused-vars: Allow segments of dotted namespace declarations (#21416) (bab)
44b5b35 linter: Preserve vitest-compatible jest rules when applying overrides (#21389) (Cameron)
7bd8331 linter/prefer-ending-with-an-expect: Add missing version docs (#21390) (Said Atrahouch)
43d8f0d linter/no-useless-assignment: Ignore writes read by closures (#21380) (camc314)
π Documentation
c1eeae3 linter: Add version to rule.json (#21547) (camchenry)
0ec6ab2 linter: Improve the vitest/no-importing-vitest-globals rule documentation. (#21557) (connorshea)
Oxfmt
π₯ BREAKING CHANGES
24fb7eb allocator: [BREAKING] Rename Box and Vec methods (#21395) (overlookmotel)
π Features
5aa7fe1 oxfmt: Add --disable-nested-config CLI flag (#21514) (leaysgur)
b5cb8d1 oxfmt: Update prettier to 3.8.3 (#21451) (leaysgur)
16713d5 oxfmt/cli: Support per-directory config (#21103) (leaysgur)
952de06 oxfmt/lsp: Support per-directory config (#21081) (leaysgur)
π Bug Fixes
a501a53 formatter: Handle comments after pipe in single-member union types (#21487) (John Costa)
6f49fad oxfmt: Respect nested config.ignorePatterns (#21489) (leaysgur)
7c98d52 oxfmt: Do not panic on finding invalid nested config (#21461) (leaysgur)
41bb2d5 formatter: Preserve more intrinsic parens (#21449) (leaysgur)
f894750 formatter: Preserve parens around intrinsic in type alias annotation (#21410) (Dunqing)
β‘ Performance
df27b48 oxfmt: Skip ancestors check when no nested config found (#21517) (leaysgur)
5e1522a oxfmt: Do not occupy the rayon thread solely for handover (#21408) (leaysgur)
Co-authored-by: camc314 [email protected]
Original source All of your release notes in one feed
Join Releasebot and get updates from Oxc and hundreds of other software products.
- Apr 20, 2026
- Date parsed from source:Apr 20, 2026
- First seen by Releasebot:Apr 21, 2026
oxc crates_v0.127.0
Oxc fixes minifier, parser, transformer, mangler, codegen, and TypeScript declaration handling, while also improving parser and allocator performance. The release tightens constructor and comment handling, preserves annotations and coverage comments, and streamlines internal parsing work.
π Bug Fixes
510e344 minifier: Drop this after unconditional super() in derived constructors (#21571) (Dunqing)
67d40f8 parser: Set pure comment index after dedup check to handle lookahead/rewind (#21570) (Dunqing)
9eea064 minifier: Treat this outside constructor as side-effect free (#21568) (Dunqing)
385eb94 minifier: Preserve annotation comments when inlining single-use variables during DCE (#21567) (Dunqing)
48967e8 isolated_declarations: Drop required type check for private parameter properties on private constructors (#21515) (Dunqing)
91e5bde transformer/typescript: Preserve computed-key static block when class has an empty constructor (#21562) (Dunqing)
50e9d26 mangler: Assign correct slot to shadowed function-expression names (#21535) (Dunqing)
065ce47 isolated_declarations: Collect types from private accessors for paired inference (#21516) (Dunqing)
00fc136 codegen: Preserve coverage comments before object properties (#21312) (bab)
d676e0c minifier: Mark LHS of ??= as read when converting from == null && (#21546) (Gunnlaugur Thor Briem)β‘ Performance
e45efc5 parser: Reduce try_parse usage in favour of lookahead (#21532) (Boshen)
Original source
ddb1bf8 parser: Avoid redundant IdentifierReference clone in shorthand property (#21511) (Boshen)
be2b392 allocator: Store pointers directly in Arena (#21483) (overlookmotel) - Apr 20, 2026
- Date parsed from source:Apr 20, 2026
- First seen by Releasebot:Apr 21, 2026
oxlint v1.61.0 & oxfmt v0.46.0
Oxc releases Oxlint v1.61.0 and Oxfmt v0.46.0 with breaking allocator method renames, new linting and autofix features, stronger Jest and TypeScript support, formatter per-directory config and CLI options, plus bug fixes, docs updates, and performance improvements.
Table of Contents
- Oxlint v1.61.0
- Oxfmt v0.46.0
Oxlint v1.61.0
π₯ BREAKING CHANGES
24fb7eb allocator: [BREAKING] Rename Box and Vec methods (#21395) (overlookmotel)
π Features
38d8090 linter/jest: Implemented jest version settings in config file. (#21522) (Said Atrahouch)
7dbbb99 linter/eslint: Implement suggestion for no-case-declarations rule (#21508) (Mikhail Baev)
9b4d9f6 linter/prefer-template: Implement autofix (#21502) (FranΓ§ois)
daa64ed linter/no-empty-pattern: Add allowObjectPatternsAsParameters option (#21474) (camc314)
cf2d281 linter/typescript: Implement explicit-member-accessibility (#21447) (Hunter Tunnicliff)
d48de6f linter/unicorn: Add help messages to 3 rule diagnostics (#21459) (Mukunda Rao Katta)
cffdc2e linter: Backfill rule version metadata (#21391) (Old Autumn)
π Bug Fixes
96ede2c linter/no-useless-assignment: Preserve conditional self-reads (#21582) (camc314)
1e69b91 linter/no-useless-assignment: Improve diagnostic spans (#21581) (camc314)
f272594 linter/plugins: Align RuleMeta.replacedBy type with ESLint (#21544) (bab)
4d57851 linter/eslint: Enhance no-empty-function rule to support async and generator functions in VariableDeclarator (#21542) (Mikhail Baev)
00fc136 codegen: Preserve coverage comments before object properties (#21312) (bab)
a56b7b9 oxlint: Dont enable gitlab formatter by default (#21501) (camc314)
9c9b6a2 linter/array-callback-return: Ignore non-exit CFG dead ends (#21497) (camc314)
61088e0 linter/unicorn: Handle computed property access in prefer-dom-node-remove rule (#21470) (Mikhail Baev)
eab5934 linter: Report an error on unsupported extends values (#21406) (John Costa)
3289ba0 linter/valid-expect-in-promise: Check a jest fn to be test instead of describe (#21422) (Said Atrahouch)
4417fe3 linter/prefer-ending-with-an-expect: Ignore vi.mock factory callbacks (#21414) (CΓ©dric Exbrayat)
a904883 linter/consistent-type-imports: Ignore vue/svelte/astro files (#21415) (bab)
2498fe6 linter/no-unused-vars: Allow segments of dotted namespace declarations (#21416) (bab)
44b5b35 linter: Preserve vitest-compatible jest rules when applying overrides (#21389) (Cameron)
7bd8331 linter/prefer-ending-with-an-expect: Add missing version docs (#21390) (Said Atrahouch)
43d8f0d linter/no-useless-assignment: Ignore writes read by closures (#21380) (camc314)
π Documentation
c1eeae3 linter: Add version to rule.json (#21547) (camchenry)
0ec6ab2 linter: Improve the vitest/no-importing-vitest-globals rule documentation. (#21557) (connorshea)
Oxfmt v0.46.0
π₯ BREAKING CHANGES
24fb7eb allocator: [BREAKING] Rename Box and Vec methods (#21395) (overlookmotel)
π Features
5aa7fe1 oxfmt: Add --disable-nested-config CLI flag (#21514) (leaysgur)
b5cb8d1 oxfmt: Update prettier to 3.8.3 (#21451) (leaysgur)
16713d5 oxfmt/cli: Support per-directory config (#21103) (leaysgur)
952de06 oxfmt/lsp: Support per-directory config (#21081) (leaysgur)
π Bug Fixes
a501a53 formatter: Handle comments after pipe in single-member union types (#21487) (John Costa)
6f49fad oxfmt: Respect nested config.ignorePatterns (#21489) (leaysgur)
7c98d52 oxfmt: Do not panic on finding invalid nested config (#21461) (leaysgur)
41bb2d5 formatter: Preserve more intrinsic parens (#21449) (leaysgur)
f894750 formatter: Preserve parens around intrinsic in type alias annotation (#21410) (Dunqing)
β‘ Performance
df27b48 oxfmt: Skip ancestors check when no nested config found (#21517) (leaysgur)
5e1522a oxfmt: Do not occupy the rayon thread solely for handover (#21408) (leaysgur)
Original source - Apr 20, 2026
- Date parsed from source:Apr 20, 2026
- First seen by Releasebot:Apr 21, 2026
v8.59.0
typescript-eslint ships 8.59.0 with broader no-unnecessary-type-assertion reporting.
8.59.0 (2026-04-20)
π Features
eslint-plugin: [no-unnecessary-type-assertion] report more cases based on assignability (#11789)
β€οΈ Thank You
Ulrich Stark
See GitHub Releases for more information.
You can read about our versioning strategy and releases on our website.
Original source - Apr 17, 2026
- Date parsed from source:Apr 17, 2026
- First seen by Releasebot:Apr 18, 2026
ESLint v10.2.1 released
Eslint ships v10.2.1 as a patch release with bug fixes for code path analysis, async promise executor false positives, and clearer validation errors, plus documentation and test updates.
We just pushed ESLint v10.2.1, which is a patch release upgrade of ESLint. This release fixes several bugs found in the previous release.
Bug Fixes
- 14be92b fix: model generator yield resumption paths in code path analysis (#20665) (sethamus)
- 84a19d2 fix: no-async-promise-executor false positives for shadowed Promise (#20740) (xbinaryx)
- af764af fix: clarify language and processor validation errors (#20729) (Pixel998)
- e251b89 fix: update eslint (#20715) (renovate[bot])
Documentation
- ca92ca0 docs: reuse markdown-it instance for markdown filter (#20768) (Amaresh S M)
- 57d2ee2 docs: Enable Eleventy incremental mode for watch (#20767) (Amaresh S M)
- c1621b9 docs: fix typos in code-path-analyzer.js (#20700) (Ayush Shukla)
- 1418d52 docs: Update README (GitHub Actions Bot)
- 39771e6 docs: Update README (GitHub Actions Bot)
- 71e0469 docs: fix incomplete JSDoc param description in no-shadow rule (#20728) (kuldeep kumar)
- 22119ce docs: clarify scope of for-direction rule with dead code examples (#20723) (Amaresh S M)
- 8f3fb77 docs: document meta.docs.dialects (#20718) (Pixel998)
Chores
- 7ddfea9 chore: update dependency prettier to v3.8.2 (#20770) (renovate[bot])
- fac40e1 ci: bump pnpm/action-setup from 5.0.0 to 6.0.0 (#20763) (dependabot[bot])
- 7246f92 test: add tests for SuppressionsService.load() error handling (#20734) (kuldeep kumar)
- 4f34b1e chore: update pnpm/action-setup action to v5 (#20762) (renovate[bot])
- 51080eb test: processor service (#20731) (kuldeep kumar)
- e7e1889 chore: remove stale babel-eslint10 fixture and test (#20727) (kuldeep kumar)
- 4e1a87c test: remove redundant async/await in flat config array tests (#20722) (Pixel998)
- 066eabb test: add rule metadata coverage for languages and docs.dialects (#20717) (Pixel998)
- Apr 16, 2026
- Date parsed from source:Apr 16, 2026
- First seen by Releasebot:Apr 16, 2026
oxc crates_v0.126.0
Oxc releases a broad update with breaking allocator method renames, parser support for turbopack magic comments, new napi transform options, and fresh NonNull pointer types. It also brings bug fixes, performance work, and documentation cleanups across the codebase.
BREAKING CHANGES
24fb7eb allocator: [BREAKING] Rename Box and Vec methods (#21395) (overlookmotel)
Features
ce5072d parser: Support turbopack magic comments (#20803) (Kane Wang)
f5deb55 napi/transform: Expose optimizeConstEnums and optimizeEnums options (#21388) (Dunqing)
24b03de data_structures: Introduce NonNullConst and NonNullMut pointer types (#21425) (overlookmotel)
Bug Fixes
d7a359a ecmascript: Treat update expressions as unconditionally side-effectful (#21456) (Dunqing)
56af2f4 transformer/async-to-generator: Correct scope of inferred named FE in async-to-generator (#21458) (Dunqing)
b3ed467 minifier: Avoid illegal var; when folding unused arguments copy loop (#21421) (fazba)
b0e8f13 minifier: Preserve var inside catch with same-named parameter (#21366) (Dunqing)
4fb73a7 transformer/typescript: Preserve execution order for accessor with useDefineForClassFields: false (#21369) (Dunqing)
Performance
c22cba6 allocator: Simplify pointer calculation when creating Arena chunks (#21475) (overlookmotel)
da3cc16 parser: Refactor out LexerContext (#21275) (Ulrich Stark)
Documentation
c5b19bb allocator: Reformat comments in Arena (#21448) (overlookmotel)
091e88e lexer: Update doc comment about perf benefit of reading through references (#21423) (overlookmotel)
922cbee allocator: Remove references to "bump" from comments (#21397) (overlookmotel)
Original source - Apr 13, 2026
- Date parsed from source:Apr 13, 2026
- First seen by Releasebot:Apr 14, 2026
v8.58.2
typescript-eslint fixes package publishing and improves no-unnecessary-condition type-predicate checks in 8.58.2.
8.58.2 (2026-04-13)
π©Ή Fixes
- remove tsbuildinfo cache file from published packages (#12187)
- eslint-plugin: [no-unnecessary-condition] use assignability checks in checkTypePredicates (#12147)
β€οΈ Thank You
Abhijeet Singh @cseas
μ‘μ¬μ±
See GitHub Releases for more information.
You can read about our versioning strategy and releases on our website.
Original source - Apr 13, 2026
- Date parsed from source:Apr 13, 2026
- First seen by Releasebot:Apr 13, 2026
oxlint_v1.60.0: release(apps): oxlint v1.60.0 && oxfmt v0.45.0 (#21375)
Oxc releases major Oxlint and Oxfmt updates with breaking changes, new lint rules and fixes, a type-check-only flag, prettier 3.8.2 support in Oxfmt, and broader performance improvements across parsing, linting, and formatting.
Oxlint
π₯ BREAKING CHANGES
382958a span: [BREAKING] Remove re-exports of string types from oxc_span crate (#21246) (overlookmotel)
c4aedfa str: [BREAKING] Add static_ident! macro (#21245) (overlookmotel)
7354f3c linter: [BREAKING] Error on no matched files (#21144) (camc314)
π Features
91f2c79 linter/eslint-jest-plugin: Implemented prefer-importing-jest-globals rule (#21303) (Said Atrahouch)
a02f32c linter: Add release version for existing rules (#21363) (camchenry)
b9e93da linter: Allow tagging rules with release version (#21362) (camchenry)
f99ecda oxlint: Gate vite.config.ts recognition behind VP_VERSION env var (#21298) (leaysgur)
cf459d3 linter: Implement suggestion for no-empty-function rule (#21347) (Mikhail Baev)
7213d61 linter: Adding pending suggestions fix to valid_expect rules. (#21249) (Said Atrahouch)
ae45312 linter: Introduce --type-check-only flag (#21184) (camc314)
1ce8b90 linter: Implemented valid-expect-in-promise vitest and jest rule (#21170) (Said Atrahouch)
39f7fda linter: Add auto-fix to unicorn/prefer-default-parameters (#21166) (yefan)
15574bc linter/unicorn: Implement consistent-template-literal-escape (#21126) (AliceLanniste)
c5c8c03 linter/prefer-readonly-parameter-types: Move rule from nursery to pedantic (#21114) (camc314)
1893be1 linter/no-useless-default-assignment: Move rule from nursery to correctness (#21113) (camc314)
5462ff9 linter/strict-void-return: Move rule from nursery to pedantic (#21115) (camc314)
c2989bd linter/no-unnecessary-type-parameters: Move rule from nursery to suspicious (#21112) (camc314)
79d339a linter/no-unnecessary-qualifier: Move rule from nursery to style (#21111) (camc314)
π Bug Fixes
b577efc linter/unicorn: Handle optional chaining in prefer-array-flat and no-invalid-remove-event-listener (#21299) (Mikhail Baev)
5e55735 oxlint/lsp: Skip .git directories in LSP walkers (#21316) (camc314)
ec7f6ed oxlint, oxfmt: Apply check_for_writer_error to .flush() (#21343) (Craig Morrison)
a17a08a linter/no-useless-assignment: Handle continue edges in loop analysis (#21358) (camc314)
a0eac12 linter/array-type: Move match to first stmt (#21357) (camc314)
1b3abc3 linter: Exclude boundary tokens from JSXText whitespace check in isSpaceBetweenTokens (#21313) (bab)
ecbcf5e linter: More info to summary output for GitHub formatter (#21330) (ThΓ©o LUDWIG)
a0a8c62 linter/no-fallthrough: Check from start of switch case for empty lines (#21324) (Josh Cartmell)
36f0bc4 linter/no-cycle: Report all cyclic dependencies inside a file (#21259) (camc314)
3f80536 linter: Ignore regex flags other than g/u/v in prefer-string-replace-all (#21203) (bab)
f21d3aa linter/unicorn: Report on optional in require-number-to-fixed-digits-argument rule (#21207) (Mikhail Baev)
af8e122 linter: Render each config error as a separate diagnostic (#21120) (bab)
a950f55 linter/unicorn: Do not report on optionals in no-single-promise-in-promise-methods (#21157) (Mikhail Baev)
472f8ee linter: Mark complete comment for unused disable directives + lsp fix (#21092) (copilot-swe-agent)
edd0865 linter/no-array-index-key: False positive when index is inside an expression within a template literal (#21123) (bab)
7e8d520 linter/unicorn: Report on optional foo?.postMessage in require-post-message-target-origin rule (#21104) (Mikhail Baev)
β‘ Performance
addcd02 napi/parser, linter/plugins: Raw transfer deserializer for Vecs use shift instead of multiply where possible (#21142) (overlookmotel)
3068ded napi/parser, linter/plugins: Shift before add when calculating positions in raw transfer deserializer (#21141) (overlookmotel)
eb400b8 napi/parser, linter/plugins: Remove uint32 buffer view (#21140) (overlookmotel)
7a86613 linter/plugins: Use Int32Arrays for tokens and comments buffers (#21136) (overlookmotel)
8c51121 napi/parser, linter/plugins: Raw transfer deserialize Span fields as i32s (#21135) (overlookmotel)
bc1bcdd napi/parser, linter/plugins: Inline trivial raw transfer field deserializers into node object definitions (#21134) (overlookmotel)
c0278ab napi/parser, linter/plugins: Use Int32Array in raw transfer deserializer (#21132) (overlookmotel)
43482c7 linter/plugins: Use >> not >>> in binary search loops (#21129) (overlookmotel)
π Documentation
7888280 linter: Move config docs for no-restricted-exports (#21360) (camchenry)
162d26c linter: Improve docs for typescript/array-type (#21356) (camchenry)
a2dbaec linter: Add missing docs for options for typescript/class-literal-property-style (#21355) (camchenry)
79593eb linter: Improve docs for typescript/consistent-type-assertions (#21353) (camchenry)
f9d20d2 linter: Move config option docs for typescript/no-empty-object-type (#21352) (camchenry)
a8f650d linter: Add missing config option docs for prefer-string-start-ends-with (#21332) (camchenry)
cfd8a4f linter: Don't rely on old eslint doc for available globals (#21334) (Nicolas Le Cam)
03865fa linter: Jest/prefer-snapshot-hint: add doc comment for snapshot hint mode (#21290) (camchenry)
a6fe09b linter: Add missing docs for config options in react plugin (#21289) (camchenry)
60eaf47 linter: Add missing docs for config options in unicorn plugin (#21288) (camchenry)
c3c2055 linter: jsx-a11y/label-has-associated-control: document the assert options (#21287) (camchenry)
a928ed9 linter: Add missing config docs for vitest plugin rules (#21285) (camchenry)
7e07c7c linter: id-length: move enum docs to doc comments (#21281) (camchenry)
9746bdf linter: Add missing docs for class-methods-use-this config (#21278) (camchenry)
6ffe7a5 linter: Move docs for Target variant onto enum (#21277) (camchenry)
305350d linter/plugins: Correct comments (#21130) (overlookmotel)
Oxfmt
π₯ BREAKING CHANGES
382958a span: [BREAKING] Remove re-exports of string types from oxc_span crate (#21246) (overlookmotel)
π Features
e3081e1 oxfmt: Gate vite.config.ts recognition behind VP_VERSION env var (#21295) (leaysgur)
5b0b573 oxfmt: Update prettier to 3.8.2 (#21294) (leaysgur)
0d67834 oxfmt: Show hint for all files are ignored case (#21154) (leaysgur)
π Bug Fixes
2871fc2 oxfmt: Non idempotent formatting on comments in TS (#20449) (Cat Chen)
ec7f6ed oxlint, oxfmt: Apply check_for_writer_error to .flush() (#21343) (Craig Morrison)
1a8c225 formatter: Preserve newline between self-closing JSX element and single-char text (#21149) (Justin Mecham)
407b725 oxfmt: Indent dangling comments in empty enum with block indent (#21163) (Leonabcd123)
d13fd37 formatter: Remove extra outer parentheses on return with JSDoc type cast (#21109) (bab)
22babde oxfmt: Fix unicode char escaping (#21162) (leaysgur)
4da53e5 formatter: Preserve trailing comma in TSX arrow functions with default type params (#21151) (Justin Mecham)
94fe774 oxfmt: Handle paths with consecutive leading slashes (#21155) (leaysgur)
50c389b oxfmt: Support .editorconfig quote_type (#20989) (leaysgur)
β‘ Performance
0ce619f formatter: Use Allocator::alloc_concat_strs_array instead of StringBuilder::from_strs_array_in (#21339) (overlookmotel)
Original source - Apr 13, 2026
- Date parsed from source:Apr 13, 2026
- First seen by Releasebot:Apr 13, 2026
oxfmt_v0.45.0: release(apps): oxlint v1.60.0 && oxfmt v0.45.0 (#21375)
Oxc releases Oxlint and Oxfmt updates with breaking span changes, new linter rules and flags, stronger bug fixes, performance gains, and refreshed docs. Oxfmt also adds Prettier 3.8.2 support, better file handling, and formatting fixes.
Oxlint
π₯ BREAKING CHANGES
382958a span: [BREAKING] Remove re-exports of string types from
oxc_span crate (#21246) (overlookmotel)c4aedfa str: [BREAKING] Add static_ident! macro (#21245)
(overlookmotel)7354f3c linter: [BREAKING] Error on no matched files (#21144)
(camc314)π Features
91f2c79 linter/eslint-jest-plugin: Implemented
prefer-importing-jest-globals rule (#21303) (Said Atrahouch)a02f32c linter: Add release version for existing rules (#21363)
(camchenry)b9e93da linter: Allow tagging rules with release version (#21362)
(camchenry)f99ecda oxlint: Gate vite.config.ts recognition behind VP_VERSION
env var (#21298) (leaysgur)cf459d3 linter: Implement suggestion for no-empty-function rule
(#21347) (Mikhail Baev)7213d61 linter: Adding pending suggestions fix to valid_expect
rules. (#21249) (Said Atrahouch)ae45312 linter: Introduce --type-check-only flag (#21184) (camc314)
1ce8b90 linter: Implemented valid-expect-in-promise vitest and jest
rule (#21170) (Said Atrahouch)39f7fda linter: Add auto-fix to unicorn/prefer-default-parameters
(#21166) (yefan)15574bc linter/unicorn: Implement consistent-template-literal-escape
(#21126) (AliceLanniste)c5c8c03 linter/prefer-readonly-parameter-types: Move rule from nursery
to pedantic (#21114) (camc314)1893be1 linter/no-useless-default-assignment: Move rule from nursery
to correctness (#21113) (camc314)5462ff9 linter/strict-void-return: Move rule from nursery to pedantic
(#21115) (camc314)c2989bd linter/no-unnecessary-type-parameters: Move rule from nursery
to suspicious (#21112) (camc314)79d339a linter/no-unnecessary-qualifier: Move rule from nursery to
style (#21111) (camc314)π Bug Fixes
b577efc linter/unicorn: Handle optional chaining in
prefer-array-flat and no-invalid-remove-event-listener (#21299)
(Mikhail Baev)5e55735 oxlint/lsp: Skip .git directories in LSP walkers (#21316)
(camc314)ec7f6ed oxlint, oxfmt: Apply check_for_writer_error to .flush()
(#21343) (Craig Morrison)a17a08a linter/no-useless-assignment: Handle continue edges in loop
analysis (#21358) (camc314)a0eac12 linter/array-type: Move match to first stmt (#21357) (camc314)
1b3abc3 linter: Exclude boundary tokens from JSXText whitespace check
in isSpaceBetweenTokens (#21313) (bab)ecbcf5e linter: More info to summary output for GitHub formatter
(#21330) (ThΓ©o LUDWIG)a0a8c62 linter/no-fallthrough: Check from start of switch case for
empty lines (#21324) (Josh Cartmell)36f0bc4 linter/no-cycle: Report all cyclic dependencies inside a file
(#21259) (camc314)3f80536 linter: Ignore regex flags other than g/u/v in
prefer-string-replace-all (#21203) (bab)f21d3aa linter/unicorn: Report on optional in
require-number-to-fixed-digits-argument rule (#21207) (Mikhail Baev)af8e122 linter: Render each config error as a separate diagnostic
(#21120) (bab)a950f55 linter/unicorn: Do not report on optionals in
no-single-promise-in-promise-methods (#21157) (Mikhail Baev)472f8ee linter: Mark complete comment for unused disable directives +
lsp fix (#21092) (copilot-swe-agent)edd0865 linter/no-array-index-key: False positive when index is inside
an expression within a template literal (#21123) (bab)7e8d520 linter/unicorn: Report on optional foo?.postMessage in
require-post-message-target-origin rule (#21104) (Mikhail Baev)β‘ Performance
addcd02 napi/parser, linter/plugins: Raw transfer deserializer for
Vecs use shift instead of multiply where possible (#21142)
(overlookmotel)3068ded napi/parser, linter/plugins: Shift before add when calculating
positions in raw transfer deserializer (#21141) (overlookmotel)eb400b8 napi/parser, linter/plugins: Remove uint32 buffer view
(#21140) (overlookmotel)7a86613 linter/plugins: Use Int32Arrays for tokens and comments
buffers (#21136) (overlookmotel)8c51121 napi/parser, linter/plugins: Raw transfer deserialize Span
fields as i32s (#21135) (overlookmotel)bc1bcdd napi/parser, linter/plugins: Inline trivial raw transfer field
deserializers into node object definitions (#21134) (overlookmotel)c0278ab napi/parser, linter/plugins: Use Int32Array in raw transfer
deserializer (#21132) (overlookmotel)43482c7 linter/plugins: Use >> not >>> in binary search loops
(#21129) (overlookmotel)π Documentation
7888280 linter: Move config docs for no-restricted-exports (#21360)
(camchenry)162d26c linter: Improve docs for typescript/array-type (#21356)
(camchenry)a2dbaec linter: Add missing docs for options for
typescript/class-literal-property-style (#21355) (camchenry)79593eb linter: Improve docs for
typescript/consistent-type-assertions (#21353) (camchenry)f9d20d2 linter: Move config option docs for
typescript/no-empty-object-type (#21352) (camchenry)a8f650d linter: Add missing config option docs for
prefer-string-start-ends-with (#21332) (camchenry)cfd8a4f linter: Don't rely on old eslint doc for available globals
(#21334) (Nicolas Le Cam)03865fa linter: Jest/prefer-snapshot-hint: add doc comment for
snapshot hint mode (#21290) (camchenry)a6fe09b linter: Add missing docs for config options in react plugin
(#21289) (camchenry)60eaf47 linter: Add missing docs for config options in unicorn plugin
(#21288) (camchenry)c3c2055 linter: jsx-a11y/label-has-associated-control: document the
assert options (#21287) (camchenry)a928ed9 linter: Add missing config docs for vitest plugin rules
(#21285) (camchenry)7e07c7c linter: id-length: move enum docs to doc comments (#21281)
(camchenry)9746bdf linter: Add missing docs for class-methods-use-this config
(#21278) (camchenry)6ffe7a5 linter: Move docs for Target variant onto enum (#21277)
(camchenry)305350d linter/plugins: Correct comments (#21130) (overlookmotel)
Oxfmt
π₯ BREAKING CHANGES
382958a span: [BREAKING] Remove re-exports of string types from
oxc_span crate (#21246) (overlookmotel)π Features
e3081e1 oxfmt: Gate vite.config.ts recognition behind VP_VERSION
env var (#21295) (leaysgur)5b0b573 oxfmt: Update prettier to 3.8.2 (#21294) (leaysgur)
0d67834 oxfmt: Show hint for all files are ignored case (#21154)
(leaysgur)π Bug Fixes
2871fc2 oxfmt: Non idempotent formatting on comments in TS (#20449)
(Cat Chen)ec7f6ed oxlint, oxfmt: Apply check_for_writer_error to .flush()
(#21343) (Craig Morrison)1a8c225 formatter: Preserve newline between self-closing JSX element
and single-char text (#21149) (Justin Mecham)407b725 oxfmt: Indent dangling comments in empty enum with block
indent (#21163) (Leonabcd123)d13fd37 formatter: Remove extra outer parentheses on return with JSDoc
type cast (#21109) (bab)22babde oxfmt: Fix unicode char escaping (#21162) (leaysgur)
4da53e5 formatter: Preserve trailing comma in TSX arrow functions with
default type params (#21151) (Justin Mecham)94fe774 oxfmt: Handle paths with consecutive leading slashes (#21155)
(leaysgur)50c389b oxfmt: Support .editorconfig quote_type (#20989)
(leaysgur)β‘ Performance
0ce619f formatter: Use Allocator::alloc_concat_strs_array instead of
Original source
StringBuilder::from_strs_array_in (#21339) (overlookmotel)