Conversation
🦋 Changeset detectedLatest commit: 8124d5d The changes in this PR will be included in the next version bump. This PR includes changesets to release 2 packages
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
|
Note Reviews pausedIt looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the Use the following commands to manage reviews:
Use the checkboxes below for quick actions:
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Run ID: ⛔ Files ignored due to path filters (1)
📒 Files selected for processing (2)
✅ Files skipped from review due to trivial changes (1)
📝 WalkthroughWalkthroughAdded a changeset for Changes
Estimated code review effort🎯 2 (Simple) | ⏱️ ~10 minutes Possibly related PRs
Suggested reviewers
Poem
🚥 Pre-merge checks | ✅ 3✅ Passed checks (3 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
There was a problem hiding this comment.
Actionable comments posted: 1
🧹 Nitpick comments (1)
.changeset/sharp-icons-guess.md (1)
5-5: Make the release note line more specific.“Update preact version” is a bit vague; include the exact target version/commit so changelog readers can trace the dependency change quickly.
Suggested wording
-Update preact version +Update preact dependency to internal-preact commit de96922🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In @.changeset/sharp-icons-guess.md at line 5, Replace the vague release note "Update preact version" in the .changeset entry by stating the exact target dependency update for preact (e.g., "Bump preact to vX.Y.Z" or "Update preact to commit <SHA/branch>"), include the full version number or commit SHA and optional brief reason/impact; ensure the wording references "preact" and the precise version/commit so changelog readers can trace the change.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@packages/react/package.json`:
- Line 177: The package.json currently pins "preact" to a preview URL; replace
that URL with the published npm package `@lynx-js/internal-preact` at the released
version that corresponds to commit de96922. Locate the correct version for
`@lynx-js/internal-preact` (via your npm registry, package release notes or the
package's repo tags/CHANGELOG) and update the "preact" entry in
packages/react/package.json to use "@lynx-js/internal-preact":
"<resolved-version>" so consumers install from npm rather than the preview host.
---
Nitpick comments:
In @.changeset/sharp-icons-guess.md:
- Line 5: Replace the vague release note "Update preact version" in the
.changeset entry by stating the exact target dependency update for preact (e.g.,
"Bump preact to vX.Y.Z" or "Update preact to commit <SHA/branch>"), include the
full version number or commit SHA and optional brief reason/impact; ensure the
wording references "preact" and the precise version/commit so changelog readers
can trace the change.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
Run ID: 4f2cb0ee-2b44-426c-8a26-a6ccc2bd2d5c
⛔ Files ignored due to path filters (1)
pnpm-lock.yamlis excluded by!**/pnpm-lock.yaml
📒 Files selected for processing (2)
.changeset/sharp-icons-guess.mdpackages/react/package.json
There was a problem hiding this comment.
🧹 Nitpick comments (1)
.changeset/sharp-icons-guess.md (1)
5-5: Prefer product-name capitalization in release note text.Consider changing
Update preact versiontoUpdate Preact versionfor consistency/readability in generated notes.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In @.changeset/sharp-icons-guess.md at line 5, Change the release note text in .changeset/sharp-icons-guess.md from "Update preact version" to use product-name capitalization: "Update Preact version" so generated notes are consistent; update the string exactly (look for the line containing "Update preact version") and commit the adjusted phrase.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Nitpick comments:
In @.changeset/sharp-icons-guess.md:
- Line 5: Change the release note text in .changeset/sharp-icons-guess.md from
"Update preact version" to use product-name capitalization: "Update Preact
version" so generated notes are consistent; update the string exactly (look for
the line containing "Update preact version") and commit the adjusted phrase.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
Run ID: ec8cb251-454b-433f-b72f-43a5b7bb0401
⛔ Files ignored due to path filters (1)
pnpm-lock.yamlis excluded by!**/pnpm-lock.yaml
📒 Files selected for processing (2)
.changeset/sharp-icons-guess.mdpackages/react/package.json
✅ Files skipped from review due to trivial changes (1)
- packages/react/package.json
Merging this PR will degrade performance by 42.73%
|
React External#385 Bundle Size — 582.81KiB (-1.51%).8124d5d(current) vs a9f8d05 main#369(baseline) Bundle metrics
Bundle size by type
Bundle analysis report Branch p/update-preact Project dashboard Generated by RelativeCI Documentation Report issue |
Web Explorer#8841 Bundle Size — 748.66KiB (0%).8124d5d(current) vs a9f8d05 main#8825(baseline) Bundle metrics
|
| Current #8841 |
Baseline #8825 |
|
|---|---|---|
44.27KiB |
44.27KiB |
|
2.16KiB |
2.16KiB |
|
0% |
0% |
|
8 |
8 |
|
10 |
10 |
|
150 |
150 |
|
11 |
11 |
|
35.01% |
35.01% |
|
3 |
3 |
|
0 |
0 |
Bundle size by type no changes
| Current #8841 |
Baseline #8825 |
|
|---|---|---|
401.63KiB |
401.63KiB |
|
344.87KiB |
344.87KiB |
|
2.16KiB |
2.16KiB |
Bundle analysis report Branch p/update-preact Project dashboard
Generated by RelativeCI Documentation Report issue
React Example#7267 Bundle Size — 223.58KiB (-5.59%).8124d5d(current) vs a9f8d05 main#7251(baseline) Bundle metrics
Bundle size by type
Bundle analysis report Branch p/update-preact Project dashboard Generated by RelativeCI Documentation Report issue |
React MTF Example#400 Bundle Size — 192.85KiB (-6.44%).8124d5d(current) vs a9f8d05 main#384(baseline) Bundle metrics
Bundle size by type
Bundle analysis report Branch p/update-preact Project dashboard Generated by RelativeCI Documentation Report issue |
There was a problem hiding this comment.
🧹 Nitpick comments (1)
.changeset/sharp-icons-guess.md (1)
5-5: Make the release note text more specific.Line 5 is very generic; consider mentioning what changed (e.g., dependency source switch/commit) so release notes are more actionable.
✏️ Suggested wording
-Update preact version +Update preact dependency source to the new internal-preact build🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In @.changeset/sharp-icons-guess.md at line 5, Replace the generic "Update preact version" line with a specific release note that names the dependency ("preact"), the new version number or range, and what changed about the source (e.g., "switched from npm registry to GitHub commit <sha>" or "bumped from vA.B.C to vX.Y.Z"), and include context/reason (e.g., bugfix, security, or compatibility) so consumers can act on it; update the sentence currently reading "Update preact version" in .changeset/sharp-icons-guess.md to follow this format.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Nitpick comments:
In @.changeset/sharp-icons-guess.md:
- Line 5: Replace the generic "Update preact version" line with a specific
release note that names the dependency ("preact"), the new version number or
range, and what changed about the source (e.g., "switched from npm registry to
GitHub commit <sha>" or "bumped from vA.B.C to vX.Y.Z"), and include
context/reason (e.g., bugfix, security, or compatibility) so consumers can act
on it; update the sentence currently reading "Update preact version" in
.changeset/sharp-icons-guess.md to follow this format.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
Run ID: c6c312e1-c682-4eb2-a081-bcfee45e8aef
⛔ Files ignored due to path filters (1)
pnpm-lock.yamlis excluded by!**/pnpm-lock.yaml
📒 Files selected for processing (2)
.changeset/sharp-icons-guess.mdpackages/react/package.json
✅ Files skipped from review due to trivial changes (1)
- packages/react/package.json
This PR was opened by the [Changesets release](https://github.com/changesets/action) GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated. # Releases ## @lynx-js/react@0.119.0 ### Minor Changes - Simplify hooks for main-thread runtime, which only can run during the first screen. ([#2441](#2441)) ### Patch Changes - Remove stale gestures when gestures are removed ([#2297](#2297)) - Trace refactor ([#2466](#2466)) - Remove `ReactLynx::renderOpcodes` from the trace - Use `ReactLynx::transferRoot` to measure the time spent transferring the root to the background thread - refactor: set state of suspense to render fallback ([#2450](#2450)) - Support rstest for testing library, you can use rstest with RLTL now: ([#2328](#2328)) Create a config file `rstest.config.ts` with the following content: ```ts import { defineConfig } from "@rstest/core"; import { withLynxConfig } from "@lynx-js/react/testing-library/rstest-config"; export default defineConfig({ extends: withLynxConfig(), }); ``` `@lynx-js/react/testing-library/rstest-config` will automatically load your `lynx.config.ts` and apply the same configuration to rstest, so you can keep your test environment consistent with your development environment. And then use rstest as usual: ```bash $ rstest ``` For more usage detail, see <https://rstest.rs/> - Update preact version ([#2456](#2456)) - Add `nodeIndex` to generated FiberElement creation calls and expose React transform debug metadata as `uiSourceMapRecords`. ([#2402](#2402)) ## @lynx-js/react-rsbuild-plugin@0.16.0 ### Minor Changes - Simplify hooks for main-thread runtime, which only can run during the first screen. ([#2441](#2441)) ### Patch Changes - Support rstest for testing library using a dedicated testing loader. ([#2328](#2328)) - Fix `environments.lynx.performance.profile` so it overrides the default profile behavior for the current environment. ([#2468](#2468)) - Add `enableUiSourceMap` option to enable UI source map generation and debug-metadata asset emission. ([#2402](#2402)) - Updated dependencies \[[`a9f8d05`](a9f8d05), [`b1ad1b9`](b1ad1b9), [`f6184f3`](f6184f3), [`f6184f3`](f6184f3), [`a9f8d05`](a9f8d05), [`f542d9c`](f542d9c)]: - @lynx-js/template-webpack-plugin@0.10.9 - @lynx-js/react-webpack-plugin@0.9.1 - @lynx-js/react-alias-rsbuild-plugin@0.16.0 - @lynx-js/css-extract-webpack-plugin@0.7.0 - @lynx-js/react-refresh-webpack-plugin@0.3.5 - @lynx-js/use-sync-external-store@1.5.0 ## @lynx-js/react-alias-rsbuild-plugin@0.16.0 ### Minor Changes - Simplify hooks for main-thread runtime, which only can run during the first screen. ([#2441](#2441)) ### Patch Changes - fix(rstest): add global fallback aliases for `@lynx-js/react/jsx-runtime` and `@lynx-js/react/jsx-dev-runtime` ([#2464](#2464)) `pluginReactAlias` only aliased these entries inside layer-specific rules (`issuerLayer: BACKGROUND/MAIN_THREAD`). In rstest mode there are no layers, so JSX transformed by the testing loader—which emits `import { jsx } from '@lynx-js/react/jsx-runtime'`—could not be resolved, causing a `Cannot find module '@lynx-js/react/jsx-runtime'` error. Added global (non-layer-specific) fallback aliases pointing to the background jsx-runtime. ## @lynx-js/testing-environment@0.2.0 ### Minor Changes - **BREAKING CHANGE**: ([#2328](#2328)) Align the public test-environment API around `LynxEnv`. `LynxTestingEnv` now expects a `{ window }`-shaped environment instead of relying on a concrete `JSDOM` instance or `global.jsdom`. Callers that construct `LynxTestingEnv` manually or initialize the environment through globals should migrate to `new LynxTestingEnv({ window })` or set `global.lynxEnv`. This release also adds the `@lynx-js/testing-environment/env/rstest` entry for running the shared testing-environment suite under rstest. ### Patch Changes - Add `__RemoveGestureDetector` PAPI binding ([#2297](#2297)) ## @lynx-js/rspeedy@0.14.2 ### Patch Changes - Updated dependencies \[]: - @lynx-js/web-rsbuild-server-middleware@0.20.2 ## create-rspeedy@0.14.2 ### Patch Changes - Add Rstest ReactLynx Testing Library template. ([#2328](#2328)) ## @lynx-js/external-bundle-rsbuild-plugin@0.1.1 ### Patch Changes - Updated dependencies \[[`3262ca8`](3262ca8)]: - @lynx-js/externals-loading-webpack-plugin@0.1.1 ## @lynx-js/web-core@0.20.2 ### Patch Changes - fix: map clientX and clientY to x and y in touch event detail ([#2458](#2458)) - fix(web-platform): completely detach event listeners and forcefully free `MainThreadWasmContext` pointer alongside strict FIFO async component disposal to ensure total memory reclamation without use-after-free risks ([#2457](#2457)) - refactor: with WeakRef in element APIs and WASM bindings to improve memory management. ([#2439](#2439)) - fix: preserve CSS variable fallback values when encoding web-core stylesheets so declarations like `var(--token, rgba(...))` are emitted with their fallback intact. ([#2460](#2460)) - fix: avoid to do use-after-free for rust instance ([#2461](#2461)) - fix: Change uniqueId to uid in LynxCrossThreadEventTarget ([#2467](#2467)) - Updated dependencies \[]: - @lynx-js/web-worker-rpc@0.20.2 ## @lynx-js/externals-loading-webpack-plugin@0.1.1 ### Patch Changes - fix: deduplicate `loadScript` calls for externals sharing the same (bundle, section) pair ([#2465](#2465)) When multiple externals had different `libraryName` values but pointed to the same bundle URL and section path, `createLoadExternalSync`/`createLoadExternalAsync` was called once per external, causing `lynx.loadScript` to execute redundantly for the same section. Now only the first external in each `(url, sectionPath)` group triggers the load; subsequent externals in the group are assigned the already-loaded result directly. ## @lynx-js/react-webpack-plugin@0.9.1 ### Patch Changes - Support rstest for testing library using a dedicated testing loader. ([#2328](#2328)) - fix(rstest): normalize partial `compat` options in the testing loader ([#2464](#2464)) The testing loader forwards `compat` directly to `transformReactLynxSync` without normalization. When `compat` is supplied as a partial object, the required `target` field is absent and the WASM transform throws `Error: Missing field 'target'`. Added the same normalization already present in `getCommonOptions` for the background/main-thread loaders: fills in `target: 'MIXED'` and all other required fields with sensible defaults. - Add `enableUiSourceMap` option to enable UI source map generation and debug-metadata asset emission. ([#2402](#2402)) ## @lynx-js/template-webpack-plugin@0.10.9 ### Patch Changes - Introduce `LynxDebugMetadataPlugin` to emit debug-metadata assets. ([#2402](#2402)) - Updated dependencies \[[`24c4c69`](24c4c69), [`7332eb4`](7332eb4), [`fd0cc6e`](fd0cc6e), [`e5b0f66`](e5b0f66), [`5aa97d8`](5aa97d8), [`5c39654`](5c39654)]: - @lynx-js/web-core@0.20.2 ## @lynx-js/react-umd@0.119.0 ## upgrade-rspeedy@0.14.2 ## @lynx-js/web-rsbuild-server-middleware@0.20.2 ## @lynx-js/web-worker-rpc@0.20.2 Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Summary by CodeRabbit
Checklist