Boshen
dec0a86412
fix(react-compiler): standardize diagnostics ( #25702 )
...
Standardize React Compiler diagnostics with concise titles, primary labels, actionable help, notes, structured categories, and official guidance links.
Preserve React guidance when diagnostics are surfaced through Oxlint, and refresh affected snapshots.
AI-assisted; reviewed and validated by the contributor.
2026-08-15 13:31:34 +00:00
Boshen
ad963b689d
refactor(react_compiler): centralize diagnostics ( #25699 )
...
Centralizes React compiler diagnostics in explicit `#[cold]` functions and removes the `[ReactCompiler]` prefix, keeping diagnostic formatting off hot paths. Updates related NAPI expectations.
AI assistance was used.
2026-08-15 05:57:29 +00:00
Boshen
c5f188a608
fix(react-compiler): use Babel v1 validation defaults ( #25676 )
...
Match the public validation defaults from babel-plugin-react-compiler 1.0 while retaining explicit opt-in for newer validations.
Validated with fixture snapshots and `just ready`.
AI-assisted investigation and implementation; reviewed and understood by the contributor.
2026-08-15 01:52:58 +00:00
leaysgur
db446518ca
fix(napi): disable reuseWorker in browser bindings ( #25640 )
...
Fixes #25610
AI assistance: Codex was used to implement this change.
2026-08-14 11:11:20 +00:00
Boshen
ce35d47499
fix(react_compiler): preserve JSX import source pragmas ( #25592 )
...
Anchor React Compiler-generated imports before the first source statement so downstream JSX transforms continue to read leading `@jsxImportSource` pragmas.
Validated with `just ready` and the transform-react binding suite. AI-assisted; the author remains responsible for review.
2026-08-14 05:37:11 +00:00
Boshen
8d7f9cff3f
fix(react_compiler): honor eslint suppressions ( #25394 )
...
Honor React ESLint suppressions independently of internal compiler validation settings, matching `babel-plugin-react-compiler@1.0.0`.
Closes #25392 .
AI-assisted.
2026-08-10 10:42:23 +00:00
oxc-guard
b6f1458dec
release(crates): oxc v0.144.0 ( #25474 )
...
### 💥 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)
2026-08-10 09:57:10 +00:00
renovate[bot]
b91dc3a1f1
chore(deps): update napi ( #25457 )
...
This PR contains the following updates:
| Package | Change |
[Age](https://docs.renovatebot.com/merge-confidence/ ) |
[Adoption](https://docs.renovatebot.com/merge-confidence/ ) |
[Passing](https://docs.renovatebot.com/merge-confidence/ ) |
[Confidence](https://docs.renovatebot.com/merge-confidence/ ) | Type |
Update |
|---|---|---|---|---|---|---|---|
| [@napi-rs/cli](https://napi.rs/ )
([source](https://redirect.github.com/napi-rs/napi-rs )) | [`3.8.3` →
`3.8.5`](https://renovatebot.com/diffs/npm/@napi-rs%2fcli/3.8.3/3.8.5 ) |

|

|

|

| pnpm.catalog.default | patch |
| [napi](https://redirect.github.com/napi-rs/napi-rs ) | `3.12.0` →
`3.12.1` |

|

|

|

| workspace.dependencies | patch |
| [napi-build](https://redirect.github.com/napi-rs/napi-rs ) | `2.4.0` →
`2.4.1` |

|

|

|

| workspace.dependencies | patch |
| [napi-derive](https://redirect.github.com/napi-rs/napi-rs ) | `3.6.2` →
`3.6.3` |

|

|

|

| workspace.dependencies | patch |
---
### Release Notes
<details>
<summary>napi-rs/napi-rs (@​napi-rs/cli)</summary>
###
[`v3.8.5`](https://redirect.github.com/napi-rs/napi-rs/compare/@napi-rs/cli@3.8.4...a5b5f277ab56e7e7e903b392b15c79da7a6520ce )
[Compare
Source](https://redirect.github.com/napi-rs/napi-rs/compare/@napi-rs/cli@3.8.4...@napi-rs/cli@3.8.5 )
###
[`v3.8.4`](https://redirect.github.com/napi-rs/napi-rs/compare/@napi-rs/cli@3.8.3...@napi-rs/cli@3.8.4 )
[Compare
Source](https://redirect.github.com/napi-rs/napi-rs/compare/@napi-rs/cli@3.8.3...@napi-rs/cli@3.8.4 )
</details>
---
### Configuration
📅 **Schedule**: (in timezone Asia/Shanghai)
- Branch creation
- At any time (no schedule defined)
- Automerge
- At any time (no schedule defined)
🚦 **Automerge**: Enabled.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.
👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config
help](https://redirect.github.com/renovatebot/renovate/discussions ) if
that's undesired.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/ ).
View the [repository job
log](https://developer.mend.io/github/oxc-project/oxc ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4xMi4wIiwidXBkYXRlZEluVmVyIjoiNDQuMTIuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->
---------
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Cameron <cclark@cloudflare.com >
2026-08-10 08:39:38 +00:00
renovate[bot]
d0b8d6ff22
chore(deps): update dependency @napi-rs/cli to v3.8.3 ( #25434 )
...
This PR contains the following updates:
| Package | Change |
[Age](https://docs.renovatebot.com/merge-confidence/ ) |
[Adoption](https://docs.renovatebot.com/merge-confidence/ ) |
[Passing](https://docs.renovatebot.com/merge-confidence/ ) |
[Confidence](https://docs.renovatebot.com/merge-confidence/ ) |
|---|---|---|---|---|---|
| [@napi-rs/cli](https://napi.rs/ )
([source](https://redirect.github.com/napi-rs/napi-rs )) | [`3.8.2` →
`3.8.3`](https://renovatebot.com/diffs/npm/@napi-rs%2fcli/3.8.2/3.8.3 ) |

|

|

|

|
---
### Release Notes
<details>
<summary>napi-rs/napi-rs (@​napi-rs/cli)</summary>
###
[`v3.8.3`](https://redirect.github.com/napi-rs/napi-rs/compare/@napi-rs/cli@3.8.2...@napi-rs/cli@3.8.3 )
[Compare
Source](https://redirect.github.com/napi-rs/napi-rs/compare/@napi-rs/cli@3.8.2...@napi-rs/cli@3.8.3 )
</details>
---
### Configuration
📅 **Schedule**: (in timezone Asia/Shanghai)
- Branch creation
- At any time (no schedule defined)
- Automerge
- At any time (no schedule defined)
🚦 **Automerge**: Enabled.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/ ).
View the [repository job
log](https://developer.mend.io/github/oxc-project/oxc ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4xMi4wIiwidXBkYXRlZEluVmVyIjoiNDQuMTIuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->
---------
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Cameron Clark <cameron.clark@hey.com >
2026-08-09 13:25:05 +00:00
Boshen
9d19ab3080
fix(transform_react): downgrade nonfatal compiler diagnostics ( #25418 )
...
Expose nonfatal React Compiler diagnostics as warnings while preserving
fatal errors.
AI-assisted.
<sub>Stack created with <a
href="https://github.com/github/gh-stack ">GitHub Stacks CLI</a> • <a
href="https://gh.io/stacks-feedback ">Give Feedback 💬 </a></sub>
2026-08-09 11:18:13 +08:00
Boshen
937825c6a6
fix(react_compiler): disable exhaustive memo validation by default ( #25417 )
...
Disable exhaustive memo dependency validation by default and align
suppression handling.
AI-assisted.
<sub>Stack created with <a
href="https://github.com/github/gh-stack ">GitHub Stacks CLI</a> • <a
href="https://gh.io/stacks-feedback ">Give Feedback 💬 </a></sub>
2026-08-09 11:18:12 +08:00
Boshen
7d8a9b5f2f
fix(react_compiler): preserve hook spans for React Refresh ( #25393 )
...
Fix React Refresh when used with the React Compiler N-API transform by
preserving original hook argument and binding-pattern spans through
compiler codegen.
This prevents refresh signature generation from panicking and keeps
signatures based on the original source.
Validated with `just ready` and the React transform N-API suite.
Generated with AI assistance; reviewed and validated by the contributor.
2026-08-08 08:46:36 +00:00
Boshen
4a6542bfda
chore(react_compiler): configure package publishing ( #25389 )
...
Prevents the internal `oxc_react_compiler` and
`oxc_transform_react_napi` Rust crates from being published while
including the `oxc-transform-react` npm package in workspace releases.
Validated with `taplo lint`, Cargo metadata, and `just ready`.
AI assistance was used for this change.
2026-08-08 08:05:28 +00:00
Boshen
9a37c418cd
feat(napi): restructure React transform options ( #25326 )
...
Restructure `oxc-transform-react` options around `reactCompiler` and the shared JSX/Fast Refresh configuration.
Generated with AI assistance; reviewed and validated by the contributor.
2026-08-07 08:52:04 +00:00
oxc-guard
45a17c25d1
release(crates): oxc v0.143.0 ( #25250 )
...
### 💥 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)
2026-08-03 11:07:37 +00:00
renovate[bot]
b937e3e2f1
chore(deps): update napi ( #25019 )
...
This PR contains the following updates:
| Package | Change |
[Age](https://docs.renovatebot.com/merge-confidence/ ) |
[Adoption](https://docs.renovatebot.com/merge-confidence/ ) |
[Passing](https://docs.renovatebot.com/merge-confidence/ ) |
[Confidence](https://docs.renovatebot.com/merge-confidence/ ) | Type |
Update |
|---|---|---|---|---|---|---|---|
| [@napi-rs/cli](https://napi.rs/ )
([source](https://redirect.github.com/napi-rs/napi-rs )) | [`3.7.4` →
`3.8.2`](https://renovatebot.com/diffs/npm/@napi-rs%2fcli/3.7.4/3.8.2 ) |

|

|

|

| pnpm.catalog.default | minor |
| [napi](https://redirect.github.com/napi-rs/napi-rs ) | `3.11.0` →
`3.12.0` |

|

|

|

| workspace.dependencies | minor |
| [napi-build](https://redirect.github.com/napi-rs/napi-rs ) | `2.3.2` →
`2.4.0` |

|

|

|

| workspace.dependencies | minor |
| [napi-derive](https://redirect.github.com/napi-rs/napi-rs ) | `3.6.0` →
`3.6.2` |

|

|

|

| workspace.dependencies | patch |
---
### Release Notes
<details>
<summary>napi-rs/napi-rs (@​napi-rs/cli)</summary>
###
[`v3.8.2`](https://redirect.github.com/napi-rs/napi-rs/compare/@napi-rs/cli@3.8.1...@napi-rs/cli@3.8.2 )
[Compare
Source](https://redirect.github.com/napi-rs/napi-rs/compare/@napi-rs/cli@3.8.1...@napi-rs/cli@3.8.2 )
###
[`v3.8.1`](https://redirect.github.com/napi-rs/napi-rs/compare/@napi-rs/cli@3.8.0...@napi-rs/cli@3.8.1 )
[Compare
Source](https://redirect.github.com/napi-rs/napi-rs/compare/@napi-rs/cli@3.8.0...@napi-rs/cli@3.8.1 )
###
[`v3.8.0`](https://redirect.github.com/napi-rs/napi-rs/compare/@napi-rs/cli@3.7.4...@napi-rs/cli@3.8.0 )
[Compare
Source](https://redirect.github.com/napi-rs/napi-rs/compare/@napi-rs/cli@3.7.4...@napi-rs/cli@3.8.0 )
</details>
---
### Configuration
📅 **Schedule**: (in timezone Asia/Shanghai)
- Branch creation
- At any time (no schedule defined)
- Automerge
- At any time (no schedule defined)
🚦 **Automerge**: Enabled.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.
👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config
help](https://redirect.github.com/renovatebot/renovate/discussions ) if
that's undesired.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/ ).
View the [repository job
log](https://developer.mend.io/github/oxc-project/oxc ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4yODAuMCIsInVwZGF0ZWRJblZlciI6IjQ0LjMuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->
---------
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Cameron <cameron.clark@hey.com >
2026-08-03 11:21:03 +01:00
Boshen
5d8ccf510b
fix(react_compiler): preserve nonfatal diagnostics ( #25066 )
...
Preserves nonfatal React Compiler diagnostics and covers warning bailouts through the N-API binding.
AI-assisted.
2026-07-29 13:09:20 +00:00
Boshen
d349e4a449
fix(react_compiler): match eslint suppression gating ( #25068 )
...
Matches React Compiler ESLint suppression gating for internal validation options.
AI-assisted.
2026-07-29 12:41:00 +00:00
Boshen
8b7420a7e8
refactor(transformer): decouple React Compiler ( #25065 )
...
Moves React Compiler integration out of `oxc` and `oxc_transformer` into the dedicated binding.
AI-assisted.
2026-07-29 09:46:48 +00:00
Boshen
85d0f4dd1f
feat(napi): add React Compiler transform binding ( #24934 )
...
Adds the `oxc-transform-react` N-API binding and its public CI and publish workflows.
AI-assisted.
2026-07-29 09:08:58 +00:00