fix: record lazily created nested lists#1963
Conversation
🦋 Changeset detectedLatest commit: 9b727ad The changes in this PR will be included in the next version bump. This PR includes changesets to release 1 package
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 |
📝 WalkthroughWalkthroughAdds a changeset and a snapshot update to pre-register lazily created nested list children into pending list updates before flushing; includes new/updated tests to verify recording and update actions for nested lists. Changes
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~25 minutes
Possibly related PRs
Suggested reviewers
Poem
Pre-merge checks and finishing touches✅ Passed checks (3 passed)
✨ Finishing touches
🧪 Generate unit tests (beta)
📜 Recent review detailsConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro 📒 Files selected for processing (1)
🧰 Additional context used🧬 Code graph analysis (1)packages/react/runtime/__test__/list.test.jsx (2)
🔇 Additional comments (3)
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 |
There was a problem hiding this comment.
Actionable comments posted: 0
🧹 Nitpick comments (1)
packages/react/runtime/src/snapshot.ts (1)
338-344: Pre-registration of lazily created list children before flush looks correct; please confirmensureElements’ lifecycleThe new pre-flush block for list holders:
- Only creates a
ListUpdateInfoRecordingwhen__pendingListUpdates.valuesexists and there’s no existing entry forthis.__id.- Iterates from
__firstChildthrough__nextSibling, callingonInsertBeforefor each child before the existingflushWithId(this.__id)call.This mirrors the existing
insertBeforebehavior and should ensure lazily created nested list items are actually recorded before the flush, addressing the blank-screen issue without changing behavior for lists that already have pending entries.One thing to double-check: this assumes
ensureElementsis effectively one-shot for a given list instance, or at least thatflushWithIddoesn’t clearvalues[this.__id]in a way that would cause this block to run again and re-enqueue inserts for already-flushed children. If there’s any path whereensureElementsmight be called again after a previous flush for the same instance, it could be worth asserting or documenting that invariant, or guarding against double queuing.
📜 Review details
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (2)
.changeset/early-crabs-lie.md(1 hunks)packages/react/runtime/src/snapshot.ts(1 hunks)
🧰 Additional context used
📓 Path-based instructions (1)
.changeset/*.md
📄 CodeRabbit inference engine (AGENTS.md)
For contributions, generate and commit a Changeset describing your changes
Files:
.changeset/early-crabs-lie.md
🧠 Learnings (11)
📓 Common learnings
Learnt from: gaoachao
Repo: lynx-family/lynx-stack PR: 1736
File: .changeset/spotty-experts-smoke.md:1-3
Timestamp: 2025-09-12T09:43:04.847Z
Learning: In the lynx-family/lynx-stack repository, empty changeset files (containing only `---\n\n---`) are used for internal changes that modify src/** files but don't require meaningful release notes, such as private package changes or testing-only modifications. This satisfies CI requirements without generating user-facing release notes.
Learnt from: colinaaa
Repo: lynx-family/lynx-stack PR: 1330
File: .changeset/olive-animals-attend.md:1-3
Timestamp: 2025-07-22T09:23:07.797Z
Learning: In the lynx-family/lynx-stack repository, changesets are only required for meaningful changes to end-users such as bugfixes and features. Internal/development changes like chores, refactoring, or removing debug info do not need changeset entries.
📚 Learning: 2025-11-04T10:15:14.965Z
Learnt from: upupming
Repo: lynx-family/lynx-stack PR: 1899
File: packages/react/runtime/__test__/snapshotPatch.test.jsx:725-749
Timestamp: 2025-11-04T10:15:14.965Z
Learning: In packages/react/runtime/src/snapshot.ts, the snapshotCreatorMap type signature uses `Record<string, (uniqId: string) => string>` (returning string) rather than void for backward compatibility. Old lazy bundles still use the pattern `const snapshot_xxx = createSnapshot(...)` directly, which requires createSnapshot to return a value. The snapshotCreatorMap creators that wrap createSnapshot calls must maintain the same return type to support these legacy bundles.
Applied to files:
packages/react/runtime/src/snapshot.ts
📚 Learning: 2025-09-12T09:43:04.847Z
Learnt from: gaoachao
Repo: lynx-family/lynx-stack PR: 1736
File: .changeset/spotty-experts-smoke.md:1-3
Timestamp: 2025-09-12T09:43:04.847Z
Learning: In the lynx-family/lynx-stack repository, empty changeset files (containing only `---\n\n---`) are used for internal changes that modify src/** files but don't require meaningful release notes, such as private package changes or testing-only modifications. This satisfies CI requirements without generating user-facing release notes.
Applied to files:
.changeset/early-crabs-lie.md
📚 Learning: 2025-09-12T09:43:04.847Z
Learnt from: gaoachao
Repo: lynx-family/lynx-stack PR: 1736
File: .changeset/spotty-experts-smoke.md:1-3
Timestamp: 2025-09-12T09:43:04.847Z
Learning: In the lynx-family/lynx-stack repository, private packages (marked with "private": true in package.json) like lynx-js/react-transform don't require meaningful changeset entries even when their public APIs change, since they are not published externally and only affect internal development.
Applied to files:
.changeset/early-crabs-lie.md
📚 Learning: 2025-07-22T09:23:07.797Z
Learnt from: colinaaa
Repo: lynx-family/lynx-stack PR: 1330
File: .changeset/olive-animals-attend.md:1-3
Timestamp: 2025-07-22T09:23:07.797Z
Learning: In the lynx-family/lynx-stack repository, changesets are only required for meaningful changes to end-users such as bugfixes and features. Internal/development changes like chores, refactoring, or removing debug info do not need changeset entries.
Applied to files:
.changeset/early-crabs-lie.md
📚 Learning: 2025-07-22T09:26:16.722Z
Learnt from: colinaaa
Repo: lynx-family/lynx-stack PR: 1330
File: .changeset/olive-animals-attend.md:1-3
Timestamp: 2025-07-22T09:26:16.722Z
Learning: In the lynx-family/lynx-stack repository, CI checks require changesets when files matching the pattern "src/**" are modified (as configured in .changeset/config.json). For internal changes that don't need meaningful changesets, an empty changeset file is used to satisfy the CI requirement while not generating any release notes.
Applied to files:
.changeset/early-crabs-lie.md
📚 Learning: 2025-08-19T11:25:36.127Z
Learnt from: colinaaa
Repo: lynx-family/lynx-stack PR: 1558
File: .changeset/solid-squids-fall.md:2-2
Timestamp: 2025-08-19T11:25:36.127Z
Learning: In the lynx-family/lynx-stack repository, changesets should use the exact package name from package.json#name, not generic or unscoped names. Each package has its own specific scoped name (e.g., "lynx-js/react-transform" for packages/react/transform).
Applied to files:
.changeset/early-crabs-lie.md
📚 Learning: 2025-08-07T04:00:59.645Z
Learnt from: colinaaa
Repo: lynx-family/lynx-stack PR: 1454
File: pnpm-workspace.yaml:46-46
Timestamp: 2025-08-07T04:00:59.645Z
Learning: In the lynx-family/lynx-stack repository, the webpack patch (patches/webpack5.101.0.patch) was created to fix issues with webpack5.99.9 but only takes effect on webpack5.100.0 and later versions. The patchedDependencies entry should use "webpack@^5.100.0" to ensure the patch applies to the correct version range.
Applied to files:
.changeset/early-crabs-lie.md
📚 Learning: 2025-09-18T04:43:54.426Z
Learnt from: gaoachao
Repo: lynx-family/lynx-stack PR: 1771
File: packages/react/transform/tests/__swc_snapshots__/src/swc_plugin_snapshot/mod.rs/basic_component_with_static_sibling.js:2-2
Timestamp: 2025-09-18T04:43:54.426Z
Learning: In the lynx-family/lynx-stack repository, the `add_pure_comment` function in packages/react/transform/src/swc_plugin_compat/mod.rs (around lines 478-482) is specifically for `wrapWithLynxComponent` calls, not `createSnapshot` calls. The PURE comment injection for `createSnapshot` is handled separately in swc_plugin_snapshot/mod.rs.
Applied to files:
.changeset/early-crabs-lie.md
📚 Learning: 2025-08-12T16:09:32.413Z
Learnt from: colinaaa
Repo: lynx-family/lynx-stack PR: 1497
File: packages/react/transform/tests/__swc_snapshots__/src/swc_plugin_snapshot/mod.rs/basic_full_static.js:9-10
Timestamp: 2025-08-12T16:09:32.413Z
Learning: In the Lynx stack, functions prefixed with `__` that are called in transformed code may be injected globally by the Lynx Engine at runtime rather than exported from the React runtime package. For example, `__CreateFrame` is injected globally by the Lynx Engine, not exported from lynx-js/react.
Applied to files:
.changeset/early-crabs-lie.md
📚 Learning: 2025-08-13T09:20:00.936Z
Learnt from: upupming
Repo: lynx-family/lynx-stack PR: 1502
File: packages/react/testing-library/types/entry.d.ts:71-71
Timestamp: 2025-08-13T09:20:00.936Z
Learning: In lynx-js/react testing library, wrapper components must have children as a required prop because they are always called with `h(WrapperComponent, null, innerElement)` where innerElement is passed as children. The type `React.JSXElementConstructor<{ children: React.ReactNode }>` correctly requires children to be mandatory.
Applied to files:
.changeset/early-crabs-lie.md
🔇 Additional comments (1)
.changeset/early-crabs-lie.md (1)
1-5: Changeset content and targeting look correctThe changeset correctly targets
@lynx-js/reactwith apatchbump and gives a concise, user-facing description of the nested-list blank screen bugfix. This aligns with the repo’s guidance on when to add changesets and how to name packages.Based on learnings, this matches the expected pattern for user-visible bugfixes in this repo.
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
CodSpeed Performance ReportMerging #1963 will not alter performanceComparing Summary
Footnotes
|
React Example#6227 Bundle Size — 234.54KiB (+0.08%).9b727ad(current) vs 55cb796 main#6218(baseline) Bundle metrics
Bundle size by type
Bundle analysis report Branch fix/lazily-created-nested-list Project dashboard Generated by RelativeCI Documentation Report issue |
Web Explorer#6361 Bundle Size — 377.5KiB (0%).9b727ad(current) vs 2765cea main#6346(baseline) Bundle metrics
Bundle size by type
|
| Current #6361 |
Baseline #6346 |
|
|---|---|---|
243.18KiB |
243.18KiB |
|
101.94KiB |
101.94KiB |
|
32.38KiB |
32.38KiB |
Bundle analysis report Branch fix/lazily-created-nested-list Project dashboard
Generated by RelativeCI Documentation Report issue
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.115.0 ### Minor Changes - **BREAKING CHANGE**: Delay the `createSnapshot` operation to `Snapshot` constructor to speed up IFR. ([#1899](#1899)) This change refactors how snapshots are created and registered: - Removed the `entryUniqID` function - Snapshots are now lazily created via `snapshotCreatorMap` instead of eagerly at bundle load time - Snapshot IDs are generated at compile time and only prefixed with `${globDynamicComponentEntry}:` for standalone lazy bundles **⚠️ Lazy Bundle Compatibility:** - **Backward compatibility (new runtime → old lazy bundles)**: ✅ **Supported**. Old lazy bundles will work with the new runtime. - **Forward compatibility (old runtime → new lazy bundles)**: ❌ **NOT Supported**. Lower version consumers **will not be able to load lazy bundles produced by this version** due to the changed snapshot creation mechanism. **Migration guidance**: If you are using lazy bundles, ensure all consumers are upgraded to this version or later **before** deploying lazy bundles built with this version. For monorepo setups, coordinate the upgrade across all consuming applications. ### Patch Changes - Preserve assignments to webpack runtime variables like `__webpack_public_path__`, `__webpack_require__.p`, etc. ([#1958](#1958)) - Fixed blank screen issues with nested lists. Lazily created nested lists were being flushed but not properly recorded, causing rendering failures. ([#1963](#1963)) - fix: export `createRef` and `useRef` from `@lynx-js/react/legacy-react-runtime` ([#1953](#1953)) ## @lynx-js/react-rsbuild-plugin@0.12.0 ### Minor Changes - **BREAKING CHANGE**: Require `@lynx-js/rspeedy` 0.12.0. ([#1951](#1951)) ### Patch Changes - Support Yarn Plug'n'Play. ([#1964](#1964)) - Updated dependencies \[[`738d44d`](738d44d), [`5bbb439`](5bbb439), [`3692a16`](3692a16), [`d2e290b`](d2e290b), [`738d44d`](738d44d)]: - @lynx-js/react-alias-rsbuild-plugin@0.12.0 - @lynx-js/css-extract-webpack-plugin@0.6.5 - @lynx-js/template-webpack-plugin@0.9.2 - @lynx-js/use-sync-external-store@1.5.0 - @lynx-js/react-refresh-webpack-plugin@0.3.4 - @lynx-js/react-webpack-plugin@0.7.2 ## @lynx-js/react-alias-rsbuild-plugin@0.12.0 ### Minor Changes - **BREAKING CHANGE**: Use resolver from Rspack. ([#1964](#1964)) The `createLazyResolver` now requires an `rspack` parameter: ```diff - function createLazyResolver(directory: string, conditionNames: string[]): (request: string) => Promise<string>; + function createLazyResolver(rspack: rspack, directory: string, conditionNames: string[]): (request: string) => Promise<string>; ``` ### Patch Changes - Support Yarn Plug'n'Play. ([#1964](#1964)) ## @lynx-js/web-core@0.19.0 ### Minor Changes - feat: new flex:val impl ([#1979](#1979)) ### Patch Changes - Updated dependencies \[[`40c3a1a`](40c3a1a), [`46bd5ee`](46bd5ee)]: - @lynx-js/web-mainthread-apis@0.19.0 - @lynx-js/web-worker-runtime@0.19.0 - @lynx-js/web-constants@0.19.0 - @lynx-js/web-worker-rpc@0.19.0 ## @lynx-js/web-elements@0.9.0 ### Minor Changes - feat: new flex:val impl ([#1979](#1979)) ### Patch Changes - fix: x-input display should add !important to avoid override ([#1960](#1960)) - Updated dependencies \[]: - @lynx-js/web-elements-template@0.9.0 ## @lynx-js/rspeedy@0.12.1 ### Patch Changes - Bump Rsbuild v1.6.9 with Rspack v1.6.5. ([#1967](#1967)) - Updated dependencies \[]: - @lynx-js/web-rsbuild-server-middleware@0.19.0 ## create-rspeedy@0.12.1 ### Patch Changes - Bump `@rsbuild/plugin-type-check` v1.3.1. ([#1964](#1964)) ## @lynx-js/lynx-bundle-rslib-config@0.0.1 ### Patch Changes - Add `@lynx-js/lynx-bundle-rslib-config` for bundling Lynx bundle with [Rslib](https://rslib.rs/): ([#1943](#1943)) ```js // rslib.config.js import { defineExternalBundleRslibConfig } from "@lynx-js/lynx-bundle-rslib-config"; export default defineExternalBundleRslibConfig({ id: "utils-lib", source: { entry: { utils: "./src/utils.ts", }, }, }); ``` ## @lynx-js/web-constants@0.19.0 ### Patch Changes - Updated dependencies \[]: - @lynx-js/web-worker-rpc@0.19.0 ## @lynx-js/web-explorer@0.0.14 ### Patch Changes - chore: update web-elements version of web-explorer ([#1962](#1962)) ## @lynx-js/web-mainthread-apis@0.19.0 ### Patch Changes - fix: capture and bind event listener should be trigger correctly ([#1972](#1972)) - fix: the l-p-comp-uid of page should be '1' ([#1970](#1970)) - Updated dependencies \[]: - @lynx-js/web-constants@0.19.0 ## @lynx-js/web-worker-runtime@0.19.0 ### Patch Changes - Updated dependencies \[[`40c3a1a`](40c3a1a), [`46bd5ee`](46bd5ee)]: - @lynx-js/web-mainthread-apis@0.19.0 - @lynx-js/web-constants@0.19.0 - @lynx-js/web-worker-rpc@0.19.0 ## @lynx-js/css-extract-webpack-plugin@0.6.5 ### Patch Changes - Set main thread JS basename to `lepusCode.filename` in tasm encode data. It will ensure a filename is reported on MTS error without devtools enabled. ([#1949](#1949)) ## @lynx-js/template-webpack-plugin@0.9.2 ### Patch Changes - Set main thread JS basename to `lepusCode.filename` in tasm encode data. It will ensure a filename is reported on MTS error without devtools enabled. ([#1949](#1949)) - Upgrade `@lynx-js/tasm` to `0.0.20`. ([#1943](#1943)) - refactor: move web style info generation to the encode phase ([#1975](#1975)) ## upgrade-rspeedy@0.12.1 ## @lynx-js/web-core-server@0.19.0 ## @lynx-js/web-elements-template@0.9.0 ## @lynx-js/web-rsbuild-server-middleware@0.19.0 ## @lynx-js/web-worker-rpc@0.19.0 Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
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.115.0 ### Minor Changes - **BREAKING CHANGE**: Delay the `createSnapshot` operation to `Snapshot` constructor to speed up IFR. ([lynx-family#1899](lynx-family#1899)) This change refactors how snapshots are created and registered: - Removed the `entryUniqID` function - Snapshots are now lazily created via `snapshotCreatorMap` instead of eagerly at bundle load time - Snapshot IDs are generated at compile time and only prefixed with `${globDynamicComponentEntry}:` for standalone lazy bundles **⚠️ Lazy Bundle Compatibility:** - **Backward compatibility (new runtime → old lazy bundles)**: ✅ **Supported**. Old lazy bundles will work with the new runtime. - **Forward compatibility (old runtime → new lazy bundles)**: ❌ **NOT Supported**. Lower version consumers **will not be able to load lazy bundles produced by this version** due to the changed snapshot creation mechanism. **Migration guidance**: If you are using lazy bundles, ensure all consumers are upgraded to this version or later **before** deploying lazy bundles built with this version. For monorepo setups, coordinate the upgrade across all consuming applications. ### Patch Changes - Preserve assignments to webpack runtime variables like `__webpack_public_path__`, `__webpack_require__.p`, etc. ([lynx-family#1958](lynx-family#1958)) - Fixed blank screen issues with nested lists. Lazily created nested lists were being flushed but not properly recorded, causing rendering failures. ([lynx-family#1963](lynx-family#1963)) - fix: export `createRef` and `useRef` from `@lynx-js/react/legacy-react-runtime` ([lynx-family#1953](lynx-family#1953)) ## @lynx-js/react-rsbuild-plugin@0.12.0 ### Minor Changes - **BREAKING CHANGE**: Require `@lynx-js/rspeedy` 0.12.0. ([lynx-family#1951](lynx-family#1951)) ### Patch Changes - Support Yarn Plug'n'Play. ([lynx-family#1964](lynx-family#1964)) - Updated dependencies \[[`738d44d`](lynx-family@738d44d), [`5bbb439`](lynx-family@5bbb439), [`3692a16`](lynx-family@3692a16), [`d2e290b`](lynx-family@d2e290b), [`738d44d`](lynx-family@738d44d)]: - @lynx-js/react-alias-rsbuild-plugin@0.12.0 - @lynx-js/css-extract-webpack-plugin@0.6.5 - @lynx-js/template-webpack-plugin@0.9.2 - @lynx-js/use-sync-external-store@1.5.0 - @lynx-js/react-refresh-webpack-plugin@0.3.4 - @lynx-js/react-webpack-plugin@0.7.2 ## @lynx-js/react-alias-rsbuild-plugin@0.12.0 ### Minor Changes - **BREAKING CHANGE**: Use resolver from Rspack. ([lynx-family#1964](lynx-family#1964)) The `createLazyResolver` now requires an `rspack` parameter: ```diff - function createLazyResolver(directory: string, conditionNames: string[]): (request: string) => Promise<string>; + function createLazyResolver(rspack: rspack, directory: string, conditionNames: string[]): (request: string) => Promise<string>; ``` ### Patch Changes - Support Yarn Plug'n'Play. ([lynx-family#1964](lynx-family#1964)) ## @lynx-js/web-core@0.19.0 ### Minor Changes - feat: new flex:val impl ([lynx-family#1979](lynx-family#1979)) ### Patch Changes - Updated dependencies \[[`40c3a1a`](lynx-family@40c3a1a), [`46bd5ee`](lynx-family@46bd5ee)]: - @lynx-js/web-mainthread-apis@0.19.0 - @lynx-js/web-worker-runtime@0.19.0 - @lynx-js/web-constants@0.19.0 - @lynx-js/web-worker-rpc@0.19.0 ## @lynx-js/web-elements@0.9.0 ### Minor Changes - feat: new flex:val impl ([lynx-family#1979](lynx-family#1979)) ### Patch Changes - fix: x-input display should add !important to avoid override ([lynx-family#1960](lynx-family#1960)) - Updated dependencies \[]: - @lynx-js/web-elements-template@0.9.0 ## @lynx-js/rspeedy@0.12.1 ### Patch Changes - Bump Rsbuild v1.6.9 with Rspack v1.6.5. ([lynx-family#1967](lynx-family#1967)) - Updated dependencies \[]: - @lynx-js/web-rsbuild-server-middleware@0.19.0 ## create-rspeedy@0.12.1 ### Patch Changes - Bump `@rsbuild/plugin-type-check` v1.3.1. ([lynx-family#1964](lynx-family#1964)) ## @lynx-js/lynx-bundle-rslib-config@0.0.1 ### Patch Changes - Add `@lynx-js/lynx-bundle-rslib-config` for bundling Lynx bundle with [Rslib](https://rslib.rs/): ([lynx-family#1943](lynx-family#1943)) ```js // rslib.config.js import { defineExternalBundleRslibConfig } from "@lynx-js/lynx-bundle-rslib-config"; export default defineExternalBundleRslibConfig({ id: "utils-lib", source: { entry: { utils: "./src/utils.ts", }, }, }); ``` ## @lynx-js/web-constants@0.19.0 ### Patch Changes - Updated dependencies \[]: - @lynx-js/web-worker-rpc@0.19.0 ## @lynx-js/web-explorer@0.0.14 ### Patch Changes - chore: update web-elements version of web-explorer ([lynx-family#1962](lynx-family#1962)) ## @lynx-js/web-mainthread-apis@0.19.0 ### Patch Changes - fix: capture and bind event listener should be trigger correctly ([lynx-family#1972](lynx-family#1972)) - fix: the l-p-comp-uid of page should be '1' ([lynx-family#1970](lynx-family#1970)) - Updated dependencies \[]: - @lynx-js/web-constants@0.19.0 ## @lynx-js/web-worker-runtime@0.19.0 ### Patch Changes - Updated dependencies \[[`40c3a1a`](lynx-family@40c3a1a), [`46bd5ee`](lynx-family@46bd5ee)]: - @lynx-js/web-mainthread-apis@0.19.0 - @lynx-js/web-constants@0.19.0 - @lynx-js/web-worker-rpc@0.19.0 ## @lynx-js/css-extract-webpack-plugin@0.6.5 ### Patch Changes - Set main thread JS basename to `lepusCode.filename` in tasm encode data. It will ensure a filename is reported on MTS error without devtools enabled. ([lynx-family#1949](lynx-family#1949)) ## @lynx-js/template-webpack-plugin@0.9.2 ### Patch Changes - Set main thread JS basename to `lepusCode.filename` in tasm encode data. It will ensure a filename is reported on MTS error without devtools enabled. ([lynx-family#1949](lynx-family#1949)) - Upgrade `@lynx-js/tasm` to `0.0.20`. ([lynx-family#1943](lynx-family#1943)) - refactor: move web style info generation to the encode phase ([lynx-family#1975](lynx-family#1975)) ## upgrade-rspeedy@0.12.1 ## @lynx-js/web-core-server@0.19.0 ## @lynx-js/web-elements-template@0.9.0 ## @lynx-js/web-rsbuild-server-middleware@0.19.0 ## @lynx-js/web-worker-rpc@0.19.0 Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Summary by CodeRabbit
Bug Fixes
Tests
✏️ Tip: You can customize this high-level summary in your review settings.
Checklist