Skip to content

[pull] main from lynx-family:main#587

Merged
pull[bot] merged 1 commit intocolinaaa:mainfrom
lynx-family:main
Apr 19, 2026
Merged

[pull] main from lynx-family:main#587
pull[bot] merged 1 commit intocolinaaa:mainfrom
lynx-family:main

Conversation

@pull
Copy link
Copy Markdown

@pull pull Bot commented Apr 19, 2026

See Commits and Changes for more details.


Created by pull[bot] (v2.0.0-alpha.4)

Can you help keep this open source service alive? 💖 Please sponsor : )

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>
@pull pull Bot locked and limited conversation to collaborators Apr 19, 2026
@pull pull Bot requested a review from colinaaa as a code owner April 19, 2026 15:37
@pull pull Bot added the ⤵️ pull label Apr 19, 2026
@pull pull Bot merged commit 12edf6b into colinaaa:main Apr 19, 2026
1 check passed
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants