Oxc Release Notes

Follow

188 release notes curated from 1 source by the Releasebot Team. Last updated: Aug 19, 2026

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

    Oxc

    oxc crates_v0.146.0

    Oxc improves its minifier, codegen, and sourcemap handling with better boolean negation, faster mapping and printing paths, plus fixes for input typing, unresolved parameter types, and enum template sourcemaps.

    Features

    83cb516 minifier: Improve negation of expressions in boolean context (#25755) (Armano)

    Bug Fixes

    82a790d codegen: Narrow printSync input type (#25871) (camc314)
    134fb22 isolated-declarations: Preserve unresolved parameter types (#25909) (Dunqing)
    526c2b3 codegen: Remove deprecated test APIs (#25889) (camc314)
    344a9b2 codegen: Align enum template sourcemaps (#25872) (camc314)

    Performance

    603b904 packages/codegen: Check sourceText only once (#25887) (overlookmotel)
    5ef0c93 minifier: Unwrap all unary exprs without creating dummy expressions (#25891) (Armano)
    8783524 packages/codegen: Remove loop from growMappingBuffer (#25886) (overlookmotel)
    b6b14c0 packages/codegen: Remove redundant branch (#25885) (overlookmotel)
    be6adf0 packages/sourcemap: Make location passed to recordSourceMapping always a number (#25884) (overlookmotel)
    f720f15 packages/codegen: Take named-mapping only code off hot path in recordSourceMapping (#25883) (overlookmotel)
    a734af5 packages/codegen: Remove redundant setting of last in printImportAttributes and printIf (#25882) (overlookmotel)
    c6e44c6 packages/codegen: Combine 2 writes in printJSXElement (#25881) (overlookmotel)
    8801662 packages/codegen: Remove redundant mapping from printParams (#25880) (overlookmotel)

    Documentation

    5ad330e packages/codegen: Reformat comments (#25876) (overlookmotel)

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

    Oxc

    oxlint_v1.79.0: release(apps): oxlint v1.79.0 && oxfmt v0.64.0 (#25866)

    Oxc ships breaking linter changes, new TypeScript and React rule improvements, better diagnostics, and performance gains. Oxfmt adds experimental operator positioning support and fixes a range of formatting and comment-handling issues across CSS, YAML, and general code.

    Oxlint

    πŸ’₯ BREAKING CHANGES

    8c4552d linter: [BREAKING] Split react/react-compiler into
    per-category rules (#25500) (Boshen)

    πŸš€ Features

    9b7394e linter/typescript/no-empty-object-type: Implement suggestion
    (#25833) (Mikhail Baev)

    πŸ› Bug Fixes

    345f981 react_compiler: Skip node_modules by default (#25859) (Boshen)
    2f40afa linter/unicorn/no-array-callback-reference: Ignore effect
    library imports (#25857) (MichaΓ«l Bitard)
    7b565a0 linter: Align React Compiler rule categories (#25840) (Boshen)
    228e8e0 linter: Resolve inactive React compiler rules (#25830)
    (Boshen)
    f8e4884 linter/eslint/no-useless-constructor: Allow parameter
    properties (#25811) (camc314)
    e4b6993 linter: Report exhaustive effect dependencies (#25829)
    (Boshen)
    742e25f linter/eslint/no-return-assign: Anchor diagnostic on return
    stmt (#25803) (camc314)
    b831ca8 react-compiler: Improve derived state diagnostic (#25804)
    (Boshen)
    5908c87 linter/jest/prefer-mock-return-shorthand: Preserve
    implementations using this (#25802) (camc314)
    f6b2265 linter/eslint/no-redeclare: Run in ES modules, skipping only
    the globals check (#25691) (Hamody We)
    ca9f553 linter/unicorn/prefer-default-parameters: Mark fixer as a
    suggestion (#25801) (camc314)
    aa49d86 linter: Allow spread rule options in config types (#25675)
    (ch3rry)
    d5483f8 linter/typescript/no-useless-empty-export: Skip TS declaration
    files (#25789) (Evyatar Daud)
    57f2199 linter/typescript/no-useless-empty-export: Report after
    imports (#25786) (camc314)
    633bc19 linter/typescript/no-unnecessary-type-conversion: Mark fixer
    as suggestion (#25787) (camc314)
    dea3339 linter/typescript/explicit-module-boundary-types: Anchor
    diagnostics on arrows (#25779) (camc314)
    5cd6f02 linter/eslint/array-callback-return: Anchor diagnostic on
    callback (#25780) (camc314)
    ef8cebf linter/eslint/preserve-caught-error: Handle AggregateError
    options (#25775) (camc314)
    c108d5c linter: Improve React Compiler diagnostics (#25742) (Boshen)
    c9ec55e react-compiler: Improve diagnostic spans (#25731) (Boshen)
    1cbbcb7 linter/unicorn/prefer-string-replace-all: Apply fixes in one
    pass (#25709) (Mikhail Baev)
    dec0a86 react-compiler: Standardize diagnostics (#25702) (Boshen)
    5fd77f7 linter/react/display-name: Report curried HOC inner component
    (#25662) (camc314)
    4dbb80e linter/import/no-named-as-default: Report local export
    conflicts (#25658) (camc314)
    e8a7214 linter/react/rules-of-hooks: Report hooks inside try blocks
    (#25670) (camc314)
    36f8451 linter/eslint/no-eval: Align indirect default with ESLint
    (#25656) (camc314)
    d901d24 linter/react/exhaustive-deps: Handle destructured object
    dependencies (#25669) (camc314)
    beb724d linter/eslint/no-unused-vars: Report bare underscore
    parameters (#25663) (camc314)
    fa36f26 linter/react/no-this-in-sfc: Detect this in nested arrow
    callbacks (#25653) (camc314)
    44d1be3 linter/typescript/no-var-requires: Run rule on JavaScript
    (#25664) (camc314)
    4004c10 linter/eslint/no-irregular-whitespace: Check comments by
    default (#25660) (camc314)
    625401d linter/import/no-named-default: Flag type-only named defaults
    (#25661) (camc314)
    8eacb2d linter/typescript/no-non-null-asserted-optional-chain: Detect
    assertions after continued optional chains (#25659) (camc314)
    d55b76c linter/react/no-direct-mutation-state: Detect computed state
    mutations (#25654) (camc314)
    f92c651 linter/unicorn/no-abusive-eslint-disable: Use directive prefix
    in diagnostic (#25657) (camc314)
    ee44996 linter/eslint/max-classes-per-file: Anchor diagnostic at
    program start (#25652) (camc314)
    403ec40 linter/eslint/no-multi-assign: Handle parenthesized declarator
    initializers (#25651) (camc314)
    6c9ba37 linter/jest/expect-expect: Detect assertions in nested
    function declarations (#25650) (camc314)
    285820e linter/no-large-snapshots: Precompile and document allowed
    snapshot matchers (#25611) (Mikhail Baev)
    1be1e20 linter/eslint/prefer-promise-reject-errors: Report on spread
    arguments (#25648) (Mikhail Baev)
    a38f7b3 oxlint,oxfmt: Apply .gitignore only to walk targets, not
    explicitly named files (#25531) (leaysgur)
    509931b semantic: Classify global references per identifier (#25608)
    (camc314)
    0c68b7f estree: Emit decorators on FormalParameterRest (#25582)
    (camc314)
    1d22912 linter/plugins: Parse rule-less directive justifications
    (#25559) (camc314)
    eaf80d8 linter/unicorn/prefer-node-protocol: Validate exact Node.js
    built-in specifiers (#25558) (camc314)
    57b94af linter/promise/no-multiple-resolved: Ignore unresolved globals
    (#25530) (Tushar Singh)
    80e64c2 linter/expect-expect: Validate assertion regex (#25504)
    (Mikhail Baev)
    7830604 linter/react/exhaustive-deps: Treat binary expressions as a
    stable dependency (#25508) (Hamody We)
    4df5835 linter: Allow capitalized built-in calls (#25516) (Boshen)
    9d49d27 react_compiler: Bail out instead of panicking on "Expected a
    node for all scopes" (#25506) (Boshen)
    d43b562 linter/vitest/prefer-expect-assertions: Handle parameterized
    Vitest assertion suggestions (#25476) (camc314)

    ⚑ Performance

    e8303d6 linter: Shrink rule serialization dispatch (#25818) (Boshen)
    c84ede3 estree_tokens: Share JS token update entry point (#25826)
    (Boshen)
    35c8eb2 linter: Compute sort keys once with sort_by_cached_key
    (#25821) (Boshen)
    f0121ed linter: Share config deserialization entry point (#25820)
    (Boshen)
    2dacf7a oxlint: Reduce debug formatting code size (#25797) (Boshen)
    9ed10b7 linter: Use unstable sorts for unique keys (#25778) (Boshen)
    63ff8ef linter: Outline diagnostic construction (#25762) (Boshen)
    2dd7446 diagnostics: Preallocate graphical output (#25721) (Boshen)
    9c8abab diagnostics: Batch graphical reports (#25710) (Boshen)
    8e9b95f linter: Use table for rule names (#25458) (Boshen)

    Oxfmt

    πŸš€ Features

    c07fe7c oxfmt: Support experimentalOperatorPosition (#25643)
    (leaysgur)
    2adb8fb formatter: Implement operatorPosition option (#25581)
    (leaysgur)

    πŸ› Bug Fixes

    44231fb formatter: Fix comment and indent issues around unions
    (#25665) (leaysgur)
    2465e87 formatter: Keep comments in place when dropping
    EmptyStatement (#25730) (leaysgur)
    7e4f3b7 formatter: Print JSDocUnknownType (#25729) (leaysgur)
    5238d9e formatter: Keep nested awaited-paren member chain grouped in
    call arguments (#25646) (leaysgur)
    a38f7b3 oxlint,oxfmt: Apply .gitignore only to walk targets, not
    explicitly named files (#25531) (leaysgur)
    5c0a5ff formatter_css: Fill own-line block comments inside
    space-separated values (#25578) (leaysgur)
    53debfa formatter_css: Keep trailing comma and indent after
    comment-preceded last map value (#25577) (leaysgur)
    1a83a8d oxfmt: Mirror printer line suppression and restore
    dedent-to-root (#25573) (leaysgur)
    7f350d1 formatter: Keep unary comment and print only needed parens
    (#25526) (leaysgur)
    f405789 formatter_yaml: Consistent chomped eos behavior (#25523)
    (leaysgur)
    a243311 formatter_yaml: Bump oxc-yaml-parser for contentless block
    scalar (#25519) (leaysgur)
    40d38a0 formatter_css: Keep multi value function args intact after
    leading comment (#25518) (leaysgur)

    πŸ“š Documentation

    223e785 oxfmt/conformance: Update notes on conformance (#25757) (Yuji
    Sugiura)
    673dc6d oxfmt: Move some docs from AGENTS.md to code comment (#25649)
    (leaysgur)
    fed6681 oxfmt: Skip expanding overrides options (#25572) (leaysgur)

    Co-authored-by: Boshen [email protected]

    Original source
  • All of your release notes in one feed

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

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

    Oxc

    oxfmt_v0.64.0: release(apps): oxlint v1.79.0 && oxfmt v0.64.0 (#25866)

    Oxc ships a broad Oxlint and Oxfmt update with breaking React Compiler rule splits, new TypeScript and React lint checks, improved diagnostics, faster performance, and formatter gains including experimental operator positioning and multiple bug fixes.

    Oxlint

    πŸ’₯ BREAKING CHANGES

    • 8c4552d linter: [BREAKING] Split react/react-compiler into per-category rules (#25500) (Boshen)

    πŸš€ Features

    • 9b7394e linter/typescript/no-empty-object-type: Implement suggestion (#25833) (Mikhail Baev)

    πŸ› Bug Fixes

    • 345f981 react_compiler: Skip node_modules by default (#25859) (Boshen)
    • 2f40afa linter/unicorn/no-array-callback-reference: Ignore effect library imports (#25857) (MichaΓ«l Bitard)
    • 7b565a0 linter: Align React Compiler rule categories (#25840) (Boshen)
    • 228e8e0 linter: Resolve inactive React compiler rules (#25830) (Boshen)
    • f8e4884 linter/eslint/no-useless-constructor: Allow parameter properties (#25811) (camc314)
    • e4b6993 linter: Report exhaustive effect dependencies (#25829) (Boshen)
    • 742e25f linter/eslint/no-return-assign: Anchor diagnostic on return stmt (#25803) (camc314)
    • b831ca8 react-compiler: Improve derived state diagnostic (#25804) (Boshen)
    • 5908c87 linter/jest/prefer-mock-return-shorthand: Preserve implementations using this (#25802) (camc314)
    • f6b2265 linter/eslint/no-redeclare: Run in ES modules, skipping only the globals check (#25691) (Hamody We)
    • ca9f553 linter/unicorn/prefer-default-parameters: Mark fixer as a suggestion (#25801) (camc314)
    • aa49d86 linter: Allow spread rule options in config types (#25675) (ch3rry)
    • d5483f8 linter/typescript/no-useless-empty-export: Skip TS declaration files (#25789) (Evyatar Daud)
    • 57f2199 linter/typescript/no-useless-empty-export: Report after imports (#25786) (camc314)
    • 633bc19 linter/typescript/no-unnecessary-type-conversion: Mark fixer as suggestion (#25787) (camc314)
    • dea3339 linter/typescript/explicit-module-boundary-types: Anchor diagnostics on arrows (#25779) (camc314)
    • 5cd6f02 linter/eslint/array-callback-return: Anchor diagnostic on callback (#25780) (camc314)
    • ef8cebf linter/eslint/preserve-caught-error: Handle AggregateError options (#25775) (camc314)
    • c108d5c linter: Improve React Compiler diagnostics (#25742) (Boshen)
    • c9ec55e react-compiler: Improve diagnostic spans (#25731) (Boshen)
    • 1cbbcb7 linter/unicorn/prefer-string-replace-all: Apply fixes in one pass (#25709) (Mikhail Baev)
    • dec0a86 react-compiler: Standardize diagnostics (#25702) (Boshen)
    • 5fd77f7 linter/react/display-name: Report curried HOC inner component (#25662) (camc314)
    • 4dbb80e linter/import/no-named-as-default: Report local export conflicts (#25658) (camc314)
    • e8a7214 linter/react/rules-of-hooks: Report hooks inside try blocks (#25670) (camc314)
    • 36f8451 linter/eslint/no-eval: Align indirect default with ESLint (#25656) (camc314)
    • d901d24 linter/react/exhaustive-deps: Handle destructured object dependencies (#25669) (camc314)
    • beb724d linter/eslint/no-unused-vars: Report bare underscore parameters (#25663) (camc314)
    • fa36f26 linter/react/no-this-in-sfc: Detect this in nested arrow callbacks (#25653) (camc314)
    • 44d1be3 linter/typescript/no-var-requires: Run rule on JavaScript (#25664) (camc314)
    • 4004c10 linter/eslint/no-irregular-whitespace: Check comments by default (#25660) (camc314)
    • 625401d linter/import/no-named-default: Flag type-only named defaults (#25661) (camc314)
    • 8eacb2d linter/typescript/no-non-null-asserted-optional-chain: Detect assertions after continued optional chains (#25659) (camc314)
    • d55b76c linter/react/no-direct-mutation-state: Detect computed state mutations (#25654) (camc314)
    • f92c651 linter/unicorn/no-abusive-eslint-disable: Use directive prefix in diagnostic (#25657) (camc314)
    • ee44996 linter/eslint/max-classes-per-file: Anchor diagnostic at program start (#25652) (camc314)
    • 403ec40 linter/eslint/no-multi-assign: Handle parenthesized declarator initializers (#25651) (camc314)
    • 6c9ba37 linter/jest/expect-expect: Detect assertions in nested function declarations (#25650) (camc314)
    • 285820e linter/no-large-snapshots: Precompile and document allowed snapshot matchers (#25611) (Mikhail Baev)
    • 1be1e20 linter/eslint/prefer-promise-reject-errors: Report on spread arguments (#25648) (Mikhail Baev)
    • a38f7b3 oxlint,oxfmt: Apply .gitignore only to walk targets, not explicitly named files (#25531) (leaysgur)
    • 509931b semantic: Classify global references per identifier (#25608) (camc314)
    • 0c68b7f estree: Emit decorators on FormalParameterRest (#25582) (camc314)
    • 1d22912 linter/plugins: Parse rule-less directive justifications (#25559) (camc314)
    • eaf80d8 linter/unicorn/prefer-node-protocol: Validate exact Node.js built-in specifiers (#25558) (camc314)
    • 57b94af linter/promise/no-multiple-resolved: Ignore unresolved globals (#25530) (Tushar Singh)
    • 80e64c2 linter/expect-expect: Validate assertion regex (#25504) (Mikhail Baev)
    • 7830604 linter/react/exhaustive-deps: Treat binary expressions as a stable dependency (#25508) (Hamody We)
    • 4df5835 linter: Allow capitalized built-in calls (#25516) (Boshen)
    • 9d49d27 react_compiler: Bail out instead of panicking on "Expected a node for all scopes" (#25506) (Boshen)
    • d43b562 linter/vitest/prefer-expect-assertions: Handle parameterized Vitest assertion suggestions (#25476) (camc314)

    ⚑ Performance

    • e8303d6 linter: Shrink rule serialization dispatch (#25818) (Boshen)
    • c84ede3 estree_tokens: Share JS token update entry point (#25826) (Boshen)
    • 35c8eb2 linter: Compute sort keys once with sort_by_cached_key (#25821) (Boshen)
    • f0121ed linter: Share config deserialization entry point (#25820) (Boshen)
    • 2dacf7a oxlint: Reduce debug formatting code size (#25797) (Boshen)
    • 9ed10b7 linter: Use unstable sorts for unique keys (#25778) (Boshen)
    • 63ff8ef linter: Outline diagnostic construction (#25762) (Boshen)
    • 2dd7446 diagnostics: Preallocate graphical output (#25721) (Boshen)
    • 9c8abab diagnostics: Batch graphical reports (#25710) (Boshen)
    • 8e9b95f linter: Use table for rule names (#25458) (Boshen)

    Oxfmt

    πŸš€ Features

    • c07fe7c oxfmt: Support experimentalOperatorPosition (#25643) (leaysgur)
    • 2adb8fb formatter: Implement operatorPosition option (#25581) (leaysgur)

    πŸ› Bug Fixes

    • 44231fb formatter: Fix comment and indent issues around unions (#25665) (leaysgur)
    • 2465e87 formatter: Keep comments in place when dropping EmptyStatement (#25730) (leaysgur)
    • 7e4f3b7 formatter: Print JSDocUnknownType (#25729) (leaysgur)
    • 5238d9e formatter: Keep nested awaited-paren member chain grouped in call arguments (#25646) (leaysgur)
    • a38f7b3 oxlint,oxfmt: Apply .gitignore only to walk targets, not explicitly named files (#25531) (leaysgur)
    • 5c0a5ff formatter_css: Fill own-line block comments inside space-separated values (#25578) (leaysgur)
    • 53debfa formatter_css: Keep trailing comma and indent after comment-preceded last map value (#25577) (leaysgur)
    • 1a83a8d oxfmt: Mirror printer line suppression and restore dedent-to-root (#25573) (leaysgur)
    • 7f350d1 formatter: Keep unary comment and print only needed parens (#25526) (leaysgur)
    • f405789 formatter_yaml: Consistent chomped eos behavior (#25523) (leaysgur)
    • a243311 formatter_yaml: Bump oxc-yaml-parser for contentless block scalar (#25519) (leaysgur)
    • 40d38a0 formatter_css: Keep multi value function args intact after leading comment (#25518) (leaysgur)

    πŸ“š Documentation

    • 223e785 oxfmt/conformance: Update notes on conformance (#25757) (Yuji Sugiura)
    • 673dc6d oxfmt: Move some docs from AGENTS.md to code comment (#25649) (leaysgur)
    • fed6681 oxfmt: Skip expanding overrides options (#25572) (leaysgur)

    Co-authored-by: Boshen [email protected]

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

    Oxc

    oxc crates_v0.145.0

    Oxc ships breaking changes and broad updates to codegen, minifier, parser, and React Compiler, adding full source map support, property name mangling, a Relay transform plugin, and new performance gains plus bug fixes.

    BREAKING CHANGES

    365274e packages/codegen: [BREAKING] printSync return an object (#25720) (overlookmotel)

    Features

    6a7eb60 packages/codegen: Alter capitalization of sourceFilename option (#25854) (overlookmotel)
    300763f packages/codegen: Add full source map support (#25585) (camc314)
    a169e4a napi/minify: Expose property name mangling options (#24741) (Dunqing)
    2f5cdb1 minifier: Add property name mangling (#24740) (Dunqing)
    4922141 mangler: Deduplicate private accessor names (#25601) (camc314)
    1c4f519 napi: Add Relay transform plugin (#25503) (Boshen)
    a4478e9 codegen: Add oxc-codegen package (#25488) (overlookmotel)

    Bug Fixes

    0fbcf64 codegen: Validate sourcemap options (#25860) (camc314)
    345f981 react_compiler: Skip node_modules by default (#25859) (Boshen)
    ab81f3f minifier: Drop side-effect-free additions (#25639) (Dunqing)
    241c559 napi/minify: Accept RegExp for property filters (#25827) (Dunqing)
    4cc7ea4 codegen: Reject invalid indent options (#25807) (camc314)
    53f9295 isolated-declarations: Preserve undefined for defaulted any (#25292) (camc314)
    8ab883a codegen: Preserve property key annotations (#25766) (Dunqing)
    b13fd48 minifier: Model uninitialized module vars as undefined (#25497) (Dunqing)
    f6000ac ecmascript: Fold ** with Number::exponentiate, not IEEE pow (#25644) (Kotaro Chikuba)
    b846abc isolated-declarations: Handle ambient expando properties (#25655) (camc314)
    dec0a86 react-compiler: Standardize diagnostics (#25702) (Boshen)
    fca2e0c parser: Reject initialized lexical declarations in for-in (#25700) (Boshen)
    ae9be8f parser: Forbid type parameters on quoted constructors (#25696) (Boshen)
    c5f188a react-compiler: Use Babel v1 validation defaults (#25676) (Boshen)
    db44651 napi: Disable reuseWorker in browser bindings (#25640) (leaysgur)
    ce35d47 react_compiler: Preserve JSX import source pragmas (#25592) (Boshen)
    059784d semantic: Respect shadowed Infinity and NaN in enum evaluation (#25604) (camc314)
    bb5a232 minifier: Keep variable declaration initilized with class when keepNames is enabled (#25584) (sapphi-red)
    f49229d minifier: Keep side effects when rotating bitwise operands (#25596) (Kotaro Chikuba)
    e82495b ecmascript: Derive ToNumber of !x from ToBoolean (#25595) (Kotaro Chikuba)
    509931b semantic: Classify global references per identifier (#25608) (camc314)
    80484ce mangler: Correct base54 safety comment (#25606) (camc314)
    c1369a7 codegen: Resolve private names in class heritage (#25588) (camc314)
    c002f29 codegen: Escape sources for empty import specifiers (#25586) (camc314)
    0c68b7f estree: Emit decorators on FormalParameterRest (#25582) (camc314)
    cdf1846 semantic: Allow legacy escapes in JSX attributes (#25576) (Boshen)
    e75e102 minifier: Preserve block statement in labeled iteration statements (#25162) (Armano)
    771d79a mangler: Exclude non-manglable symbols from slot assignment (#25539) (sapphi-red)
    76b19f5 minifier: Avoid duplicating large folded strings (#25532) (Dunqing)
    59e8895 codegen: Validate starting indent level (#25550) (camc314)
    88b34f2 clippy: Remove unneeded unsafe (#25551) (camc314)
    23a7ad0 parser: Stop delimited lists at end of file (#25542) (Boshen)
    73acba9 parser: Preserve fatal errors during await reparse (#25541) (Boshen)
    c3e99d1 minifier: Avoid invalid octal escapes in template folds (#25495) (Dunqing)
    b4e6a9e codegen: Output newline after export default interface (#25487) (overlookmotel)
    5fcf683 minifier: Correct issue with try finally termination (#25185) (Armano)
    1645d93 react_compiler: Preserve source spans (#25462) (Boshen)
    8d7f9cf react_compiler: Honor eslint suppressions (#25394) (Boshen)

    Performance

    568203e ecmascript: Use binary search for known globals (#25817) (Boshen)
    c84ede3 estree_tokens: Share JS token update entry point (#25826) (Boshen)
    9a6e862 minifier: Move owned statements directly (#25835) (Dunqing)
    61b2aef minifier: Move owned AST nodes directly (#25837) (Dunqing)
    673b04b minifier: Replace expressions without take_in dummies (#25836) (Dunqing)
    63ff8ef linter: Outline diagnostic construction (#25762) (Boshen)
    621808e diagnostics: Measure graphemes lazily (#25723) (Boshen)
    f62ed0e diagnostics: Optimize graphical number rendering (#25715) (Boshen)
    7152834 diagnostics: Reduce graphical formatting overhead (#25714) (Boshen)
    10fc4b7 diagnostics: Reduce graphical rendering allocations (#25711) (Boshen)
    9c8abab diagnostics: Batch graphical reports (#25710) (Boshen)
    757f3d4 mangler: Share allocated names across reused slots (#25605) (camc314)
    5444cbf codegen: Skip escaping harmless < tokens (#25564) (camc314)

    Documentation

    58f7ab9 packages/codegen: Reformat docs and comments (#25848) (overlookmotel)
    627466e transform-react: Document all options (#25800) (Boshen)
    ce03ac1 packages/codegen: Fix JSDoc comments for printSync (#25722) (overlookmotel)
    386a699 packages/codegen: Correct JSDoc comment (#25716) (overlookmotel)
    31e571d mangler: Update code example (#25599) (camc314)
    fd62354 codegen: Revamp package readme (#25560) (camc314)
    ffa3153 codegen: Clarify raw transfer Node requirement (#25565) (camc314)
    c5d4063 codegen: Clarify binary walk allocations (#25562) (camc314)
    5703d7a codegen: Correct stale printer comments (#25561) (camc314)

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

    Oxc

    oxlint v1.79.0 & oxfmt v0.64.0

    Oxc ships Oxlint v1.79.0 and Oxfmt v0.64.0 with breaking React and React Compiler rule updates, new TypeScript and lint rule support, broader bug fixes, and performance improvements. Oxfmt also adds experimental operator positioning and formatter fixes.

    Table of Contents

    • Oxlint v1.79.0
    • Oxfmt v0.64.0

    Oxlint v1.79.0

    πŸ’₯ BREAKING CHANGES

    8c4552d linter: [BREAKING] Split react/react-compiler into per-category rules (#25500) (Boshen)

    See React Compiler Support for details.

    πŸš€ Features

    9b7394e linter/typescript/no-empty-object-type: Implement suggestion (#25833) (Mikhail Baev)

    πŸ› Bug Fixes

    345f981 react_compiler: Skip node_modules by default (#25859) (Boshen)
    2f40afa linter/unicorn/no-array-callback-reference: Ignore effect library imports (#25857) (MichaΓ«l Bitard)
    7b565a0 linter: Align React Compiler rule categories (#25840) (Boshen)
    228e8e0 linter: Resolve inactive React compiler rules (#25830) (Boshen)
    f8e4884 linter/eslint/no-useless-constructor: Allow parameter properties (#25811) (camc314)
    e4b6993 linter: Report exhaustive effect dependencies (#25829) (Boshen)
    742e25f linter/eslint/no-return-assign: Anchor diagnostic on return stmt (#25803) (camc314)
    b831ca8 react-compiler: Improve derived state diagnostic (#25804) (Boshen)
    5908c87 linter/jest/prefer-mock-return-shorthand: Preserve implementations using this (#25802) (camc314)
    f6b2265 linter/eslint/no-redeclare: Run in ES modules, skipping only the globals check (#25691) (Hamody We)
    ca9f553 linter/unicorn/prefer-default-parameters: Mark fixer as a suggestion (#25801) (camc314)
    aa49d86 linter: Allow spread rule options in config types (#25675) (ch3rry)
    d5483f8 linter/typescript/no-useless-empty-export: Skip TS declaration files (#25789) (Evyatar Daud)
    57f2199 linter/typescript/no-useless-empty-export: Report after imports (#25786) (camc314)
    633bc19 linter/typescript/no-unnecessary-type-conversion: Mark fixer as suggestion (#25787) (camc314)
    dea3339 linter/typescript/explicit-module-boundary-types: Anchor diagnostics on arrows (#25779) (camc314)
    5cd6f02 linter/eslint/array-callback-return: Anchor diagnostic on callback (#25780) (camc314)
    ef8cebf linter/eslint/preserve-caught-error: Handle AggregateError options (#25775) (camc314)
    c108d5c linter: Improve React Compiler diagnostics (#25742) (Boshen)
    c9ec55e react-compiler: Improve diagnostic spans (#25731) (Boshen)
    1cbbcb7 linter/unicorn/prefer-string-replace-all: Apply fixes in one pass (#25709) (Mikhail Baev)
    dec0a86 react-compiler: Standardize diagnostics (#25702) (Boshen)
    5fd77f7 linter/react/display-name: Report curried HOC inner component (#25662) (camc314)
    4dbb80e linter/import/no-named-as-default: Report local export conflicts (#25658) (camc314)
    e8a7214 linter/react/rules-of-hooks: Report hooks inside try blocks (#25670) (camc314)
    36f8451 linter/eslint/no-eval: Align indirect default with ESLint (#25656) (camc314)
    d901d24 linter/react/exhaustive-deps: Handle destructured object dependencies (#25669) (camc314)
    beb724d linter/eslint/no-unused-vars: Report bare underscore parameters (#25663) (camc314)
    fa36f26 linter/react/no-this-in-sfc: Detect this in nested arrow callbacks (#25653) (camc314)
    44d1be3 linter/typescript/no-var-requires: Run rule on JavaScript (#25664) (camc314)
    4004c10 linter/eslint/no-irregular-whitespace: Check comments by default (#25660) (camc314)
    625401d linter/import/no-named-default: Flag type-only named defaults (#25661) (camc314)
    8eacb2d linter/typescript/no-non-null-asserted-optional-chain: Detect assertions after continued optional chains (#25659) (camc314)
    d55b76c linter/react/no-direct-mutation-state: Detect computed state mutations (#25654) (camc314)
    f92c651 linter/unicorn/no-abusive-eslint-disable: Use directive prefix in diagnostic (#25657) (camc314)
    ee44996 linter/eslint/max-classes-per-file: Anchor diagnostic at program start (#25652) (camc314)
    403ec40 linter/eslint/no-multi-assign: Handle parenthesized declarator initializers (#25651) (camc314)
    6c9ba37 linter/jest/expect-expect: Detect assertions in nested function declarations (#25650) (camc314)
    285820e linter/no-large-snapshots: Precompile and document allowed snapshot matchers (#25611) (Mikhail Baev)
    1be1e20 linter/eslint/prefer-promise-reject-errors: Report on spread arguments (#25648) (Mikhail Baev)
    a38f7b3 oxlint,oxfmt: Apply .gitignore only to walk targets, not explicitly named files (#25531) (leaysgur)
    509931b semantic: Classify global references per identifier (#25608) (camc314)
    0c68b7f estree: Emit decorators on FormalParameterRest (#25582) (camc314)
    1d22912 linter/plugins: Parse rule-less directive justifications (#25559) (camc314)
    eaf80d8 linter/unicorn/prefer-node-protocol: Validate exact Node.js built-in specifiers (#25558) (camc314)
    57b94af linter/promise/no-multiple-resolved: Ignore unresolved globals (#25530) (Tushar Singh)
    80e64c2 linter/expect-expect: Validate assertion regex (#25504) (Mikhail Baev)
    7830604 linter/react/exhaustive-deps: Treat binary expressions as a stable dependency (#25508) (Hamody We)
    4df5835 linter: Allow capitalized built-in calls (#25516) (Boshen)
    9d49d27 react_compiler: Bail out instead of panicking on "Expected a node for all scopes" (#25506) (Boshen)
    d43b562 linter/vitest/prefer-expect-assertions: Handle parameterized Vitest assertion suggestions (#25476) (camc314)

    ⚑ Performance

    e8303d6 linter: Shrink rule serialization dispatch (#25818) (Boshen)
    c84ede3 estree_tokens: Share JS token update entry point (#25826) (Boshen)
    35c8eb2 linter: Compute sort keys once with sort_by_cached_key (#25821) (Boshen)
    f0121ed linter: Share config deserialization entry point (#25820) (Boshen)
    2dacf7a oxlint: Reduce debug formatting code size (#25797) (Boshen)
    9ed10b7 linter: Use unstable sorts for unique keys (#25778) (Boshen)
    63ff8ef linter: Outline diagnostic construction (#25762) (Boshen)
    2dd7446 diagnostics: Preallocate graphical output (#25721) (Boshen)
    9c8abab diagnostics: Batch graphical reports (#25710) (Boshen)
    8e9b95f linter: Use table for rule names (#25458) (Boshen)

    Oxfmt v0.64.0

    πŸš€ Features

    c07fe7c oxfmt: Support experimentalOperatorPosition (#25643) (leaysgur)
    2adb8fb formatter: Implement operatorPosition option (#25581) (leaysgur)

    πŸ› Bug Fixes

    44231fb formatter: Fix comment and indent issues around unions (#25665) (leaysgur)
    2465e87 formatter: Keep comments in place when dropping EmptyStatement (#25730) (leaysgur)
    7e4f3b7 formatter: Print JSDocUnknownType (#25729) (leaysgur)
    5238d9e formatter: Keep nested awaited-paren member chain grouped in call arguments (#25646) (leaysgur)
    a38f7b3 oxlint,oxfmt: Apply .gitignore only to walk targets, not explicitly named files (#25531) (leaysgur)
    5c0a5ff formatter_css: Fill own-line block comments inside space-separated values (#25578) (leaysgur)
    53debfa formatter_css: Keep trailing comma and indent after comment-preceded last map value (#25577) (leaysgur)
    1a83a8d oxfmt: Mirror printer line suppression and restore dedent-to-root (#25573) (leaysgur)
    7f350d1 formatter: Keep unary comment and print only needed parens (#25526) (leaysgur)
    f405789 formatter_yaml: Consistent chomped eos behavior (#25523) (leaysgur)
    a243311 formatter_yaml: Bump oxc-yaml-parser for contentless block scalar (#25519) (leaysgur)
    40d38a0 formatter_css: Keep multi value function args intact after leading comment (#25518) (leaysgur)

    πŸ“š Documentation

    223e785 oxfmt/conformance: Update notes on conformance (#25757) (Yuji Sugiura)
    673dc6d oxfmt: Move some docs from AGENTS.md to code comment (#25649) (leaysgur)
    fed6681 oxfmt: Skip expanding overrides options (#25572) (leaysgur)

    Original source
  • Similar to Oxc with recent updates:

  • 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
  • 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
  • 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
Releasebot

Curated by the Releasebot team

Releasebot is an aggregator of official release notes from hundreds of software vendors and thousands of sources.

Our editorial process involves the manual review and audit of release notes procured with the help of automated systems.