SIGN IN SIGN UP

chore: Release 2026-05-18 01:41:54 (#2535)

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/autolink-codegen@0.1.0

### Minor Changes

- Add the Native Autolink codegen package.
([#2601](https://github.com/lynx-family/lynx-stack/pull/2601))

## create-lynx-extension@0.1.0

### Minor Changes

- Add the Native Autolink create-extension package.
([#2587](https://github.com/lynx-family/lynx-stack/pull/2587))

### Patch Changes

- Use published package versions for scaffolded autolink codegen
dependencies instead of workspace placeholders.
([#2628](https://github.com/lynx-family/lynx-stack/pull/2628))

- Fix npm bin symlink entrypoint detection for the create extension CLI.
([#2623](https://github.com/lynx-family/lynx-stack/pull/2623))

## @lynx-js/react@0.121.0

### Minor Changes

- Support `React.createElement(type, props, children)` API.
([#2360](https://github.com/lynx-family/lynx-stack/pull/2360))

    ```jsx
    React.createElement("view", { style }, <text>hello</text>);
    // equivalent to
    <view style={style}>
      <text>hello</text>
    </view>;

    React.createElement(MyComponent, { style }, <view />);
    // equivalent to
    <MyComponent style={style}>
      <view />
    </MyComponent>;
    ```

### Patch Changes

- Clear transient snapshot child props when removed snapshot subtrees
are detached, preventing compiled `$*` child references from retaining
deleted list holder or list item subtrees after removal.
([#2590](https://github.com/lynx-family/lynx-stack/pull/2590))

- Add `createPortal` for rendering a subtree into a different ReactLynx
element identified by a `NodesRef`.
([#2543](https://github.com/lynx-family/lynx-stack/pull/2543))

    ```tsx
    function App() {
      const [host, setHost] = useState(null);
      return (
        <view>
          <view ref={setHost} />
          {host && createPortal(<text>hi</text>, host)}
        </view>
      );
    }
    ```

- Default `fireEvent` to `bubbles: true` for the TouchEvent family in
testing-library to match Lynx runtime semantics, and stop reassigning
the read-only `Event.prototype` accessors which threw `TypeError` in
strict mode.
([#2532](https://github.com/lynx-family/lynx-stack/pull/2532))

- Set `bundle-url` on lazy bundle border elements.
([#2537](https://github.com/lynx-family/lynx-stack/pull/2537))

- Stop warning when `runWorklet` receives an invalid or missing
main-thread function object. Invalid worklet contexts are still ignored,
but nullish handler values no longer produce noisy `MainThreadFunction:
Invalid function object` console output.
([#2586](https://github.com/lynx-family/lynx-stack/pull/2586))

- Retain main-thread worklet context references before offscreen
snapshot elements are materialized, so event, ref, gesture, and spread
callbacks stay alive until the DOM update path can attach them.
([#2592](https://github.com/lynx-family/lynx-stack/pull/2592))

- Update the @lynx-js/tasm dependency to 0.0.39 and align React template
attribute descriptors with it.
([#2643](https://github.com/lynx-family/lynx-stack/pull/2643))

- Avoid retaining transformed nested worklet contexts after worklet
transformation.
([#2591](https://github.com/lynx-family/lynx-stack/pull/2591))

Nested worklets transformed by the worklet runtime now keep their
context recovery metadata through a weak reference, preventing cached
transformed worklet functions from keeping list-item worklet contexts
alive.

## @lynx-js/docs-mcp-server@0.2.3

### Patch Changes

- fix(docs-mcp): recursively crawl and register nested llms.txt
resources ([#2317](https://github.com/lynx-family/lynx-stack/pull/2317))

## @lynx-js/rspeedy@0.14.4

### Patch Changes

- feat(qrcode): support get entry from api exposed from
rspeedy.env.entries
([#2551](https://github.com/lynx-family/lynx-stack/pull/2551))

- Updated dependencies
\[[`ad1f90f`](https://github.com/lynx-family/lynx-stack/commit/ad1f90fc05bc634b22a27b17528f8736c1aba425)]:
    -   @lynx-js/chunk-loading-webpack-plugin@0.3.4
    -   @lynx-js/web-rsbuild-server-middleware@0.20.4
    -   @lynx-js/cache-events-webpack-plugin@0.0.3

## @lynx-js/lynx-bundle-rslib-config@0.3.3

### Patch Changes

- Update the @lynx-js/tasm dependency to 0.0.39 and align React template
attribute descriptors with it.
([#2643](https://github.com/lynx-family/lynx-stack/pull/2643))

## @lynx-js/qrcode-rsbuild-plugin@0.4.7

### Patch Changes

- feat(qrcode): support get entry from api exposed from
rspeedy.env.entries
([#2551](https://github.com/lynx-family/lynx-stack/pull/2551))

## @lynx-js/react-rsbuild-plugin@0.16.2

### Patch Changes

- Updated dependencies
\[[`3e627b3`](https://github.com/lynx-family/lynx-stack/commit/3e627b337ca23d3cd8a41dbbf68568633f046e6d),
[`7b8d63c`](https://github.com/lynx-family/lynx-stack/commit/7b8d63c2f996421634095e0fbdd8b5f3251486f9),
[`13a0776`](https://github.com/lynx-family/lynx-stack/commit/13a0776fe2c8c7fc86c142f949436dffb78585ee),
[`a973c54`](https://github.com/lynx-family/lynx-stack/commit/a973c545cf4f0e907dbf55db83ddb4bca1f48c23),
[`353b1b7`](https://github.com/lynx-family/lynx-stack/commit/353b1b7dade99f9ca45ddaebb2e9644100e9e18c)]:
    -   @lynx-js/template-webpack-plugin@0.11.1
    -   @lynx-js/react-refresh-webpack-plugin@0.3.6
    -   @lynx-js/react-alias-rsbuild-plugin@0.16.2
    -   @lynx-js/use-sync-external-store@1.5.0
    -   @lynx-js/react-webpack-plugin@0.9.2
    -   @lynx-js/css-extract-webpack-plugin@0.7.1

## @lynx-js/web-core@0.20.4

### Patch Changes

- Always clone touch event lists when creating cross-thread events so
synthetic touch events only carry structured-clone-safe primitive
fields. ([#2636](https://github.com/lynx-family/lynx-stack/pull/2636))

- Conditionally pass Card and Component params based on cardType in
background thread.
([#2610](https://github.com/lynx-family/lynx-stack/pull/2610))

- Add bidirectional decode worker heartbreak liveness messages.
([#2599](https://github.com/lynx-family/lynx-stack/pull/2599))

- Add web support for the `<frame>` element by mapping it to
`<lynx-view>`.
([#2604](https://github.com/lynx-family/lynx-stack/pull/2604))

- Stop redeclaring `fetch` as a chunk-scope binding. Reusing the host
([#2562](https://github.com/lynx-family/lynx-stack/pull/2562))
`window.fetch` from BTS chunks (instead of capturing the no-op stub the
    chunk wrapper used to install) lets the renderer issue real network
    requests.

- Updated dependencies
\[[`c1db603`](https://github.com/lynx-family/lynx-stack/commit/c1db6034641954680c529e3a01a04077196cd94d)]:
    -   @lynx-js/web-elements@0.12.2
    -   @lynx-js/web-worker-rpc@0.20.4

## @lynx-js/web-elements@0.12.2

### Patch Changes

- fix: xmarkdown create img incorrectly
([#2540](https://github.com/lynx-family/lynx-stack/pull/2540))

## @lynx-js/chunk-loading-webpack-plugin@0.3.4

### Patch Changes

- Override `__webpack_require__.e` so a single sync-then chunk load (the
([#2597](https://github.com/lynx-family/lynx-stack/pull/2597))
typical lazy bundle case) bypasses `Promise.all`. It will make first
screen
in main thread can load lazy bundle synchronously when using dynamic
import.

## @lynx-js/react-refresh-webpack-plugin@0.3.6

### Patch Changes

- Widen `@lynx-js/react-webpack-plugin` peer range to include `^0.9.0`.
([#2626](https://github.com/lynx-family/lynx-stack/pull/2626))

## @lynx-js/template-webpack-plugin@0.11.1

### Patch Changes

- feat(web): enable web binary template by default
([#2545](https://github.com/lynx-family/lynx-stack/pull/2545))

The default encoding format for the web platform template has been
changed from JSON to Binary.

    **Benefits for developers:**

- **Smaller output size:** Binary templates are more compact than JSON
strings, reducing the final bundle size.
- **Faster load performance:** Binary templates parse faster than JSON
in the runtime, improving the time-to-interactive for web applications.

    **How to turn off this feature:**
If you encounter any issues with the new binary template format, you can
revert to the previous JSON format by setting the environment variable
`EXPERIMENTAL_USE_WEB_BINARY_TEMPLATE` to `'false'` or `'0'` before
running your build commands. For example:
    `EXPERIMENTAL_USE_WEB_BINARY_TEMPLATE=false rspeedy build`

**Upgrade to `@lynx-js/web-core@0.20.2` could support the new output
format**

See [`@lynx-js/web-core`
Changelog](https://lynx-stack.dev/changelog/lynx-js--web-core)

- Run TASM template encoding in a shared `tinypool` worker pool so
multi-entry builds encode in parallel and watch-mode rebuilds reuse warm
workers. ([#2634](https://github.com/lynx-family/lynx-stack/pull/2634))

- Make `LynxTemplatePlugin.getLynxTemplatePluginHooks` a cross-module
singleton so duplicate copies of this package (e.g. from npm hoist
conflicts) share the same hooks per compilation.
([#2624](https://github.com/lynx-family/lynx-stack/pull/2624))

- Update the @lynx-js/tasm dependency to 0.0.39 and align React template
attribute descriptors with it.
([#2643](https://github.com/lynx-family/lynx-stack/pull/2643))

- Updated dependencies
\[[`ee79eff`](https://github.com/lynx-family/lynx-stack/commit/ee79effbd6e291e1eb9d03a1b89ec5c00304a389),
[`ded4de9`](https://github.com/lynx-family/lynx-stack/commit/ded4de90573f095ddae129f6d3e2c483e8da37ed),
[`cf01e94`](https://github.com/lynx-family/lynx-stack/commit/cf01e940b1c03c801ea7c5ba0e4d1788c3ca15c1),
[`b989c1c`](https://github.com/lynx-family/lynx-stack/commit/b989c1c0658177b054744fd92d76b5505cda2a23),
[`8417e68`](https://github.com/lynx-family/lynx-stack/commit/8417e686cba5ae8a0f8e8bda96d2f1e21dff15c3)]:
    -   @lynx-js/web-core@0.20.4

## @lynx-js/react-umd@0.121.0



## create-rspeedy@0.14.4



## @lynx-js/react-alias-rsbuild-plugin@0.16.2



## upgrade-rspeedy@0.14.4



## @lynx-js/web-rsbuild-server-middleware@0.20.4



## @lynx-js/web-worker-rpc@0.20.4

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
G
github-actions[bot] committed
676d1b34dfcd7658beec93af4b7f70b0e6fa46fb
Parent: 6f0042f
Committed by GitHub <noreply@github.com> on 5/18/2026, 2:34:56 AM