apps_v1.72.0

oxc-project/oxcapps_v1.72.0Jun 29, 2026by github-actions[bot]

AI Summary

Oxlint adds React suggestions and fixes for exhaustive-deps, alongside a breaking change to string/identifier method signatures. Oxfmt introduces CSS and GraphQL formatters.

Key Highlights

  • Oxlint: Suggestion support for `no-unknown-property`.
  • Oxlint: Fixes for React exhaustive-deps analysis.
  • Breaking: `Str` and `Ident` methods signature changed.
  • Oxfmt: New CSS and GraphQL formatters implemented.

Breaking Changes

  • Str and Ident methods take &GetAllocator

New Features

  • Linter: Implement suggestion for no-unknown-property rule
  • Linter: Add schema for eslint/no-restricted-import
  • Linter: Deduplicate missing plugin errors
  • Formatter: Implement oxc_formatter_css
  • Formatter: Implement oxc_formatter_graphql

Full Release Notes

## Table of Contents

- [Oxlint v1.72.0](#oxlint-v1.72.0)
- [Oxfmt v0.57.0](#oxfmt-v0.57.0)

## Oxlint v1.72.0
### 💥 BREAKING CHANGES

- 88f4455 str: [**BREAKING**] `Str` and `Ident` methods take `&GetAllocator` (#23781) (overlookmotel)

### 🚀 Features

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

### 🐛 Bug Fixes

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

### ⚡ Performance

- 68f9472 linter/jsx-a11y: Skip lowercasing non-aria attribute names (#23906) (Lawrence Lin)
- b9312b4 linter/unicorn/prefer-export-from: Use keyed binding lookup (#23893) (Marius Schulz)
- cd5204e linter/typescript/no-unsafe-declaration-merging: Use keyed binding lookup (#23894) (Marius Schulz)
- e948498 linter/eslint/prefer-named-capture-group: Only dispatch for relevant node types (#23868) (Connor Shea)
- 4ac7a8e linter/eslint/max-depth: Derive node types (#23896) (Connor Shea)
- daeed09 linter/eslint/no-restricted-globals: Only scan unresolved references  (#23890) (camc314)
- e808514 linter/jest-vitest: Speed up no-standalone-expect (#23883) (camc314)
- 8b165e5 linter/react/exhaustive-deps: Skip non-reactive calls early (#23882) (camc314)
- 54005e7 linter/eslint/no-unused-vars: Precompute exported bindings (#23881) (camc314)
- 9bc2f8c linter/unicorn/prefer-number-properties: Speed up global checks (#23880) (camc314)
- 4ff104f linter: Optimize `require-hook` and `prefer-mock-*` rules to run on specific node types (#23871) (Connor Shea)
- cc2213b linter: Run `no-underscore-dangle` only when relevant node types are present (#23867) (Connor Shea)
- 3e55c21 linter/promise/always-return: Narrow to function node types (#23878) (Connor Shea)
- 7136182 linter/jest-vitest: Speed up no-commented-out-tests (#23864) (camc314)
- f138264 linter/eslint/no-script-url: Match javascript: prefix without allocating (#23861) (Lawrence Lin)
- 7ef6895 linter/react/no-array-index-key: Delay index symbol lookup (#23857) (camc314)
- 26bc171 linter/react/no-array-index-key: Match callback methods directly (#23856) (camc314)
- 44fbbda linter/jsx-a11y/interactive-supports-focus: Check cheap conditions first (#23854) (camc314)
- 84a5aa3 linter/eslint/no-extend-native: Skip lowercase references early (#23851) (camc314)
- 88a74b2 linter/eslint/no-nonoctal-decimal-escape: Scan decimal escapes as bytes (#23850) (camc314)
- fca69a8 linter: Skip traversal without this expressions (#23845) (camc314)
- 838fd63 linter: Reduce preallocation for per-file diagnostics `Vec` (#23705) (Marius Schulz)
- 417b506 linter/typescript/array-type: Remove full source text clone (#23751) (Marius Schulz)

### 📚 Documentation

- 57e4469 linter/unicorn: Update prefer-dom-node-text-content rationale (#23933) (Mikhail Baev)
- 3d61dea all: Correct capitalization in comments (#23887) (overlookmotel)

### 🛡️ Security

- 3cdd18f deps: Update npm packages (#23690) (renovate[bot])

## Oxfmt v0.57.0
### 💥 BREAKING CHANGES

- 259e0cd oxfmt,formatter_graphql: [**BREAKING**] Support draft syntax with removing prettier fallback (#23326) (leaysgur)
- accbc49 oxfmt: [**BREAKING**] Format `parser:css,less,scss` files + css-in-js by `oxc_formatter_css` (#23321) (leaysgur)

### 🚀 Features

- dffa4b3 formatter_css: Implement `oxc_formatter_css` (#23320) (leaysgur)
- 01de9ec oxfmt: Format `parser:graphql` files by `oxc_formatter_graphql` (#23318) (leaysgur)
- 4e66212 formatter_graphql: Implement oxc_formatter_graphql (#23317) (leaysgur)

### 🐛 Bug Fixes

- 67325ae formatter_css: Handle frontmatter language (#23819) (leaysgur)
- 3f355e5 formatter_graphql: Improve major prettier diffs (#23419) (leaysgur)
- 48e2d78 formatter_css: Improve major prettier diffs (#23327) (leaysgur)
- 8c07cad all: Enable `disable_old_builder` Cargo feature for `oxc_ast` crate in tests (#23888) (overlookmotel)
- f7d1f50 oxlint, oxfmt: Enable `disable_old_builder` Cargo feature for `oxc_ast` crate (#23886) (overlookmotel)
- d86f60b lsp: Normalize user config path to watch pattern (#23723) (Sysix)

### ⚡ Performance

- 4ddcba0 formatter_core: Add printable-ASCII fast path to TextWidth (#23913) (Lawrence Lin)

### 📚 Documentation

- b4d0dc9 oxfmt,formatter,formatter_css,formatter_core: Update AGENTS.md (#23814) (leaysgur)