[pull] main from lynx-family:main#579
Merged
pull[bot] merged 7 commits intocolinaaa:mainfrom Apr 11, 2026
Merged
Conversation
## 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>
<!-- 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).
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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 : )