Skip to content

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

Merged
pull[bot] merged 7 commits intocolinaaa:mainfrom
lynx-family:main
Apr 11, 2026
Merged

[pull] main from lynx-family:main#579
pull[bot] merged 7 commits intocolinaaa:mainfrom
lynx-family:main

Conversation

@pull
Copy link
Copy Markdown

@pull pull bot commented Apr 11, 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 : )

colinaaa and others added 6 commits April 11, 2026 15:25
## Summary
- upgrade the website API documentation toolchain to
`@microsoft/api-documenter@7.30.0` and
`@microsoft/api-extractor-model@7.33.6`
- align workspace `@microsoft/api-extractor` to `7.58.2` and add the
missing direct extractor dependency for
`@lynx-js/lynx-bundle-rslib-config` so API extraction resolves reliably
- regenerate the website API docs with the upgraded tooling and confirm
`@defaultValue` still renders in the final docs as `Default Value`
sections rather than raw tags

## Test Plan
- [x] `pnpm turbo api-extractor -- --local`
- [x] `pnpm --dir website run docs`

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

* **Chores**
* Updated development tool dependencies to latest versions across
multiple packages.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
## Summary
- add a reusable skill that triggers after GitHub PR creation to
delegate CI monitoring to a subagent
- document the subagent workflow around `gh pr checks <pr> --watch` so
the main agent only resumes when CI succeeds or fails
- add repository instructions to keep future updates aligned with the
watch-based pattern

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

* **Documentation**
* Added documentation for the PR CI watch skill, providing guidance on
monitoring pull request CI status and workflows.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
<!--
  Thank you for submitting a pull request!

We appreciate the time and effort you have invested in making these
changes. Please ensure that you provide enough information to allow
others to review your pull request.

Upon submission, your pull request will be automatically assigned with
reviewers.

If you want to learn more about contributing to this project, please
visit:
https://github.com/lynx-family/lynx-stack/blob/main/CONTRIBUTING.md.
-->

<!-- The AI summary below will be auto-generated - feel free to replace
it with your own. -->

@coderabbitai summary

## Checklist

<!--- Check and mark with an "x" -->

- [ ] Tests updated (or not required).
- [ ] Documentation updated (or not required).
- [ ] Changeset added, and when a BREAKING CHANGE occurs, it needs to be
clearly marked (or not required).
## Summary
- add `@defaultValue` annotations for `@lynx-js/react-rsbuild-plugin`
option fields whose defaults are determined by code
- migrate the `defaultDisplayLinear` default behavior note out of
`@remarks` and document its actual default explicitly
- keep the generated API report unchanged after rebuilding and running
API Extractor

## Test Plan
- `pnpm --filter @lynx-js/react-rsbuild-plugin build`
- `pnpm --filter @lynx-js/react-rsbuild-plugin api-extractor --local`

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **Documentation**
* Clarified and standardized default-value documentation for React
plugin configuration options; streamlined one option's remarks. No
runtime behavior changes.
* **Chores**
  * Added a placeholder changeset file for release tracking.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
## Summary
- add `@defaultValue` annotations across
`packages/rspeedy/core/src/config/**` and migrate default-related
`@remarks` into the generated API reference
- clarify which defaults come from Rspeedy itself versus downstream
Rsbuild behavior so generated docs do not overstate runtime guarantees
- add `.github/rspeedy-config-docs.instructions.md` to keep future
config docs aligned with this pattern

## Verification
- `pnpm install`
- `pnpm build --clean && pnpm build`
- `pnpm turbo api-extractor --filter=@lynx-js/rspeedy -- --local`
- `cd website && npm run docs`
- confirmed generated API pages such as
`website/docs/en/api/rspeedy.config.mode.md`,
`website/docs/en/api/rspeedy.output.inlinescripts.md`, and
`website/docs/en/api/rspeedy.configparams.command.md` include `##
Default Value`

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **Documentation**
* Added a documentation instruction for how configuration defaults
should be recorded.
* Updated configuration reference to explicitly document default values
across dev, output, server, source, tools, resolve, and performance
sections (including CSS, build cache, chunk-splitting, and source/tool
defaults).
  * Added a changeset placeholder file.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
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.118.0

### Minor Changes

- refactor: create SnapshotInstance in renderToString directly
([#2393](#2393))

- Add `removeCall` for shake function calls. Its initial default value
matches the hooks that were previously in `removeCallParams`, and
`removeCallParams` now defaults to empty.
([#2423](#2423))

`removeCall` removes matched runtime hook calls entirely, replacing them
with `undefined` in expression positions and dropping them in statement
positions. `removeCallParams` keeps the existing behavior of preserving
the call while stripping its arguments.

### Patch Changes

- Improve `shake.removeCall` and `shake.removeCallParams` in the React
transform so they also match aliased runtime imports such as `import {
useEffect as myUseEffect } ...` and member calls such as
`ReactLynxRuntime.useEffect(...)` from default or namespace runtime
imports. ([#2437](#2437))

- Create element without ref for suspense in main thread.
([#2426](#2426))

- refactor: make `useEffect`, `useLayoutEffect` and
`useImperativeHandle` no-op on the main thread
([#2424](#2424))

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

### Minor Changes

- Add `removeCall` for shake function calls. Its initial default value
matches the hooks that were previously in `removeCallParams`, and
`removeCallParams` now defaults to empty.
([#2423](#2423))

`removeCall` removes matched runtime hook calls entirely, replacing them
with `undefined` in expression positions and dropping them in statement
positions. `removeCallParams` keeps the existing behavior of preserving
the call while stripping its arguments.

### Patch Changes

- Support `@lynx-js/react` 0.118.0.
([#2432](#2432))

- Updated dependencies
\[[`1f4f117`](1f4f117)]:
    -   @lynx-js/react-webpack-plugin@0.9.0
    -   @lynx-js/react-alias-rsbuild-plugin@0.15.0
    -   @lynx-js/use-sync-external-store@1.5.0
    -   @lynx-js/react-refresh-webpack-plugin@0.3.5
    -   @lynx-js/css-extract-webpack-plugin@0.7.0
    -   @lynx-js/template-webpack-plugin@0.10.8

## @lynx-js/react-webpack-plugin@0.9.0

### Minor Changes

- Add `removeCall` for shake function calls. Its initial default value
matches the hooks that were previously in `removeCallParams`, and
`removeCallParams` now defaults to empty.
([#2423](#2423))

`removeCall` removes matched runtime hook calls entirely, replacing them
with `undefined` in expression positions and dropping them in statement
positions. `removeCallParams` keeps the existing behavior of preserving
the call while stripping its arguments.

## @lynx-js/rspeedy@0.14.1

### Patch Changes

-   Updated dependencies \[]:
    -   @lynx-js/web-rsbuild-server-middleware@0.20.1

## create-rspeedy@0.14.1

### Patch Changes

- Fix the error when installing Lynx DevTool skill.
([#2427](#2427))

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

### Patch Changes

- Updated dependencies
\[[`156d64d`](156d64d),
[`59d11b2`](59d11b2)]:
    -   @lynx-js/css-serializer@0.1.5

## @lynx-js/config-rsbuild-plugin@0.0.2

### Patch Changes

- Support `@lynx-js/rspeedy` 0.14.0.
([#2431](#2431))

## @lynx-js/css-serializer@0.1.5

### Patch Changes

- feat: add support for @media, @supports, and @layer at-rules
([#2330](#2330))

    Add support for additional CSS at-rules in the CSS serializer:

    -   `@media` - for media queries
    -   `@supports` - for feature queries
    -   `@layer` - for cascade layers (both named and anonymous)

The parser now handles these at-rules with proper recursive parsing
support for nested at-rules.

- feat: support custom property declaration in keyframe rule
([#2429](#2429))

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

### Patch Changes

- Added support for the `global-bind` event handling modifier in the web
platform runtime.
([#2438](#2438))

This mechanism enables seamless cross-element event communication
without requiring a formal DOM tree relationship, allowing decoupled
elements to observe and respond to standard events occurring anywhere
within the component tree.

    ### Usage

Global bindings allow an observer element to react to events triggered
on another target element.

    #### 1. Define the Global Subscription

Attach `global-bindTap` (or any equivalent standard event alias) to your
observer element:

    ```jsx
    <view
      id="observer"
      global-bindTap={(event) => {
// This will trigger whenever 'tap' is caught by a globally bound event.
        console.log("Global tap handled!", event);
      }}
    />
    ```

    #### 2. Trigger the Event anywhere

The event will be triggered via normal user interaction (such as `tap`)
on any other constituent elements:

    ```jsx
    <view
      id="target"
      bindTap={(event) => {
// Note: To successfully propagate globally, ensure the event bubbles.
      }}
    />
    ```

- feat(web-core): add support for configurable rem unit transform
([#2403](#2403))

- **Description**: Added a new configuration option `transformREM` (also
exposed as `transform_rem` on the Rust layer) to the Web Core renderer.
When enabled, it recursively converts static `rem` unit values in your
styles into dynamic CSS custom properties (`calc(VALUE *
var(--rem-unit))`) during template decoding and evaluation. This enables
developers to implement responsive font scaling and layout sizing
dynamically on the client side simply by modifying the root CSS variable
`--rem-unit`.

    -   **Usage**:
You can enable this feature when working with `LynxView` by setting
`transformREM` to `true`, or directly as an HTML attribute
`transform-rem`:

        ```html
        <lynx-view
          url="https://example.com/template.js"
          transform-rem="true"
        ></lynx-view>
        ```

        ```javascript
        const lynxView = document.createElement("lynx-view");
        lynxView.transformREM = true;
        ```

With this enabled, a CSS declaration like `font-size: 1.5rem;` is
transparently evaluated as `font-size: calc(1.5 * var(--rem-unit));` by
the runtime engine.

- Updated dependencies
\[[`156d64d`](156d64d),
[`59d11b2`](59d11b2)]:
    -   @lynx-js/css-serializer@0.1.5
    -   @lynx-js/web-worker-rpc@0.20.1

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

### Patch Changes

- Updated dependencies
\[[`156d64d`](156d64d),
[`5151fcf`](5151fcf),
[`b630df2`](b630df2),
[`59d11b2`](59d11b2)]:
    -   @lynx-js/css-serializer@0.1.5
    -   @lynx-js/web-core@0.20.1

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



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



## upgrade-rspeedy@0.14.1



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



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

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
@pull pull bot locked and limited conversation to collaborators Apr 11, 2026
@pull pull bot added the ⤵️ pull label Apr 11, 2026
@pull pull bot requested a review from colinaaa as a code owner April 11, 2026 09:37
<!--
  Thank you for submitting a pull request!

We appreciate the time and effort you have invested in making these
changes. Please ensure that you provide enough information to allow
others to review your pull request.

Upon submission, your pull request will be automatically assigned with
reviewers.

If you want to learn more about contributing to this project, please
visit:
https://github.com/lynx-family/lynx-stack/blob/main/CONTRIBUTING.md.
-->

<!-- The AI summary below will be auto-generated - feel free to replace
it with your own. -->

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **Chores**
* Added a new React performance benchmark case that mounts many stateful
components to exercise rendering and hydration behavior.
* Updated build configuration and npm scripts to enable running and
profiling the new benchmark.
  * Added a new changeset placeholder file.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

## Checklist

<!--- Check and mark with an "x" -->

- [ ] Tests updated (or not required).
- [ ] Documentation updated (or not required).
- [ ] Changeset added, and when a BREAKING CHANGE occurs, it needs to be
clearly marked (or not required).
@pull pull bot merged commit dc3b6e0 into colinaaa:main Apr 11, 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.

2 participants