Oxc Updates & Release Notes

Follow

183 updates curated from 1 source by the Releasebot Team. Last updated: Aug 11, 2026

Get this feed:
  • Aug 10, 2026
    • Date parsed from source:
      Aug 10, 2026
    • First seen by Releasebot:
      Aug 11, 2026
    Oxc logo

    Oxc

    oxlint_v1.78.0: release(apps): oxlint v1.78.0 && oxfmt v0.63.0 (#25473)

    Oxc ships a broad release with breaking AST changes, new lint rules like no-blank-blocks and one-var, bug fixes across ESLint, Unicorn, React and TypeScript rules, plus performance gains in the linter and LSP. Oxfmt also adds formatter improvements, YAML support and fixes.

    Oxlint

    πŸ’₯ BREAKING CHANGES

    a33788e ast: [BREAKING] Group class heritage into ClassHeritage (#25360) (camc314)
    5c5cdcd ast: [BREAKING] Narrow TSInterfaceHeritage::expression to TSTypeName (#24360) (camc314)
    6be314f ast: [BREAKING] Remove duplicated VariableDeclarator::kind (#25319) (camc314)
    44fd320 ast: [BREAKING] Split TS external modules & Namespace Declarations (#25284) (camc314)

    πŸš€ Features

    ccb8fe8 linter/jsdoc: Implement no-blank-blocks rule (#25207) (Mikhail Baev)
    d4a897c linter/eslint: Implement one-var rule (#24470) (Cole Ellison)
    5ab9340 linter/jsx-a11y/anchor-has-content: Add options to match eslint (#24571) (Cole Ellison)

    πŸ› Bug Fixes

    b746e00 linter/eslint/no-implicit-coercion: Preserve template coercion whitespace (#25470) (camc314)
    a92c541 linter: Preserve source text for JS plugin ignore fixes (#25280) (Norcleeh)
    675c840 linter/eslint/prefer-promise-reject-errors: Handle parenthesized calls (#25378) (camc314)
    1703739 linter/unicorn/new-for-builtins: Ignore optional chains (#25411) (tanakalucky)
    95ece63 linter/unicorn/prefer-code-point: Downgrade the auto-fix to dangerous (#25412) (leemr)
    c451a0e linter/vitest: Validate consistent-test-filename regex patterns (#25408) (Mikhail Baev)
    937825c react_compiler: Disable exhaustive memo validation by default (#25417) (Boshen)
    f0f7dae linter/eslint/no-unused-vars: Report invalid regex options (#25380) (Cameron)
    44e73fd linter/unicorn/prefer-array-flat: Fix concat.apply suggestions (#25373) (Cameron)
    6846a9a linter/react/rules-of-hooks: Detect constructor callbacks (#25377) (camc314)
    b247a9d linter/unicorn/new-for-builtins: Support Float16Array (#25382) (tanakalucky)
    19109cd linter/unicorn/error-message: Support SuppressedError messages (#25375) (camc314)
    9c13f5e linter: Assert token lookup invariants (#25368) (camc314)
    bc35f83 linter/eslint/no-unused-vars: Bound catch parameter lookup (#25367) (camc314)
    c159fb9 linter/unicorn/switch-case-braces: Bound token lookup (#25363) (camc314)
    03b2eb2 linter/unicorn/no-static-only-class: Bound token lookup (#25361) (camc314)
    0afc59e linter/unicorn/empty-brace-spaces: Bound token lookup (#25353) (camc314)
    2963d98 linter/eslint/no-unreachable-loop: Do not report loops whose body has a finally block (#25335) (Todor Andonov)
    589e5fb linter/eslint/no-param-reassign: Validate ignorePropertyModificationsForRegex property (#25346) (Mikhail Baev)
    aae5d8b linter/eslint/no-throw-literal: False positive on variable declared without initializer (#25275) (cjnoname)
    6b1c479 oxlint: Normalize customized rule names (#25316) (camc314)
    d494eb5 linter/unicorn/consistent-existence-index-check: Bound token lookup (#25325) (camc314)
    4266037 linter/typescript/prefer-namespace-keyword: Bound token lookup (#25322) (camc314)
    4745b4e linter/typescript/no-namespace: Bound token lookup (#25321) (camc314)
    648a481 linter/eslint/one-var: Avoid joining exported declarations (#25314) (camc314)
    9573937 linter/typescript: Validate ban-ts-comment description_format (#25320) (Mikhail Baev)
    ebf7d18 linter/typescript/consistent-type-definitions: Bound token lookup (#25281) (camc314)
    1501ccf linter/typescript/consistent-generic-constructors: Bound token lookup (#25258) (camc314)

    ⚑ Performance

    8f784f3 linter: Reduce rule config dispatch size (#25461) (Boshen)
    2de4ec2 linter: Reduce visitor code size (#25441) (Boshen)
    6fb7f47 linter/unicorn/prefer-export-from: Narrow ExportFromDeclaration lookup (#25381) (camc314)
    e3f6263 linter/unicorn/prefer-default-parameters: Avoid reference allocation (#25379) (camc314)
    d863473 linter/vue/max-props: Narrow AST dispatch (#25372) (camc314)
    273d867 linter: Avoid diagnostic sorting after applying fixes (#25079) (Sysix)
    4ec9189 oxlint/lsp: Avoid second lock for getting/removing unused directives (#25350) (Sysix)
    6c0d01b oxlint/lsp: Preallocate fix-content vec (#25351) (Sysix)
    3a94055 linter: Avoid per-call heap allocations in jest and unicorn helpers (#25210) (Connor Shea)
    4abff11 linter: Avoid redundant message work in the agent reporter (#25315) (Connor Shea)
    6bb5421 linter: Hoist current_dir out of the stylish reporter loop (#25313) (Connor Shea)
    9a7c323 linter: Compute diagnostic Info once per diagnostic in junit reporter (#25312) (Connor Shea)
    1cf7dde oxlint: Render JSON report into a single buffer (#25295) (connorshea)
    8492cfd linter/typescript/ban-ts-comment: Bail early with substring guard (#25301) (Jacob Asper)
    7607f04 linter/typescript/ban-tslint-comment: Replace regex with manual parser (#25299) (Jacob Asper)

    Oxfmt

    πŸ’₯ BREAKING CHANGES

    a33788e ast: [BREAKING] Group class heritage into ClassHeritage (#25360) (camc314)
    5c5cdcd ast: [BREAKING] Narrow TSInterfaceHeritage::expression to TSTypeName (#24360) (camc314)
    6be314f ast: [BREAKING] Remove duplicated VariableDeclarator::kind (#25319) (camc314)
    44fd320 ast: [BREAKING] Split TS external modules & Namespace Declarations (#25284) (camc314)

    πŸš€ Features

    fd02a89 oxfmt: Dispatch yaml-in-css(frontmatter) to oxc_formatter_yaml (#25336) (leaysgur)
    ab12665 formatter_core: Add hardlineWithoutBreakParent equivalent IR (#25273) (leaysgur)

    πŸ› Bug Fixes

    95dc917 oxfmt: Drop IR Space at line start for js-in-xxx (#25460) (leaysgur)
    b63eccc formatter: Keep comments after TS this_param (#25459) (leaysgur)
    ab52a59 formatter: Format xxx-in-js inside JSDoc js fence (#25414) (leaysgur)
    1a2c64a formatter,oxfmt: Apply effective print width for JSDoc fence (#25413) (leaysgur)
    2eaede9 formatter_core: Unify leading-BOM handlings (#25340) (leaysgur)
    ef1d04b formatter: Break mapped type brackets (#25297) (leaysgur)
    4e6f3f1 formatter: Break index signature brackets (#25296) (leaysgur)
    e23dccf formatter_css: Bump oxc-css-parser to accept unknown at-rule with interpolated (#25277) (leaysgur)
    c29b587 formatter_core: Measure decided-flat fill separator as flat during group re-measure (#25276) (leaysgur)
    f3c6953 formatter_yaml: Don't rewrite overflowing key to implicit (#25274) (leaysgur)

    ⚑ Performance

    c9d1a5b oxfmt: Spawn tinypool lazily (#25298) (leaysgur)

    πŸ“š Documentation

    6eae5c9 formatter,oxfmt: Record embed-layer decisions in place (#25422) (leaysgur)
    51224a7 formatter_yaml: Pin EOF blank lines divergence (#25269) (leaysgur)

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

    Oxc

    oxfmt_v0.63.0: release(apps): oxlint v1.78.0 && oxfmt v0.63.0 (#25473)

    Oxc ships a major release with breaking AST changes, new lint rules, formatter upgrades, bug fixes, and performance improvements across Oxlint and Oxfmt, including better JSDoc, YAML, and TypeScript handling.

    Oxlint

    πŸ’₯ BREAKING CHANGES

    a33788e ast: [BREAKING] Group class heritage into ClassHeritage (#25360) (camc314)

    5c5cdcd ast: [BREAKING] Narrow TSInterfaceHeritage::expression to TSTypeName (#24360) (camc314)

    6be314f ast: [BREAKING] Remove duplicated VariableDeclarator::kind (#25319) (camc314)

    44fd320 ast: [BREAKING] Split TS external modules & Namespace Declarations (#25284) (camc314)

    πŸš€ Features

    ccb8fe8 linter/jsdoc: Implement no-blank-blocks rule (#25207) (Mikhail Baev)

    d4a897c linter/eslint: Implement one-var rule (#24470) (Cole Ellison)

    5ab9340 linter/jsx-a11y/anchor-has-content: Add options to match eslint (#24571) (Cole Ellison)

    πŸ› Bug Fixes

    b746e00 linter/eslint/no-implicit-coercion: Preserve template coercion whitespace (#25470) (camc314)

    a92c541 linter: Preserve source text for JS plugin ignore fixes (#25280) (Norcleeh)

    675c840 linter/eslint/prefer-promise-reject-errors: Handle parenthesized calls (#25378) (camc314)

    1703739 linter/unicorn/new-for-builtins: Ignore optional chains (#25411) (tanakalucky)

    95ece63 linter/unicorn/prefer-code-point: Downgrade the auto-fix to dangerous (#25412) (leemr)

    c451a0e linter/vitest: Validate consistent-test-filename regex patterns (#25408) (Mikhail Baev)

    937825c react_compiler: Disable exhaustive memo validation by default (#25417) (Boshen)

    f0f7dae linter/eslint/no-unused-vars: Report invalid regex options (#25380) (Cameron)

    44e73fd linter/unicorn/prefer-array-flat: Fix concat.apply suggestions (#25373) (Cameron)

    6846a9a linter/react/rules-of-hooks: Detect constructor callbacks (#25377) (camc314)

    b247a9d linter/unicorn/new-for-builtins: Support Float16Array (#25382) (tanakalucky)

    19109cd linter/unicorn/error-message: Support SuppressedError messages (#25375) (camc314)

    9c13f5e linter: Assert token lookup invariants (#25368) (camc314)

    bc35f83 linter/eslint/no-unused-vars: Bound catch parameter lookup (#25367) (camc314)

    c159fb9 linter/unicorn/switch-case-braces: Bound token lookup (#25363) (camc314)

    03b2eb2 linter/unicorn/no-static-only-class: Bound token lookup (#25361) (camc314)

    0afc59e linter/unicorn/empty-brace-spaces: Bound token lookup (#25353) (camc314)

    2963d98 linter/eslint/no-unreachable-loop: Do not report loops whose body has a finally block (#25335) (Todor Andonov)

    589e5fb linter/eslint/no-param-reassign: Validate ignorePropertyModificationsForRegex property (#25346) (Mikhail Baev)

    aae5d8b linter/eslint/no-throw-literal: False positive on variable declared without initializer (#25275) (cjnoname)

    6b1c479 oxlint: Normalize customized rule names (#25316) (camc314)

    d494eb5 linter/unicorn/consistent-existence-index-check: Bound token lookup (#25325) (camc314)

    4266037 linter/typescript/prefer-namespace-keyword: Bound token lookup (#25322) (camc314)

    4745b4e linter/typescript/no-namespace: Bound token lookup (#25321) (camc314)

    648a481 linter/eslint/one-var: Avoid joining exported declarations (#25314) (camc314)

    9573937 linter/typescript: Validate ban-ts-comment description_format (#25320) (Mikhail Baev)

    ebf7d18 linter/typescript/consistent-type-definitions: Bound token lookup (#25281) (camc314)

    1501ccf linter/typescript/consistent-generic-constructors: Bound token lookup (#25258) (camc314)

    ⚑ Performance

    8f784f3 linter: Reduce rule config dispatch size (#25461) (Boshen)

    2de4ec2 linter: Reduce visitor code size (#25441) (Boshen)

    6fb7f47 linter/unicorn/prefer-export-from: Narrow ExportFromDeclaration lookup (#25381) (camc314)

    e3f6263 linter/unicorn/prefer-default-parameters: Avoid reference allocation (#25379) (camc314)

    d863473 linter/vue/max-props: Narrow AST dispatch (#25372) (camc314)

    273d867 linter: Avoid diagnostic sorting after applying fixes (#25079) (Sysix)

    4ec9189 oxlint/lsp: Avoid second lock for getting/removing unused directives (#25350) (Sysix)

    6c0d01b oxlint/lsp: Preallocate fix-content vec (#25351) (Sysix)

    3a94055 linter: Avoid per-call heap allocations in jest and unicorn helpers (#25210) (Connor Shea)

    4abff11 linter: Avoid redundant message work in the agent reporter (#25315) (Connor Shea)

    6bb5421 linter: Hoist current_dir out of the stylish reporter loop (#25313) (Connor Shea)

    9a7c323 linter: Compute diagnostic Info once per diagnostic in junit reporter (#25312) (Connor Shea)

    1cf7dde oxlint: Render JSON report into a single buffer (#25295) (connorshea)

    8492cfd linter/typescript/ban-ts-comment: Bail early with substring guard (#25301) (Jacob Asper)

    7607f04 linter/typescript/ban-tslint-comment: Replace regex with manual parser (#25299) (Jacob Asper)

    Oxfmt

    πŸ’₯ BREAKING CHANGES

    a33788e ast: [BREAKING] Group class heritage into ClassHeritage (#25360) (camc314)

    5c5cdcd ast: [BREAKING] Narrow TSInterfaceHeritage::expression to TSTypeName (#24360) (camc314)

    6be314f ast: [BREAKING] Remove duplicated VariableDeclarator::kind (#25319) (camc314)

    44fd320 ast: [BREAKING] Split TS external modules & Namespace Declarations (#25284) (camc314)

    πŸš€ Features

    fd02a89 oxfmt: Dispatch yaml-in-css(frontmatter) to oxc_formatter_yaml (#25336) (leaysgur)

    ab12665 formatter_core: Add hardlineWithoutBreakParent equivalent IR (#25273) (leaysgur)

    πŸ› Bug Fixes

    95dc917 oxfmt: Drop IR Space at line start for js-in-xxx (#25460) (leaysgur)

    b63eccc formatter: Keep comments after TS this_param (#25459) (leaysgur)

    ab52a59 formatter: Format xxx-in-js inside JSDoc js fence (#25414) (leaysgur)

    1a2c64a formatter,oxfmt: Apply effective print width for JSDoc fence (#25413) (leaysgur)

    2eaede9 formatter_core: Unify leading-BOM handlings (#25340) (leaysgur)

    ef1d04b formatter: Break mapped type brackets (#25297) (leaysgur)

    4e6f3f1 formatter: Break index signature brackets (#25296) (leaysgur)

    e23dccf formatter_css: Bump oxc-css-parser to accept unknown at-rule with interpolated (#25277) (leaysgur)

    c29b587 formatter_core: Measure decided-flat fill separator as flat during group re-measure (#25276) (leaysgur)

    f3c6953 formatter_yaml: Don't rewrite overflowing key to implicit (#25274) (leaysgur)

    ⚑ Performance

    c9d1a5b oxfmt: Spawn tinypool lazily (#25298) (leaysgur)

    πŸ“š Documentation

    6eae5c9 formatter,oxfmt: Record embed-layer decisions in place (#25422) (leaysgur)

    51224a7 formatter_yaml: Pin EOF blank lines divergence (#25269) (leaysgur)

    Original source
  • All of your release notes in one feed

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

    Create account
  • Aug 10, 2026
    • Date parsed from source:
      Aug 10, 2026
    • First seen by Releasebot:
      Aug 11, 2026
    Oxc logo

    Oxc

    oxc crates_v0.144.0

    Oxc ships a major release with breaking AST changes, a reshaped React transform options setup, and a broad set of parser, codegen, minifier, semantic, and React compiler fixes plus performance improvements.

    BREAKING CHANGES

    a33788e ast: [BREAKING] Group class heritage into ClassHeritage (#25360) (camc314)
    5c5cdcd ast: [BREAKING] Narrow TSInterfaceHeritage::expression to TSTypeName (#24360) (camc314)
    6be314f ast: [BREAKING] Remove duplicated VariableDeclarator::kind (#25319) (camc314)
    44fd320 ast: [BREAKING] Split TS external modules & Namespace Declarations (#25284) (camc314)

    Features

    9a37c41 napi: Restructure React transform options (#25326) (Boshen)
    b3c1b30 allocator: Add ArenaVec::push_mut (#25338) (overlookmotel)

    Bug Fixes

    bbd6ed3 codegen: Wrap string literal in parens after directives (#25435) (overlookmotel)
    d07a293 codegen: Preserve cast parentheses in conditional tests (#25115) (camc314)
    8b7d441 codegen: Preserve satisfies parentheses before bitwise operators (#25113) (camc314)
    e0fb2d7 minifier: Avoid unsafe return removal in labeled blocks (#25406) (Armano)
    c49f4ce parser: Preserve terminal license comments (#25400) (camc314)
    9d19ab3 transform_react: Downgrade nonfatal compiler diagnostics (#25418) (Boshen)
    937825c react_compiler: Disable exhaustive memo validation by default (#25417) (Boshen)
    12937b3 parser: Reject comma expressions in class fields (#25385) (Cameron)
    7d8a9b5 react_compiler: Preserve hook spans for React Refresh (#25393) (Boshen)
    9e93ba6 parser: Reset auto-accessor initializer context (#25384) (camc314)
    cc2e28d parser: Reject trailing tokens in Parser::parse_expression (#25371) (camc314)
    697c629 minifier: Preserve Annex B labeled-function bindings in implicit-return rewrite (#25349) (Armano)
    4d723ca parser: Report TS1035 for quoted module names (#25305) (camc314)
    0c9b980 semantic: Report module declaration diagnostics (#25285) (camc314)
    2a1058a napi: Omit parser header from WASI declarations (#25254) (camc314)

    Performance

    dd1430b semantic: Avoid allocation in class overload check (#25440) (camc314)
    e420816 parser: Optimize trailing comma tracking (#25376) (camc314)
    6529d1a minifier: Short-circuit scope check when alternate already determines result (#25318) (Armano)

    Documentation

    fe111eb allocator: Improve doc comments for Arena methods (#24922) (overlookmotel)

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

    Oxc

    oxlint v1.78.0 & oxfmt v0.63.0

    Oxc releases Oxlint v1.78.0 and Oxfmt v0.63.0 with new lint rules, broader rule compatibility, formatter improvements, bug fixes, and performance gains across linting, LSP, and report generation.

    Table of Contents

    Oxlint v1.78.0

    Oxfmt v0.63.0

    Oxlint v1.78.0

    πŸš€ Features

    ccb8fe8 linter/jsdoc: Implement no-blank-blocks rule (#25207) (Mikhail Baev)
    d4a897c linter/eslint: Implement one-var rule (#24470) (Cole Ellison)
    5ab9340 linter/jsx-a11y/anchor-has-content: Add options to match eslint (#24571) (Cole Ellison)

    πŸ› Bug Fixes

    b746e00 linter/eslint/no-implicit-coercion: Preserve template coercion whitespace (#25470) (camc314)
    a92c541 linter: Preserve source text for JS plugin ignore fixes (#25280) (Norcleeh)
    675c840 linter/eslint/prefer-promise-reject-errors: Handle parenthesized calls (#25378) (camc314)
    1703739 linter/unicorn/new-for-builtins: Ignore optional chains (#25411) (tanakalucky)
    95ece63 linter/unicorn/prefer-code-point: Downgrade the auto-fix to dangerous (#25412) (leemr)
    c451a0e linter/vitest: Validate consistent-test-filename regex patterns (#25408) (Mikhail Baev)
    937825c react_compiler: Disable exhaustive memo validation by default (#25417) (Boshen)
    f0f7dae linter/eslint/no-unused-vars: Report invalid regex options (#25380) (Cameron)
    44e73fd linter/unicorn/prefer-array-flat: Fix concat.apply suggestions (#25373) (Cameron)
    6846a9a linter/react/rules-of-hooks: Detect constructor callbacks (#25377) (camc314)
    b247a9d linter/unicorn/new-for-builtins: Support Float16Array (#25382) (tanakalucky)
    19109cd linter/unicorn/error-message: Support SuppressedError messages (#25375) (camc314)
    9c13f5e linter: Assert token lookup invariants (#25368) (camc314)
    bc35f83 linter/eslint/no-unused-vars: Bound catch parameter lookup (#25367) (camc314)
    c159fb9 linter/unicorn/switch-case-braces: Bound token lookup (#25363) (camc314)
    03b2eb2 linter/unicorn/no-static-only-class: Bound token lookup (#25361) (camc314)
    0afc59e linter/unicorn/empty-brace-spaces: Bound token lookup (#25353) (camc314)
    2963d98 linter/eslint/no-unreachable-loop: Do not report loops whose body has a finally block (#25335) (Todor Andonov)
    589e5fb linter/eslint/no-param-reassign: Validate ignorePropertyModificationsForRegex property (#25346) (Mikhail Baev)
    aae5d8b linter/eslint/no-throw-literal: False positive on variable declared without initializer (#25275) (cjnoname)
    6b1c479 oxlint: Normalize customized rule names (#25316) (camc314)
    d494eb5 linter/unicorn/consistent-existence-index-check: Bound token lookup (#25325) (camc314)
    4266037 linter/typescript/prefer-namespace-keyword: Bound token lookup (#25322) (camc314)
    4745b4e linter/typescript/no-namespace: Bound token lookup (#25321) (camc314)
    648a481 linter/eslint/one-var: Avoid joining exported declarations (#25314) (camc314)
    9573937 linter/typescript: Validate ban-ts-comment description_format (#25320) (Mikhail Baev)
    ebf7d18 linter/typescript/consistent-type-definitions: Bound token lookup (#25281) (camc314)
    1501ccf linter/typescript/consistent-generic-constructors: Bound token lookup (#25258) (camc314)

    ⚑ Performance

    8f784f3 linter: Reduce rule config dispatch size (#25461) (Boshen)
    2de4ec2 linter: Reduce visitor code size (#25441) (Boshen)
    6fb7f47 linter/unicorn/prefer-export-from: Narrow ExportFromDeclaration lookup (#25381) (camc314)
    e3f6263 linter/unicorn/prefer-default-parameters: Avoid reference allocation (#25379) (camc314)
    d863473 linter/vue/max-props: Narrow AST dispatch (#25372) (camc314)
    273d867 linter: Avoid diagnostic sorting after applying fixes (#25079) (Sysix)
    4ec9189 oxlint/lsp: Avoid second lock for getting/removing unused directives (#25350) (Sysix)
    6c0d01b oxlint/lsp: Preallocate fix-content vec (#25351) (Sysix)
    3a94055 linter: Avoid per-call heap allocations in jest and unicorn helpers (#25210) (Connor Shea)
    4abff11 linter: Avoid redundant message work in the agent reporter (#25315) (Connor Shea)
    6bb5421 linter: Hoist current_dir out of the stylish reporter loop (#25313) (Connor Shea)
    9a7c323 linter: Compute diagnostic Info once per diagnostic in junit reporter (#25312) (Connor Shea)
    1cf7dde oxlint: Render JSON report into a single buffer (#25295) (connorshea)
    8492cfd linter/typescript/ban-ts-comment: Bail early with substring guard (#25301) (Jacob Asper)
    7607f04 linter/typescript/ban-tslint-comment: Replace regex with manual parser (#25299) (Jacob Asper)

    Oxfmt v0.63.0

    πŸš€ Features

    fd02a89 oxfmt: Dispatch yaml-in-css(frontmatter) to oxc_formatter_yaml (#25336) (leaysgur)
    ab12665 formatter_core: Add hardlineWithoutBreakParent equivalent IR (#25273) (leaysgur)

    πŸ› Bug Fixes

    95dc917 oxfmt: Drop IR Space at line start for js-in-xxx (#25460) (leaysgur)
    b63eccc formatter: Keep comments after TS this_param (#25459) (leaysgur)
    ab52a59 formatter: Format xxx-in-js inside JSDoc js fence (#25414) (leaysgur)
    1a2c64a formatter,oxfmt: Apply effective print width for JSDoc fence (#25413) (leaysgur)
    2eaede9 formatter_core: Unify leading-BOM handlings (#25340) (leaysgur)
    ef1d04b formatter: Break mapped type brackets (#25297) (leaysgur)
    4e6f3f1 formatter: Break index signature brackets (#25296) (leaysgur)
    e23dccf formatter_css: Bump oxc-css-parser to accept unknown at-rule with interpolated (#25277) (leaysgur)
    c29b587 formatter_core: Measure decided-flat fill separator as flat during group re-measure (#25276) (leaysgur)
    f3c6953 formatter_yaml: Don't rewrite overflowing key to implicit (#25274) (leaysgur)

    ⚑ Performance

    c9d1a5b oxfmt: Spawn tinypool lazily (#25298) (leaysgur)

    πŸ“š Documentation

    6eae5c9 formatter,oxfmt: Record embed-layer decisions in place (#25422) (leaysgur)
    51224a7 formatter_yaml: Pin EOF blank lines divergence (#25269) (leaysgur)

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

    Oxc

    oxc crates_v0.143.0

    Oxc releases a broad update with breaking AST and allocator changes, new React Compiler transform support, and minifier and parser improvements that boost correctness and performance. The release also adds bug fixes, React Compiler diagnostics handling, and documentation cleanup.

    πŸ’₯ BREAKING CHANGES

    4120da0 semantic: [BREAKING] Return borrowed JSDoc so the parse cache works (#25186) (Connor Shea)
    f0a41c8 allocator: [BREAKING] Remove ArenaBox::dangling method (#25236) (overlookmotel)
    067da8c ast: [BREAKING] Store single parameter in TSIndexSignature::parameter (#25154) (camc314)
    a0c7788 ast: [BREAKING] Change TSIndexSignatureName::name to Ident (#25150) (camc314)
    1bdedd1 ast: [BREAKING] Introduce ExportDeclaration, ExportFromDeclaration (#25095) (camc314)
    c917f20 ast: [BREAKING] Introduce ArrowFunctionBody enum (#24987) (camc314)
    7e1199c ast: [BREAKING] Remove conversion to Box from AST builder methods (#25038) (overlookmotel)

    πŸš€ Features

    3c8312e allocator: Make Box Send + Sync when the type it contains is (#25242) (overlookmotel)
    cb5bc08 ast: Derive GetSpan for Comment (#25147) (leaysgur)
    8541e18 ast_tools: Generate minifier scope collector (#25088) (camc314)
    5acdae2 ecmascript: Skip transparent TS expressions (#25072) (camc314)
    85d0f4d napi: Add React Compiler transform binding (#24934) (Boshen)
    70d6ece minifier: Fold safe integer exponentiation (#25009) (Dunqing)
    73fc747 minifier: Enable termination statement optimization for do while (#24921) (Armano)
    5eadfdb minifier: Fold safe integer division and remainder (#24981) (Dunqing)

    πŸ› Bug Fixes

    6c9ee14 minifier: Preserve if-chain idempotency and correct side effects when alternate should not be moved (#25041) (Armano)
    8a47ff3 ecmascript: Do not treat lone-surrogate strings as constants (#25084) (Dunqing)
    468b970 isolated-declarations: Strip re-export attributes (#25090) (camc314)
    a70035d parser: Report export imports in namespaces (#25086) (camc314)
    5d8ccf5 react_compiler: Preserve nonfatal diagnostics (#25066) (Boshen)
    d349e4a react_compiler: Match eslint suppression gating (#25068) (Boshen)
    0dc16ba react_compiler: Track catch block declarations (#25067) (Boshen)
    e6734a5 minifier: Fold typeof comparisons with known object strings (#25017) (Dunqing)
    3a9d5a5 minifier: Keep typeof foo == ['object'] as-is (#24941) (sapphi-red)
    10ec276 ast: Custom AST builder methods take IntoIn<ArenaBox> where child method does (#25033) (overlookmotel)
    fbe8d31 minifier: Respect targets when folding RegExp source (#24790) (Dunqing)

    ⚑ Performance

    fb402b0 minifier: Stop re-deriving printed numeric spellings (#25103) (Dunqing)
    7251e52 react_compiler: Avoid large types on stack (#25037) (overlookmotel)
    e07718f isolated_declarations: Avoid large types on stack (#25036) (overlookmotel)
    9fb1e3e transformer: Avoid large types on stack (#25035) (overlookmotel)
    8b80f8b parser: Avoid large types on stack (#25034) (overlookmotel)

    πŸ“š Documentation

    2ea0aa9 ast: Correct grammar in AST builder methods doc comments (#25173) (overlookmotel)

    Original source
  • Similar to Oxc with recent updates:

  • Aug 3, 2026
    • Date parsed from source:
      Aug 3, 2026
    • First seen by Releasebot:
      Aug 4, 2026
    Oxc logo

    Oxc

    oxlint_v1.77.0: release(apps): oxlint v1.77.0 && oxfmt v0.62.0 (#25251)

    Oxc releases Oxlint and Oxfmt updates with breaking AST and formatter changes, new tsx-in-vue support, GitHub-style annotations, and broad lint and formatting fixes. It also improves performance and refreshes documentation across the toolchain.

    Oxlint

    πŸ’₯ BREAKING CHANGES

    4120da0 semantic: [BREAKING] Return borrowed JSDoc so the parse cache works (#25186) (Connor Shea)
    067da8c ast: [BREAKING] Store single parameter in TSIndexSignature::parameter (#25154) (camc314)
    1bdedd1 ast: [BREAKING] Introduce ExportDeclaration, ExportFromDeclaration (#25095) (camc314)
    c917f20 ast: [BREAKING] Introduce ArrowFunctionBody enum (#24987) (camc314)

    πŸš€ Features

    0b9f83c linter/oxc/bad-char-at-comparison: Expand coverage (#25001) (Mikhail Baev)
    1fb3d70 oxlint: Show file:line:col in github format annotation messages (#25020) (Faris Tristan Fabian)

    πŸ› Bug Fixes

    9d4592c linter: Reject duplicate JS plugin names (#25243) (camc314)
    3213e7a linter: Ignore unsigned shifts in prefer-math-trunc (#25240) (camc314)
    06579da linter/eslint/prefer-promise-reject-errors: Handle ambient error variables (#25238) (camc314)
    6a7cd90 linter/oxc/no-async-await: Bound token lookup (#25222) (camc314)
    d8e390a linter/oxc/bad-bitwise-operator: Bound token lookups (#25220) (camc314)
    351a777 linter/import/no-duplicates: Bound token lookup (#25219) (camc314)
    4f70fb6 linter/import/consistent-type-specifier-style: Bound token lookup (#25218) (camc314)
    b89113c linter/eslint/yoda: Bound token lookup (#25202) (camc314)
    7c7cda7 linter/oxc/no-map-spread: Avoid recursive declaration traversal (#25200) (camc314)
    99efb30 linter/eslint/prefer-promise-reject-errors: Move category to pedantic (#25201) (camc314)
    8edad2a linter/eslint/require-await: Bound token lookup (#25199) (camc314)
    5aaec85 linter/eslint/prefer-template: Bound token lookup (#25197) (camc314)
    0ea1af4 linter/unicorn/new-for-builtins: Align Date() diagnostic message with upstream (#25166) (tanakalucky)
    f6c8575 linter/eslint/prefer-object-spread: Bound token lookup (#25195) (camc314)
    20f68e7 oxlint,oxfmt: Respect .gitignore for walk targets and explicit paths (#25133) (leaysgur)
    b83993b linter/eslint/prefer-const: Bound token lookup (#25194) (camc314)
    aeabf63 linter/eslint/object-shorthand: Bound token lookups (#25193) (camc314)
    48f302c linter/eslint/no-var: Bound token lookup (#25192) (camc314)
    1f595de linter/eslint/no-unused-vars: Bound token lookups (#25191) (camc314)
    e52f4c4 linter/eslint/no-unexpected-multiline: Use bounded token lookup (#25190) (camc314)
    ca80338 linter/eslint/eqeqeq: Use bounded token lookup (#25189) (camc314)
    df91684 linter: Make the remaining token lookups comment-aware (#25182) (connorshea)
    2401bb8 linter/eslint/prefer-const: Skip Svelte and Vue files (#25148) (PitiΘ™ Radu)
    b870897 linter: Don't match tokens inside comments when locating spans (#25181) (connorshea)
    b474da1 linter/typescript/consistent-type-imports: Make token lookups comment-aware (#25180) (connorshea)
    81f82db linter: Don't insert an ASI semicolon into an unbraced statement body (#25160) (Vladexy88x)
    31333be linter/no-magic-array-flat-depth: Scan for ( by byte offset instead of character count (#25130) (connorshea)
    56e9c83 linter: Index source text by byte offset instead of char count (#25131) (connorshea)
    5c0fa61 linter/eslint/no-warning-comments: Unify config structs and remove manual options docs (#25151) (Mikhail Baev)
    a922355 docs: Incorrect quotations in role_supports_aria_props.rs (#25077) (Maximilian Franzke)
    e8c4c05 linter/eslint/no-unreachable-loop: Handle caught errors correctly (#25071) (camc314)
    2b02711 oxlint: Correct --warn flag help text (#25059) (Faris Tristan Fabian)
    97f084f linter/eslint/no-control-regex: Allow null escape (#25070) (camc314)

    ⚑ Performance

    224c21a linter/vue/no-side-effects-in-computed-properties: Borrow property names in the mutation walk (#25212) (connorshea)
    d36e9c9 linter/unicorn/prefer-export-from: Skip non-violating imports early (#25183) (connorshea)
    6f2b933 linter/import/no-cycle: Drop two Vec allocations per graph edge (#25004) (Connor Shea)
    79ddb18 linter/import/no-cycle: Skip the graph walk for acyclic modules (#25003) (Connor Shea)

    πŸ“š Documentation

    f8392cd linter/eslint/prefer-promise-reject-errors: Recommend type aware rule (#25241) (camc314)
    9dc7756 linter/typescript/no-unnecessary-condition: Clarify options (#25110) (camc314)

    Oxfmt

    πŸ’₯ BREAKING CHANGES

    067da8c ast: [BREAKING] Store single parameter in TSIndexSignature::parameter (#25154) (camc314)
    a0c7788 ast: [BREAKING] Change TSIndexSignatureName::name to Ident (#25150) (camc314)
    1bdedd1 ast: [BREAKING] Introduce ExportDeclaration, ExportFromDeclaration (#25095) (camc314)
    c917f20 ast: [BREAKING] Introduce ArrowFunctionBody enum (#24987) (camc314)
    0c16cb5 oxfmt: [BREAKING] Format parser:yaml files by oxc_formatter_yaml (#24890) (leaysgur)

    πŸš€ Features

    1b57f78 oxfmt: Support tsx-in-vue (#25063) (leaysgur)
    be7f6da oxfmt: Colorize diff file list in check mode (#25061) (leaysgur)

    πŸ› Bug Fixes

    68146bd formatter_css: Preserve glued plugin words in grid values (#25225) (leaysgur)
    20f68e7 oxlint,oxfmt: Respect .gitignore for walk targets and explicit paths (#25133) (leaysgur)
    a9e76e9 oxfmt: Rework tsx-in-vue support (#25106) (leaysgur)
    dd28596 formatter_css: Bump oxc-css-parser for substituted at-rule preludes (#25104) (leaysgur)
    ca1ba71 formatter: Hug arrows with type-reference return annotations (#25044) (PitiΘ™ Radu)
    f56009a oxfmt: Correct prose about comment width in fits measurement (#25054) (leaysgur)
    22fdda4 oxfmt/conformance: Fix typo (#25053) (leaysgur)
    ee344bd formatter_yaml: Break long keys off a block scalar header (#25014) (leaysgur)
    d5e3476 formatter_yaml: Let ancestor collection values claim end comments after block scalars (#24897) (leaysgur)
    ec05297 formatter_yaml: Align sequence container end comments to the dash width (#24891) (leaysgur)
    e6e584b oxfmt: Type jsdoc. enum options (#25008) (leaysgur)

    ⚑ Performance

    b91d5a8 formatter_css,formatter_graphql,formatter_yaml,formatter_json: Pre alloc IR buffers (#25234) (leaysgur)

    πŸ“š Documentation

    eaa7c69 formatter_core: Extract FORMATTER_POLICY (#25233) (leaysgur)
    a1842e2 formatter_json: Fix outdated separeted.rs comments (#25144) (leaysgur)
    193e16f formatter/jsdoc: Correct str_width attribution (#25142) (leaysgur)

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

    Oxc

    oxfmt_v0.62.0: release(apps): oxlint v1.77.0 && oxfmt v0.62.0 (#25251)

    Oxc ships a broad release for Oxlint and Oxfmt with breaking AST and formatter changes, new tsx-in-vue support, improved GitHub-style lint annotations, better .gitignore handling, and a wide set of lint, formatting, and performance fixes.

    Oxlint

    πŸ’₯ BREAKING CHANGES

    4120da0 semantic: [BREAKING] Return borrowed JSDoc so the parse cache works (#25186) (Connor Shea)
    067da8c ast: [BREAKING] Store single parameter in TSIndexSignature::parameter (#25154) (camc314)
    1bdedd1 ast: [BREAKING] Introduce ExportDeclaration, ExportFromDeclaration (#25095) (camc314)
    c917f20 ast: [BREAKING] Introduce ArrowFunctionBody enum (#24987) (camc314)

    πŸš€ Features

    0b9f83c linter/oxc/bad-char-at-comparison: Expand coverage (#25001) (Mikhail Baev)
    1fb3d70 oxlint: Show file:line:col in github format annotation messages (#25020) (Faris Tristan Fabian)

    πŸ› Bug Fixes

    9d4592c linter: Reject duplicate JS plugin names (#25243) (camc314)
    3213e7a linter: Ignore unsigned shifts in prefer-math-trunc (#25240) (camc314)
    06579da linter/eslint/prefer-promise-reject-errors: Handle ambient error variables (#25238) (camc314)
    6a7cd90 linter/oxc/no-async-await: Bound token lookup (#25222) (camc314)
    d8e390a linter/oxc/bad-bitwise-operator: Bound token lookups (#25220) (camc314)
    351a777 linter/import/no-duplicates: Bound token lookup (#25219) (camc314)
    4f70fb6 linter/import/consistent-type-specifier-style: Bound token lookup (#25218) (camc314)
    b89113c linter/eslint/yoda: Bound token lookup (#25202) (camc314)
    7c7cda7 linter/oxc/no-map-spread: Avoid recursive declaration traversal (#25200) (camc314)
    99efb30 linter/eslint/prefer-promise-reject-errors: Move category to pedantic (#25201) (camc314)
    8edad2a linter/eslint/require-await: Bound token lookup (#25199) (camc314)
    5aaec85 linter/eslint/prefer-template: Bound token lookup (#25197) (camc314)
    0ea1af4 linter/unicorn/new-for-builtins: Align Date() diagnostic message with upstream (#25166) (tanakalucky)
    f6c8575 linter/eslint/prefer-object-spread: Bound token lookup (#25195) (camc314)
    20f68e7 oxlint,oxfmt: Respect .gitignore for walk targets and explicit paths (#25133) (leaysgur)
    b83993b linter/eslint/prefer-const: Bound token lookup (#25194) (camc314)
    aeabf63 linter/eslint/object-shorthand: Bound token lookups (#25193) (camc314)
    48f302c linter/eslint/no-var: Bound token lookup (#25192) (camc314)
    1f595de linter/eslint/no-unused-vars: Bound token lookups (#25191) (camc314)
    e52f4c4 linter/eslint/no-unexpected-multiline: Use bounded token lookup (#25190) (camc314)
    ca80338 linter/eslint/eqeqeq: Use bounded token lookup (#25189) (camc314)
    df91684 linter: Make the remaining token lookups comment-aware (#25182) (connorshea)
    2401bb8 linter/eslint/prefer-const: Skip Svelte and Vue files (#25148) (PitiΘ™ Radu)
    b870897 linter: Don't match tokens inside comments when locating spans (#25181) (connorshea)
    b474da1 linter/typescript/consistent-type-imports: Make token lookups comment-aware (#25180) (connorshea)
    81f82db linter: Don't insert an ASI semicolon into an unbraced statement body (#25160) (Vladexy88x)
    31333be linter/no-magic-array-flat-depth: Scan for ( by byte offset instead of character count (#25130) (connorshea)
    56e9c83 linter: Index source text by byte offset instead of char count (#25131) (connorshea)
    5c0fa61 linter/eslint/no-warning-comments: Unify config structs and remove manual options docs (#25151) (Mikhail Baev)
    a922355 docs: Incorrect quotations in role_supports_aria_props.rs (#25077) (Maximilian Franzke)
    e8c4c05 linter/eslint/no-unreachable-loop: Handle caught errors correctly (#25071) (camc314)
    2b02711 oxlint: Correct --warn flag help text (#25059) (Faris Tristan Fabian)
    97f084f linter/eslint/no-control-regex: Allow null escape (#25070) (camc314)

    ⚑ Performance

    224c21a linter/vue/no-side-effects-in-computed-properties: Borrow property names in the mutation walk (#25212) (connorshea)
    d36e9c9 linter/unicorn/prefer-export-from: Skip non-violating imports early (#25183) (connorshea)
    6f2b933 linter/import/no-cycle: Drop two Vec allocations per graph edge (#25004) (Connor Shea)
    79ddb18 linter/import/no-cycle: Skip the graph walk for acyclic modules (#25003) (Connor Shea)

    πŸ“š Documentation

    f8392cd linter/eslint/prefer-promise-reject-errors: Recommend type aware rule (#25241) (camc314)
    9dc7756 linter/typescript/no-unnecessary-condition: Clarify options (#25110) (camc314)

    Oxfmt

    πŸ’₯ BREAKING CHANGES

    067da8c ast: [BREAKING] Store single parameter in TSIndexSignature::parameter (#25154) (camc314)
    a0c7788 ast: [BREAKING] Change TSIndexSignatureName::name to Ident (#25150) (camc314)
    1bdedd1 ast: [BREAKING] Introduce ExportDeclaration, ExportFromDeclaration (#25095) (camc314)
    c917f20 ast: [BREAKING] Introduce ArrowFunctionBody enum (#24987) (camc314)
    0c16cb5 oxfmt: [BREAKING] Format parser:yaml files by oxc_formatter_yaml (#24890) (leaysgur)

    πŸš€ Features

    1b57f78 oxfmt: Support tsx-in-vue (#25063) (leaysgur)
    be7f6da oxfmt: Colorize diff file list in check mode (#25061) (leaysgur)

    πŸ› Bug Fixes

    68146bd formatter_css: Preserve glued plugin words in grid values (#25225) (leaysgur)
    20f68e7 oxlint,oxfmt: Respect .gitignore for walk targets and explicit paths (#25133) (leaysgur)
    a9e76e9 oxfmt: Rework tsx-in-vue support (#25106) (leaysgur)
    dd28596 formatter_css: Bump oxc-css-parser for substituted at-rule preludes (#25104) (leaysgur)
    ca1ba71 formatter: Hug arrows with type-reference return annotations (#25044) (PitiΘ™ Radu)
    f56009a oxfmt: Correct prose about comment width in fits measurement (#25054) (leaysgur)
    22fdda4 oxfmt/conformance: Fix typo (#25053) (leaysgur)
    ee344bd formatter_yaml: Break long keys off a block scalar header (#25014) (leaysgur)
    d5e3476 formatter_yaml: Let ancestor collection values claim end comments after block scalars (#24897) (leaysgur)
    ec05297 formatter_yaml: Align sequence container end comments to the dash width (#24891) (leaysgur)
    e6e584b oxfmt: Type jsdoc. enum options (#25008) (leaysgur)

    ⚑ Performance

    b91d5a8 formatter_css,formatter_graphql,formatter_yaml,formatter_json: Pre alloc IR buffers (#25234) (leaysgur)

    πŸ“š Documentation

    eaa7c69 formatter_core: Extract FORMATTER_POLICY (#25233) (leaysgur)
    a1842e2 formatter_json: Fix outdated separeted.rs comments (#25144) (leaysgur)
    193e16f formatter/jsdoc: Correct str_width attribution (#25142) (leaysgur)

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

    Oxc

    oxlint v1.77.0 & oxfmt v0.62.0

    Oxc releases Oxlint v1.77.0 and Oxfmt v0.62.0 with breaking AST changes, new lint and formatter capabilities, richer GitHub-style annotations, tsx-in-vue support, and a broad round of bug fixes, performance improvements, and documentation updates.

    Table of Contents

    • Oxlint v1.77.0
    • Oxfmt v0.62.0

    Oxlint v1.77.0

    πŸ’₯ BREAKING CHANGES

    • 4120da0 semantic: [BREAKING] Return borrowed JSDoc so the parse cache works (#25186) (Connor Shea)
    • 067da8c ast: [BREAKING] Store single parameter in TSIndexSignature::parameter (#25154) (camc314)
    • 1bdedd1 ast: [BREAKING] Introduce ExportDeclaration, ExportFromDeclaration (#25095) (camc314)
    • c917f20 ast: [BREAKING] Introduce ArrowFunctionBody enum (#24987) (camc314)

    πŸš€ Features

    • 0b9f83c linter/oxc/bad-char-at-comparison: Expand coverage (#25001) (Mikhail Baev)
    • 1fb3d70 oxlint: Show file:line:col in github format annotation messages (#25020) (Faris Tristan Fabian)

    πŸ› Bug Fixes

    • a64b65d linter/unicorn/new-for-builtins: Detect parenthesized member expression object (#25249) (tanakalucky)
    • 9d4592c linter: Reject duplicate JS plugin names (#25243) (camc314)
    • 3213e7a linter: Ignore unsigned shifts in prefer-math-trunc (#25240) (camc314)
    • 06579da linter/eslint/prefer-promise-reject-errors: Handle ambient error variables (#25238) (camc314)
    • 6a7cd90 linter/oxc/no-async-await: Bound token lookup (#25222) (camc314)
    • d8e390a linter/oxc/bad-bitwise-operator: Bound token lookups (#25220) (camc314)
    • 351a777 linter/import/no-duplicates: Bound token lookup (#25219) (camc314)
    • 4f70fb6 linter/import/consistent-type-specifier-style: Bound token lookup (#25218) (camc314)
    • b89113c linter/eslint/yoda: Bound token lookup (#25202) (camc314)
    • 7c7cda7 linter/oxc/no-map-spread: Avoid recursive declaration traversal (#25200) (camc314)
    • 99efb30 linter/eslint/prefer-promise-reject-errors: Move category to pedantic (#25201) (camc314)
    • 8edad2a linter/eslint/require-await: Bound token lookup (#25199) (camc314)
    • 5aaec85 linter/eslint/prefer-template: Bound token lookup (#25197) (camc314)
    • 0ea1af4 linter/unicorn/new-for-builtins: Align Date() diagnostic message with upstream (#25166) (tanakalucky)
    • f6c8575 linter/eslint/prefer-object-spread: Bound token lookup (#25195) (camc314)
    • 20f68e7 oxlint,oxfmt: Respect .gitignore for walk targets and explicit paths (#25133) (leaysgur)
    • b83993b linter/eslint/prefer-const: Bound token lookup (#25194) (camc314)
    • aeabf63 linter/eslint/object-shorthand: Bound token lookups (#25193) (camc314)
    • 48f302c linter/eslint/no-var: Bound token lookup (#25192) (camc314)
    • 1f595de linter/eslint/no-unused-vars: Bound token lookups (#25191) (camc314)
    • e52f4c4 linter/eslint/no-unexpected-multiline: Use bounded token lookup (#25190) (camc314)
    • ca80338 linter/eslint/eqeqeq: Use bounded token lookup (#25189) (camc314)
    • df91684 linter: Make the remaining token lookups comment-aware (#25182) (connorshea)
    • 2401bb8 linter/eslint/prefer-const: Skip Svelte and Vue files (#25148) (PitiΘ™ Radu)
    • b870897 linter: Don't match tokens inside comments when locating spans (#25181) (connorshea)
    • b474da1 linter/typescript/consistent-type-imports: Make token lookups comment-aware (#25180) (connorshea)
    • 81f82db linter: Don't insert an ASI semicolon into an unbraced statement body (#25160) (Vladexy88x)
    • 31333be linter/no-magic-array-flat-depth: Scan for ( by byte offset instead of character count (#25130) (connorshea)
    • 56e9c83 linter: Index source text by byte offset instead of char count (#25131) (connorshea)
    • 5c0fa61 linter/eslint/no-warning-comments: Unify config structs and remove manual options docs (#25151) (Mikhail Baev)
    • a922355 docs: Incorrect quotations in role_supports_aria_props.rs (#25077) (Maximilian Franzke)
    • e8c4c05 linter/eslint/no-unreachable-loop: Handle caught errors correctly (#25071) (camc314)
    • 2b02711 oxlint: Correct --warn flag help text (#25059) (Faris Tristan Fabian)
    • 97f084f linter/eslint/no-control-regex: Allow null escape (#25070) (camc314)

    ⚑ Performance

    • 224c21a linter/vue/no-side-effects-in-computed-properties: Borrow property names in the mutation walk (#25212) (connorshea)
    • d36e9c9 linter/unicorn/prefer-export-from: Skip non-violating imports early (#25183) (connorshea)
    • 6f2b933 linter/import/no-cycle: Drop two Vec allocations per graph edge (#25004) (Connor Shea)
    • 79ddb18 linter/import/no-cycle: Skip the graph walk for acyclic modules (#25003) (Connor Shea)

    πŸ“š Documentation

    • f8392cd linter/eslint/prefer-promise-reject-errors: Recommend type aware rule (#25241) (camc314)
    • 9dc7756 linter/typescript/no-unnecessary-condition: Clarify options (#25110) (camc314)

    Oxfmt v0.62.0

    πŸ’₯ BREAKING CHANGES

    • 067da8c ast: [BREAKING] Store single parameter in TSIndexSignature::parameter (#25154) (camc314)
    • a0c7788 ast: [BREAKING] Change TSIndexSignatureName::name to Ident (#25150) (camc314)
    • 1bdedd1 ast: [BREAKING] Introduce ExportDeclaration, ExportFromDeclaration (#25095) (camc314)
    • c917f20 ast: [BREAKING] Introduce ArrowFunctionBody enum (#24987) (camc314)
    • 0c16cb5 oxfmt: [BREAKING] Format parser:yaml files by oxc_formatter_yaml (#24890) (leaysgur)

    πŸš€ Features

    • 1b57f78 oxfmt: Support tsx-in-vue (#25063) (leaysgur)
    • be7f6da oxfmt: Colorize diff file list in check mode (#25061) (leaysgur)

    πŸ› Bug Fixes

    • 68146bd formatter_css: Preserve glued plugin words in grid values (#25225) (leaysgur)
    • 20f68e7 oxlint,oxfmt: Respect .gitignore for walk targets and explicit paths (#25133) (leaysgur)
    • a9e76e9 oxfmt: Rework tsx-in-vue support (#25106) (leaysgur)
    • dd28596 formatter_css: Bump oxc-css-parser for substituted at-rule preludes (#25104) (leaysgur)
    • ca1ba71 formatter: Hug arrows with type-reference return annotations (#25044) (PitiΘ™ Radu)
    • f56009a oxfmt: Correct prose about comment width in fits measurement (#25054) (leaysgur)
    • 22fdda4 oxfmt/conformance: Fix typo (#25053) (leaysgur)
    • ee344bd formatter_yaml: Break long keys off a block scalar header (#25014) (leaysgur)
    • d5e3476 formatter_yaml: Let ancestor collection values claim end comments after block scalars (#24897) (leaysgur)
    • ec05297 formatter_yaml: Align sequence container end comments to the dash width (#24891) (leaysgur)
    • e6e584b oxfmt: Type jsdoc. enum options (#25008) (leaysgur)

    ⚑ Performance

    • b91d5a8 formatter_css,formatter_graphql,formatter_yaml,formatter_json: Pre alloc IR buffers (#25234) (leaysgur)

    πŸ“š Documentation

    • eaa7c69 formatter_core: Extract FORMATTER_POLICY (#25233) (leaysgur)
    • a1842e2 formatter_json: Fix outdated separeted.rs comments (#25144) (leaysgur)
    • 193e16f formatter/jsdoc: Correct str_width attribution (#25142) (leaysgur)
    Original source
  • Jul 27, 2026
    • Date parsed from source:
      Jul 27, 2026
    • First seen by Releasebot:
      Jul 28, 2026
    Oxc logo

    Oxc

    oxlint_v1.76.0: release(apps): oxlint v1.76.0 && oxfmt v0.61.0 (#24976)

    Oxc adds new lint rules, broader ESLint and TypeScript ESLint schema checks, and faster oxlint performance, while fixing several diagnostics and suggestion behaviors. Oxfmt expands with YAML formatting and LSP support for nested config, plus multiple formatter fixes and speedups.

    Oxlint

    πŸš€ Features

    8d31dfa linter: Verify eslint/no-restricted-globals config schema (#24598) (vigneshwar)
    7069621 linter: Verify jest/vitest prefer-lowercase-title config schema (#24724) (Bartok)
    016cf2a linter/oxc: Add bad-match-all-arg rule (#24900) (camc314)
    cdc941e linter/n: Implement exports-style rule (#24087) (Mikhail Baev)
    1ad6f6c linter/eslint: Implement id-denylist rule (#24632) (Mikhail Baev)
    678bbb5 linter/typescript-eslint: Implement suggestion for class-literal-property-style rule (#24766) (Mikhail Baev)

    πŸ› Bug Fixes

    a5f3a0e linter: Mark missing suggestions as pending (#24956) (Mikhail Baev)
    a065946 oxlint: Absolutize explicit CLI paths even with --no-ignore (#24646) (Bez Sahara)
    17688bb linter/jsx-a11y/interactive-supports-focus: Match eslint behavior for custom components (#24780) (Cole Ellison)
    0aef19e linter/typescript/no-confusing-non-null-assertion: Report in and instanceof (#24825) (Mikhail Baev)
    361dce9 linter: Unicorn/no-array-reverse and no-array-sort replacements should be suggestions (#24848) (klem)
    9213560 config: Preserve defineConfig field JSDoc (#24326) (ε‘¨ζ˜Ÿζ˜ŸεŒε­¦)
    334d884 linter/node/no-top-level-await: Clarify diagnostic (#24803) (camc314)
    b9fc6af linter/eslint/func-names: Ignore overloads (#24801) (camc314)
    e80574f estree: Handle empty spans serializing ImportMeta and NewTarget (#24775) (overlookmotel)

    ⚑ Performance

    c75dc60 linter: Avoid Vec allocations via bound_names (#24959) (connorshea)
    9f9f39d linter/eslint/no-const-assign: Avoid Vec allocation per const declarator (#24953) (connorshea)
    10a621e linter/typescript/adjacent-overload-signatures: Avoid collecting vec in some cases (#24874) (connorshea)
    ed167e1 linter/node/exports-style: Iterate once over global references (#24877) (connorshea)
    69908fe linter: Avoid allocations in jest/no-deprecated-functions (#24866) (Connor Shea)
    a3585d7 linter: Speed up jest/vitest prefer-each (#24872) (Connor Shea)
    62fe640 linter/eslint/prefer-rest-params: Run once per file (#24873) (Connor Shea)
    7a7aa54 linter/eslint/no-this-before-super: Skip files without classes (#24869) (Connor Shea)
    4ad0c94 linter/plugins: Faster copying comments to JS allocator (#24858) (overlookmotel)
    4c25b91 linter/plugins: Test booleans with explicit === false (#24830) (overlookmotel)
    b7add00 linter/plugins: Remove check in loop in getDisableDirectives (#24833) (overlookmotel)

    πŸ“š Documentation

    3ff2e0e linter: Clarify config extends types (#24936) (Boshen)

    Oxfmt

    πŸš€ Features

    eabfe01 oxfmt/lsp: Support oxc.fmt.disableNestedConfig (#24965) (leaysgur)
    2357a10 formatter_yaml: Implement YAML formatter (#24534) (leaysgur)

    πŸ› Bug Fixes

    761a882 formatter_css: Keep leading + in An+B to enable idempotency check (#24973) (leaysgur)
    e037709 formatter: Stop preserving indent for embedded template exprs (#24972) (leaysgur)
    ae1a39b formatter_css: Align wrapped selector-arg indent (#24971) (leaysgur)
    143fd1f formatter: Align quoted new signature (#24883) (leaysgur)
    07ff12f formatter_yaml: Fix indent, blank, and spacing issues (#24837) (leaysgur)
    d076b40 formatter: Check calee chain is_simple (#24871) (leaysgur)
    fb34196 formatter_css: Keep non-ASCII strings with quotes (#24870) (leaysgur)
    9213560 config: Preserve defineConfig field JSDoc (#24326) (ε‘¨ζ˜Ÿζ˜ŸεŒε­¦)
    31783e9 formatter_css: Print nested SCSS map with consistent indent (#24789) (leaysgur)
    8eb9eca formatter/jsdoc: Respect singleQuote option in @import (#24787) (leaysgur)
    6f05ac4 formatter: Fix template literal formatting (#24786) (leaysgur)

    ⚑ Performance

    bb73b23 formatter_core: Bound the thread-local scratch cache (#24793) (leaysgur)
    a5f7b15 formatter: Stage assignment-like left hand side on the heap (#24613) (leaysgur)
    94de05f formatter: Accumulate JSX child-list builders on the heap (#24585) (leaysgur)
    7810e8a formatter_core: Share one thread-cached scratch vector across staging buffers (#24583) (leaysgur)
    c191f51 formatter_core: Stage IR buffers on the heap to reduce arena memory (#24582) (leaysgur)

    πŸ“š Documentation

    69126a0 formatter_css,fomatter_graphql,formatter_yaml: Update AGENTS.md (#24821) (leaysgur)

    Original source
  • Jul 27, 2026
    • Date parsed from source:
      Jul 27, 2026
    • First seen by Releasebot:
      Jul 28, 2026
    Oxc logo

    Oxc

    oxfmt_v0.61.0: release(apps): oxlint v1.76.0 && oxfmt v0.61.0 (#24976)

    Oxc releases new Oxlint rules and fixes across ESLint, TypeScript, JSX a11y, and Node support, while improving performance and diagnostics. Oxfmt adds YAML formatting and LSP support for nested config, plus broader formatting fixes and speedups.

    Oxlint

    πŸš€ Features

    • 8d31dfa linter: Verify eslint/no-restricted-globals config schema (#24598) (vigneshwar)
    • 7069621 linter: Verify jest/vitest prefer-lowercase-title config schema (#24724) (Bartok)
    • 016cf2a linter/oxc: Add bad-match-all-arg rule (#24900) (camc314)
    • cdc941e linter/n: Implement exports-style rule (#24087) (Mikhail Baev)
    • 1ad6f6c linter/eslint: Implement id-denylist rule (#24632) (Mikhail Baev)
    • 678bbb5 linter/typescript-eslint: Implement suggestion for class-literal-property-style rule (#24766) (Mikhail Baev)

    πŸ› Bug Fixes

    • a5f3a0e linter: Mark missing suggestions as pending (#24956) (Mikhail Baev)
    • a065946 oxlint: Absolutize explicit CLI paths even with --no-ignore (#24646) (Bez Sahara)
    • 17688bb linter/jsx-a11y/interactive-supports-focus: Match eslint behavior for custom components (#24780) (Cole Ellison)
    • 0aef19e linter/typescript/no-confusing-non-null-assertion: Report in and instanceof (#24825) (Mikhail Baev)
    • 361dce9 linter: Unicorn/no-array-reverse and no-array-sort replacements should be suggestions (#24848) (klem)
    • 9213560 config: Preserve defineConfig field JSDoc (#24326) (ε‘¨ζ˜Ÿζ˜ŸεŒε­¦)
    • 334d884 linter/node/no-top-level-await: Clarify diagnostic (#24803) (camc314)
    • b9fc6af linter/eslint/func-names: Ignore overloads (#24801) (camc314)
    • e80574f estree: Handle empty spans serializing ImportMeta and NewTarget (#24775) (overlookmotel)

    ⚑ Performance

    • c75dc60 linter: Avoid Vec allocations via bound_names (#24959) (connorshea)
    • 9f9f39d linter/eslint/no-const-assign: Avoid Vec allocation per const declarator (#24953) (connorshea)
    • 10a621e linter/typescript/adjacent-overload-signatures: Avoid collecting vec in some cases (#24874) (connorshea)
    • ed167e1 linter/node/exports-style: Iterate once over global references (#24877) (connorshea)
    • 69908fe linter: Avoid allocations in jest/no-deprecated-functions (#24866) (Connor Shea)
    • a3585d7 linter: Speed up jest/vitest prefer-each (#24872) (Connor Shea)
    • 62fe640 linter/eslint/prefer-rest-params: Run once per file (#24873) (Connor Shea)
    • 7a7aa54 linter/eslint/no-this-before-super: Skip files without classes (#24869) (Connor Shea)
    • 4ad0c94 linter/plugins: Faster copying comments to JS allocator (#24858) (overlookmotel)
    • 4c25b91 linter/plugins: Test booleans with explicit === false (#24830) (overlookmotel)
    • b7add00 linter/plugins: Remove check in loop in getDisableDirectives (#24833) (overlookmotel)

    πŸ“š Documentation

    • 3ff2e0e linter: Clarify config extends types (#24936) (Boshen)

    Oxfmt

    πŸš€ Features

    • eabfe01 oxfmt/lsp: Support oxc.fmt.disableNestedConfig (#24965) (leaysgur)
    • 2357a10 formatter_yaml: Implement YAML formatter (#24534) (leaysgur)

    πŸ› Bug Fixes

    • 761a882 formatter_css: Keep leading + in An+B to enable idempotency check (#24973) (leaysgur)
    • e037709 formatter: Stop preserving indent for embedded template exprs (#24972) (leaysgur)
    • ae1a39b formatter_css: Align wrapped selector-arg indent (#24971) (leaysgur)
    • 143fd1f formatter: Align quoted new signature (#24883) (leaysgur)
    • 07ff12f formatter_yaml: Fix indent, blank, and spacing issues (#24837) (leaysgur)
    • d076b40 formatter: Check calee chain is_simple (#24871) (leaysgur)
    • fb34196 formatter_css: Keep non-ASCII strings with quotes (#24870) (leaysgur)
    • 9213560 config: Preserve defineConfig field JSDoc (#24326) (ε‘¨ζ˜Ÿζ˜ŸεŒε­¦)
    • 31783e9 formatter_css: Print nested SCSS map with consistent indent (#24789) (leaysgur)
    • 8eb9eca formatter/jsdoc: Respect singleQuote option in @import (#24787) (leaysgur)
    • 6f05ac4 formatter: Fix template literal formatting (#24786) (leaysgur)

    ⚑ Performance

    • bb73b23 formatter_core: Bound the thread-local scratch cache (#24793) (leaysgur)
    • a5f7b15 formatter: Stage assignment-like left hand side on the heap (#24613) (leaysgur)
    • 94de05f formatter: Accumulate JSX child-list builders on the heap (#24585) (leaysgur)
    • 7810e8a formatter_core: Share one thread-cached scratch vector across staging buffers (#24583) (leaysgur)
    • c191f51 formatter_core: Stage IR buffers on the heap to reduce arena memory (#24582) (leaysgur)

    πŸ“š Documentation

    • 69126a0 formatter_css,fomatter_graphql,formatter_yaml: Update AGENTS.md (#24821) (leaysgur)
    Original source
  • Jul 27, 2026
    • Date parsed from source:
      Jul 27, 2026
    • First seen by Releasebot:
      Jul 28, 2026
    Oxc logo

    Oxc

    oxc crates_v0.142.0

    Oxc ships a broad release with minifier optimizations, parser and AST improvements, stricter diagnostics, bug fixes that preserve side effects, and a few performance wins across the compiler.

    BREAKING CHANGES

    1ac5ac7 ast: [BREAKING] Tighten bound on AstBuild trait (#24925) (overlookmotel)

    Features

    c7c5696 minifier: Fold parenthesized boolean ternary tests (#24968) (Dunqing)

    82c5806 minifier: Fold sequence branches in boolean ternaries (#24943) (Dunqing)

    cc623d9 ast_visit: Add VisitJsMut visitor (#24828) (Boshen)

    b31713a minifier: Add new IsTerminated trait and use it in exit-point optimization (#24950) (Armano)

    e9e0f24 minifier: Shorten integer zero comparisons (#24933) (Dunqing)

    34f5559 minifier: Convert switch with one case to if statement (#24611) (Armano)

    9107e74 str: Add static_str! macro (#24887) (overlookmotel)

    4d6f623 parser: Emit error for type args in JS files (#24896) (camc314)

    ec08afc ast: Re-export Ident from oxc_ast crate (#24861) (overlookmotel)

    73cfdfa oxc: Re-export oxc_str types from oxc crate (#24860) (overlookmotel)

    11f5d1f ast_visit: Add Utf8ToUtf16::convert_program_and_comments (#24859) (overlookmotel)

    Bug Fixes

    cb5acfb minifier: Optimize termination statements in labeled statements (#24813) (Armano)

    4618300 minifier: Avoid longer numeric constant folds (#24875) (Dunqing)

    f7971f1 minifier: Keep side effects in typeof comparisons (#24940) (sapphi-red)

    4597d6f minifier: Keep side effects when compressing == true to == 1 (#24939) (sapphi-red)

    c3a48df minifier: Keep side effects values in template literals (#24938) (sapphi-red)

    e19f183 minifier: Keep side effects when folding Number call (#24937) (sapphi-red)

    9d7745a react-compiler: Preserve warning bailouts (#24935) (Boshen)

    0126aba codegen: Preserve orphaned file coverage comments (#24815) (Dunqing)

    9fbbaf8 parser: Clarify return in class static blocks (#24899) (camc314)

    e7d5c78 str: Fix hygiene of format_ident! and format_str! macros (#24886) (overlookmotel)

    07e9acc ecmascript: Keep side effects in parent of toString calls (#24846) (sapphi-red)

    16a40ad ecmascript: Detect side effects in unused arguments to charCodeAt (#24845) (sapphi-red)

    5b4ae54 parser: Use specific for-await diagnostic (#24856) (camc314)

    ffcc33a parser: Report for-await in non-async functions (#24855) (camc314)

    df230d0 minifier: Avoid reordering this in nested class keys (#24785) (Dunqing)

    d24b76b minifier: Isolate derived constructor this state (#24784) (Dunqing)

    582805d parser: Parse unary conditional after satisfies (#24807) (Boshen)

    23b904f minifier: Preserve default parameter side effects (#24791) (Dunqing)

    3048594 parser: Use correct diagnostic for await using in bare switch case (#24798) (camc314)

    e80574f estree: Handle empty spans serializing ImportMeta and NewTarget (#24775) (overlookmotel)

    4b12840 minifier: Do not fold a -0 ternary branch to +a (loses the sign) (#23637) (Jerry Zhao)

    133bb35 ecmascript: Detect side effects of foo().#bar correctly when PropertyReadSideEffects::None (#24769) (sapphi-red)

    Performance

    a086d91 ecmascript: Avoid number literal allocations (#24889) (Dunqing)

    98f2ecb react_compiler: Compare value set pointers before probing in state merge (#24805) (Marius Schulz)

    b287f29 estree: Avoid ident hash calculations when serializing (#24774) (overlookmotel)

    Documentation

    4d2e2bf ast: Fix incorrect return value in common_js_require docs (#24945) (connorshea)

    b539e74 estree: Document custom serializers for ImportMeta and NewTarget (#24777) (overlookmotel)

    Original source
  • Jul 27, 2026
    • Date parsed from source:
      Jul 27, 2026
    • First seen by Releasebot:
      Jul 28, 2026
    Oxc logo

    Oxc

    oxlint v1.76.0 & oxfmt v0.61.0

    Oxc releases Oxlint v1.76.0 and Oxfmt v0.61.0 with new lint rules, broader config schema checks, and performance improvements. Oxfmt adds YAML formatting and LSP support for nested config disabling, while both tools ship bug fixes and formatter polish.

    Table of Contents

    • Oxlint v1.76.0
    • Oxfmt v0.61.0

    Oxlint v1.76.0

    πŸš€ Features

    8d31dfa linter: Verify eslint/no-restricted-globals config schema (#24598) (vigneshwar)
    7069621 linter: Verify jest/vitest prefer-lowercase-title config schema (#24724) (Bartok)
    016cf2a linter/oxc: Add bad-match-all-arg rule (#24900) (camc314)
    cdc941e linter/n: Implement exports-style rule (#24087) (Mikhail Baev)
    1ad6f6c linter/eslint: Implement id-denylist rule (#24632) (Mikhail Baev)
    678bbb5 linter/typescript-eslint: Implement suggestion for class-literal-property-style rule (#24766) (Mikhail Baev)

    πŸ› Bug Fixes

    a5f3a0e linter: Mark missing suggestions as pending (#24956) (Mikhail Baev)
    a065946 oxlint: Absolutize explicit CLI paths even with --no-ignore (#24646) (Bez Sahara)
    17688bb linter/jsx-a11y/interactive-supports-focus: Match eslint behavior for custom components (#24780) (Cole Ellison)
    0aef19e linter/typescript/no-confusing-non-null-assertion: Report in and instanceof (#24825) (Mikhail Baev)
    361dce9 linter: Unicorn/no-array-reverse and no-array-sort replacements should be suggestions (#24848) (klem)
    9213560 config: Preserve defineConfig field JSDoc (#24326) (ε‘¨ζ˜Ÿζ˜ŸεŒε­¦)
    334d884 linter/node/no-top-level-await: Clarify diagnostic (#24803) (camc314)
    b9fc6af linter/eslint/func-names: Ignore overloads (#24801) (camc314)
    e80574f estree: Handle empty spans serializing ImportMeta and NewTarget (#24775) (overlookmotel)

    ⚑ Performance

    e9de5a1 linter/jest-vitest/no-test-return-statement: Only run on return statements (#24167) (Cam McHenry)
    aea459d linter/eslint/func-style: Rewrite rule to not iterate over all nodes (#24156) (Cam McHenry)
    fb4398c linter/eslint/no-new-func: Only run on new and call expressions (#24166) (Cam McHenry)
    c75dc60 linter: Avoid Vec allocations via bound_names (#24959) (connorshea)
    9f9f39d linter/eslint/no-const-assign: Avoid Vec allocation per const declarator (#24953) (connorshea)
    10a621e linter/typescript/adjacent-overload-signatures: Avoid collecting vec in some cases (#24874) (connorshea)
    ed167e1 linter/node/exports-style: Iterate once over global references (#24877) (connorshea)
    69908fe linter: Avoid allocations in jest/no-deprecated-functions (#24866) (Connor Shea)
    a3585d7 linter: Speed up jest/vitest prefer-each (#24872) (Connor Shea)
    62fe640 linter/eslint/prefer-rest-params: Run once per file (#24873) (Connor Shea)
    7a7aa54 linter/eslint/no-this-before-super: Skip files without classes (#24869) (Connor Shea)
    4ad0c94 linter/plugins: Faster copying comments to JS allocator (#24858) (overlookmotel)
    4c25b91 linter/plugins: Test booleans with explicit === false (#24830) (overlookmotel)
    b7add00 linter/plugins: Remove check in loop in getDisableDirectives (#24833) (overlookmotel)

    πŸ“š Documentation

    3ff2e0e linter: Clarify config extends types (#24936) (Boshen)

    Oxfmt v0.61.0

    πŸš€ Features

    eabfe01 oxfmt/lsp: Support oxc.fmt.disableNestedConfig (#24965) (leaysgur)
    2357a10 formatter_yaml: Implement YAML formatter (#24534) (leaysgur)

    πŸ› Bug Fixes

    761a882 formatter_css: Keep leading + in An+B to enable idempotency check (#24973) (leaysgur)
    e037709 formatter: Stop preserving indent for embedded template exprs (#24972) (leaysgur)
    ae1a39b formatter_css: Align wrapped selector-arg indent (#24971) (leaysgur)
    143fd1f formatter: Align quoted new signature (#24883) (leaysgur)
    07ff12f formatter_yaml: Fix indent, blank, and spacing issues (#24837) (leaysgur)
    d076b40 formatter: Check calee chain is_simple (#24871) (leaysgur)
    fb34196 formatter_css: Keep non-ASCII strings with quotes (#24870) (leaysgur)
    9213560 config: Preserve defineConfig field JSDoc (#24326) (ε‘¨ζ˜Ÿζ˜ŸεŒε­¦)
    31783e9 formatter_css: Print nested SCSS map with consistent indent (#24789) (leaysgur)
    8eb9eca formatter/jsdoc: Respect singleQuote option in @import (#24787) (leaysgur)
    6f05ac4 formatter: Fix template literal formatting (#24786) (leaysgur)

    ⚑ Performance

    bb73b23 formatter_core: Bound the thread-local scratch cache (#24793) (leaysgur)
    a5f7b15 formatter: Stage assignment-like left hand side on the heap (#24613) (leaysgur)
    94de05f formatter: Accumulate JSX child-list builders on the heap (#24585) (leaysgur)
    7810e8a formatter_core: Share one thread-cached scratch vector across staging buffers (#24583) (leaysgur)
    c191f51 formatter_core: Stage IR buffers on the heap to reduce arena memory (#24582) (leaysgur)

    πŸ“š Documentation

    69126a0 formatter_css,fomatter_graphql,formatter_yaml: Update AGENTS.md (#24821) (leaysgur)

    Original source
  • Jul 22, 2026
    • Date parsed from source:
      Jul 22, 2026
    • First seen by Releasebot:
      Jul 22, 2026
    • Modified by Releasebot:
      Jul 23, 2026
    Oxc logo

    Oxc

    oxlint v1.75.0 & oxfmt v0.60.0

    Oxc ships Oxlint v1.75.0 and Oxfmt v0.60.0, led by stable type-aware linting, new lint rules, bug fixes, performance gains, and formatter updates across CSS, GraphQL, and template handling.

    Table of Contents

    Oxlint v1.75.0

    Oxfmt v0.60.0

    Oxlint v1.75.0

    πŸ† Highlights

    Announcing Type-Aware Linting Stable

    πŸš€ Features

    dd18383 linter/node: Implement no-top-level-await rule (#24634) (Connor Shea)

    16a65f2 linter/react: Implement function-component-definition rule (#24471) (Cole Ellison)

    7f1f585 linter: Reuse jest/padding-around-test-blocks for vitest/padding-around-test-blocks (#24519) (Mikhail Baev)

    99978a8 linter/import/consistent-type-specifier-style: Support prefer-top-level-if-only-type-imports option (#24502) (camc314)

    πŸ› Bug Fixes

    e81b2ff oxlint,oxfmt: Report error for invalid glob patterns (#24744) (leaysgur)

    0184ad6 linter/unicorn/no-useless-undefined: Preserve valid parameter defaults (#24686) (camc314)

    8694167 linter/eslint/prefer-destructuring: Handle typed declarations (#24616) (camc314)

    477cf0f linter/eslint/no-throw-literal: Handle assigned errors (#24561) (Cole Ellison)

    ac9200a linter: Detect React components from returned JSX (#24521) (camc314)

    c0a6522 linter/eslint/no-useless-computed-key: Allow TS syntax in computed keys (#24524) (Cole Ellison)

    ⚑ Performance

    346eed1 linter/unicorn/prefer-event-target: Only run on Class and NewExpression nodes (#24685) (Mikhail Baev)

    7be5cf0 oxlint/lsp: Only invoke lint on code actions when document is not opened (#24676) (Sysix)

    d3f07a0 diagnostics: Box OxcDiagnosticInner to reduce binary size (#24665) (Boshen)

    90ae040 linter/reporter/stylish: Compute diagnostic Info once per diagnostic (#24525) (connorshea)

    πŸ“š Documentation

    e6f7174 linter/valid-expect: Fix correct example being identical to incorrect one (#24468) (mkan0141)

    Oxfmt v0.60.0

    πŸš€ Features

    3d22307 parser: Add ParseOptions::enable_ident_hashes (#24491) (Boshen)

    πŸ› Bug Fixes

    fd7cf5b formatter_css: Update oxc-css-parser to 0.0.9 (#24745) (leaysgur)

    e81b2ff oxlint,oxfmt: Report error for invalid glob patterns (#24744) (leaysgur)

    164e70a formatter: Stabilize comment between tagged temaplte tag and quasi (#24738) (leaysgur)

    c399367 formatter_css: Update oxc-css-parser to 0.0.8 (#24725) (leaysgur)

    6fe866a oxfmt: Keep tailwind classes glued to template expr with preserveWhitespace (#24609) (leaysgur)

    33e32d8 formatter_css: Use line_suffix for EOL line comment (#24580) (leaysgur)

    5f76998 formatter_graphql: Keep same line comments pending across intervening tokens (#24579) (leaysgur)

    Original source
  • Jul 21, 2026
    • Date parsed from source:
      Jul 21, 2026
    • First seen by Releasebot:
      Jul 22, 2026
    Oxc logo

    Oxc

    oxlint_v1.75.0: release(apps): oxlint v1.75.0 && oxfmt v0.60.0 (#24713)

    Oxc releases Oxlint and Oxfmt updates with a breaking AST change, new lint rules for top-level await and function components, broader import and test rule support, performance improvements, and formatter fixes plus new parser options.

    Oxlint

    πŸ’₯ BREAKING CHANGES

    54cc121 ast: [BREAKING] Split MetaProperty into ImportMeta and NewTarget (#24557) (camc314)

    πŸš€ Features

    7b045cd minfier: Drop last break from last switch case (#24673) (Armano)

    dd18383 linter/node: Implement no-top-level-await rule (#24634) (Connor Shea)

    16a65f2 linter/react: Implement function-component-definition rule (#24471) (Cole Ellison)

    7f1f585 linter: Reuse jest/padding-around-test-blocks for vitest/padding-around-test-blocks (#24519) (Mikhail Baev)

    99978a8 linter/import/consistent-type-specifier-style: Support prefer-top-level-if-only-type-imports option (#24502) (camc314)

    πŸ› Bug Fixes

    0184ad6 linter/unicorn/no-useless-undefined: Preserve valid parameter defaults (#24686) (camc314)

    8694167 linter/eslint/prefer-destructuring: Handle typed declarations (#24616) (camc314)

    477cf0f linter/eslint/no-throw-literal: Handle assigned errors (#24561) (Cole Ellison)

    ac9200a linter: Detect React components from returned JSX (#24521) (camc314)

    c0a6522 linter/eslint/no-useless-computed-key: Allow TS syntax in computed keys (#24524) (Cole Ellison)

    ⚑ Performance

    346eed1 linter/unicorn/prefer-event-target: Only run on Class and NewExpression nodes (#24685) (Mikhail Baev)

    7be5cf0 oxlint/lsp: Only invoke lint on code actions when document is not opened (#24676) (Sysix)

    d3f07a0 diagnostics: Box OxcDiagnosticInner to reduce binary size (#24665) (Boshen)

    90ae040 linter/reporter/stylish: Compute diagnostic Info once per diagnostic (#24525) (connorshea)

    πŸ“š Documentation

    e6f7174 linter/valid-expect: Fix correct example being identical to incorrect one (#24468) (mkan0141)

    Oxfmt

    πŸ’₯ BREAKING CHANGES

    54cc121 ast: [BREAKING] Split MetaProperty into ImportMeta and NewTarget (#24557) (camc314)

    πŸš€ Features

    3d22307 parser: Add ParseOptions::enable_ident_hashes (#24491) (Boshen)

    πŸ› Bug Fixes

    6fe866a oxfmt: Keep tailwind classes glued to template expr with preserveWhitespace (#24609) (leaysgur)

    33e32d8 formatter_css: Use line_suffix for EOL line comment (#24580) (leaysgur)

    5f76998 formatter_graphql: Keep same line comments pending across intervening tokens (#24579) (leaysgur)

    Co-authored-by: Boshen [email protected]

    Co-authored-by: Cameron [email protected]

    Original source
  • Jul 21, 2026
    • Date parsed from source:
      Jul 21, 2026
    • First seen by Releasebot:
      Jul 22, 2026
    Oxc logo

    Oxc

    oxfmt_v0.60.0: release(apps): oxlint v1.75.0 && oxfmt v0.60.0 (#24713)

    Oxc ships Oxlint and Oxfmt updates with a breaking AST split, new lint rules for top-level await and function components, a parser option for ident hashes, and several bug fixes and performance improvements across linting, formatting, and diagnostics.

    Oxlint

    πŸ’₯ BREAKING CHANGES

    54cc121 ast: [BREAKING] Split MetaProperty into ImportMeta and NewTarget (#24557) (camc314)

    πŸš€ Features

    7b045cd minfier: Drop last break from last switch case (#24673) (Armano)

    dd18383 linter/node: Implement no-top-level-await rule (#24634) (Connor Shea)

    16a65f2 linter/react: Implement function-component-definition rule (#24471) (Cole Ellison)

    7f1f585 linter: Reuse jest/padding-around-test-blocks for vitest/padding-around-test-blocks (#24519) (Mikhail Baev)

    99978a8 linter/import/consistent-type-specifier-style: Support prefer-top-level-if-only-type-imports option (#24502) (camc314)

    πŸ› Bug Fixes

    0184ad6 linter/unicorn/no-useless-undefined: Preserve valid parameter defaults (#24686) (camc314)

    8694167 linter/eslint/prefer-destructuring: Handle typed declarations (#24616) (camc314)

    477cf0f linter/eslint/no-throw-literal: Handle assigned errors (#24561) (Cole Ellison)

    ac9200a linter: Detect React components from returned JSX (#24521) (camc314)

    c0a6522 linter/eslint/no-useless-computed-key: Allow TS syntax in computed keys (#24524) (Cole Ellison)

    ⚑ Performance

    346eed1 linter/unicorn/prefer-event-target: Only run on Class and NewExpression nodes (#24685) (Mikhail Baev)

    7be5cf0 oxlint/lsp: Only invoke lint on code actions when document is not opened (#24676) (Sysix)

    d3f07a0 diagnostics: Box OxcDiagnosticInner to reduce binary size (#24665) (Boshen)

    90ae040 linter/reporter/stylish: Compute diagnostic Info once per diagnostic (#24525) (connorshea)

    πŸ“š Documentation

    e6f7174 linter/valid-expect: Fix correct example being identical to incorrect one (#24468) (mkan0141)

    Oxfmt

    πŸ’₯ BREAKING CHANGES

    54cc121 ast: [BREAKING] Split MetaProperty into ImportMeta and NewTarget (#24557) (camc314)

    πŸš€ Features

    3d22307 parser: Add ParseOptions::enable_ident_hashes (#24491) (Boshen)

    πŸ› Bug Fixes

    6fe866a oxfmt: Keep tailwind classes glued to template expr with preserveWhitespace (#24609) (leaysgur)

    33e32d8 formatter_css: Use line_suffix for EOL line comment (#24580) (leaysgur)

    5f76998 formatter_graphql: Keep same line comments pending across intervening tokens (#24579) (leaysgur)

    Co-authored-by: Boshen [email protected]

    Co-authored-by: Cameron [email protected]

    Original source
Releasebot

Curated by the Releasebot team

Releasebot is an aggregator of official product update announcements 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.