# Oxc apps_v1.81.0 — oxlint v1.81.0 & oxfmt v0.66.0 - Product: Oxc (https://whatsnew.fyi/product/oxc) - Vendor: Oxc - Date: 2026-09-01 - Version: apps_v1.81.0 - Original notes: https://github.com/oxc-project/oxc/releases/tag/apps_v1.81.0 - Permalink: https://whatsnew.fyi/product/oxc/releases/apps-v1.81.0 What's New is an index, not a publisher: every entry below links to the vendor's own release notes, which are the authoritative source. Entries are labelled where they are hand-curated sample data, pre-releases, or drawn from a secondary source such as a developer blog. Reuse: the summaries, labels and curation here are © What's New. Quote freely with attribution and a link back; wholesale republication of the corpus is not permitted — terms: https://whatsnew.fyi/terms. The vendors' own release notes remain their publishers'. --- - **added** — Linter nextjs/no-typos rule now implements suggestion - **fixed** — Linter LSP prevents tsgolint from holding onto processes - **fixed** — Linter import/no-empty-named-blocks makes empty value import removal a suggestion - **fixed** — Linter eslint/object-shorthand preserves `__proto__` semantics - **fixed** — Linter unicorn/prefer-set-size ignores shadowed `Set` constructors - **fixed** — Linter clamps invalid JS plugin locations - **fixed** — Linter normalizes reversed JS plugin locations - **fixed** — Linter eslint/no-use-before-define runs on JS and JSX files - **fixed** — Linter unicorn/no-useless-spread treats typed arrays as a distinct value hint - **fixed** — Linter react/no-unstable-nested-components checks nested component object property names - **fixed** — Linter eslint/no-unassigned-vars skips Svelte and Vue files - **fixed** — Linter plugins fixes interaction between JS plugins and Vue rules - **fixed** — Linter plugins alters method for obtaining mutable `Program` when sending AST to JS plugins - **fixed** — Linter unicorn/prefer-math-min-max avoids unsafe autofix - **added** — Formatter CSS formats declaration-shaped raw-prelude rules for postcss nested config blocks - **fixed** — Formatter re-adds suppressed statement terminators per options.semi - **fixed** — Formatter prints suppressed typecast parens - **fixed** — Formatter sort-imports handles custom side effect groups ##### Table of Contents - [Oxlint v1.81.0](#oxlint-v1.81.0) - [Oxfmt v0.66.0](#oxfmt-v0.66.0) ##### Oxlint v1.81.0 ###### 🚀 Features - 60b945d linter/nextjs/no-typos: Implement suggestion (#26091) (Mikhail Baev) ###### 🐛 Bug Fixes - 33ac4b0 linter/lsp: Prevent tsgolint from holding onto processes (#25570) (Adrian Schaedle) - baf4b1e linter/import/no-empty-named-blocks: Make empty value import removal a suggestion (#26155) (camc314) - 77cfaec linter/eslint/object-shorthand: Preserve `__proto__` semantics (#26154) (camc314) - fa3c082 linter/unicorn/prefer-set-size: Ignore shadowed `Set` constructors (#26153) (camc314) - e412cf2 linter: Clamp invalid JS plugin locations (#26144) (camc314) - d86c113 linter: Normalize reversed JS plugin locations (#26138) (camc314) - 73c09b2 linter/eslint/no-use-before-define: Run on JS, JSX files (#26114) (camc314) - 03ef0f2 linter/unicorn/no-useless-spread: Treat typed arrays as a distinct value hint (#26067) (Aadharsh Pannirselvam) - bd15905 linter/react/no-unstable-nested-components: Check nested component object property names (#26101) (camc314) - 3910e2b linter/eslint/no-unassigned-vars: Skip Svelte and Vue files (#26042) (Hamody We) - 047f7ca linter/plugins: Fix interaction between JS plugins and Vue rules (#26080) (overlookmotel) - 8531b9b linter/plugins: Alter method for obtaining mutable `Program` when sending AST to JS plugins (#26077) (overlookmotel) - dc464ff linter/unicorn/prefer-math-min-max: Avoid unsafe autofix (#26060) (camc314) ###### 📚 Documentation - 464ddd1 linter: Support a shared short description for jest/vitest rules (#26186) (connorshea) - 9db5ad3 linter: Add short description to `vue/no-dupe-keys` (#26183) (connorshea) - db66f58 linter: Correct export/import mismatch in bar and foo example (#25927) (billychannnnnn) - d5be037 linter/typescript/switch-exhaustiveness-check: Clarify default case comment pattern (#26100) (camc314) ##### Oxfmt v0.66.0 ###### 🚀 Features - 1fb37b6 formatter/css: Format declaration-shaped raw-prelude rules (postcss nested config blocks) (#26194) (leaysgur) ###### 🐛 Bug Fixes - 9f81002 formatter: Re-add suppressed statement terminators per options.semi (#26220) (leaysgur) - 769ffd5 formatter: Print suppressed typecast parens (#26218) (leaysgur) - 5ff57f8 formatter/sort-imports: Handle custom side effect groups (#26217) (leaysgur) - 2f4d759 formatter: Do not skip cast comment lookup (#26216) (leaysgur) - 1213e12 formatter: Preserve comment for statement terminators and binary casts (#26213) (leaysgur) - 57e8e22 formatter_css: Space a folded sign after a call in Less operations (#26134) (leaysgur) - e4298fb formatter/jsdoc: Follow CommonMark for interrupting lists and guard wrapping from creating them (#26098) (leaysgur) - a1e21c2 formatter: Apply head body policy everywhere (#26074) (leaysgur) - 676b7e1 formatter: Keep comments in their for-head slot, before an empty-statement body and do-while (#26073) (leaysgur) - 3bbcea6 formatter: Keep comments between a head and its body out of the braces across all constructs (#26071) (leaysgur) - 57537a2 formatter: Place comments between a head and open paren (#26058) (leaysgur) - e2d53e7 formatter: Place comments between a statement head and its body (#26043) (leaysgur) - 662556c formatter: Print the idempotent placement for comments in dropped parens (#26041) (leaysgur) - faf11d9 formatter_yaml: Keep trailing whitespace in block scalars (#26072) (leaysgur) ###### ⚡ Performance - ac4785a diagnostics: Use fixed ANSI styles (#26130) (Boshen) ###### 📚 Documentation - b879608 formatter,formatter_graphql,formatter_yaml: Annotate own-line comment inlining as known policy violation (#26131) (leaysgur) - 181953b oxfmt,formatter_core,formatter,formatter_yaml,formatter_css,formatter_graphql: Extract `DIVERGENCES.md` out from `AGENTS.md` (#26121) (leaysgur) - a67cb9d formatter,formatter_core: Document comment moving policy (#26075) (leaysgur) - fc175b0 formatter_core: Clarify idempotency test inf _[Truncated at 4000 characters — full notes: https://github.com/oxc-project/oxc/releases/tag/apps_v1.81.0]_