Skip to content

chore: Release 2025-03-02 12:59:58#1

Merged
colinaaa merged 1 commit intomainfrom
changeset-release/main
Mar 2, 2025
Merged

chore: Release 2025-03-02 12:59:58#1
colinaaa merged 1 commit intomainfrom
changeset-release/main

Conversation

@github-actions
Copy link
Copy Markdown
Contributor

@github-actions github-actions bot commented Mar 2, 2025

This PR was opened by the Changesets release 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.105.0

Minor Changes

  • 1abf8f0: Support estimated-main-axis-size-px

    NOTE: This changes behavior of transformReactLynx so certain features (like lazy bundle) will be BROKEN if version mismatch.

  • 1abf8f0: Support JSXSpread on <list-item/> component.

    NOTE: This changes behavior of transformReactLynx so certain features (like lazy bundle) will be BROKEN if version mismatch.

Patch Changes

  • 1abf8f0: Update readme.
  • 1abf8f0: Save some bytes if <page/> is not used.

@lynx-js/react-rsbuild-plugin@0.9.0

Minor Changes

  • 1abf8f0: The targetSdkVersion has been deprecated. Please use engineVersion instead, as targetSdkVersion is now an alias for engineVersion.

Patch Changes

  • 1abf8f0: feat: pass options to CssExtractPlugin
  • 1abf8f0: Be compat with @lynx-js/react v0.105.0
  • 1abf8f0: Set the default targetSdkVersion to 3.2.
  • Updated dependencies [1abf8f0]
  • Updated dependencies [1abf8f0]
  • Updated dependencies [1abf8f0]
  • Updated dependencies [1abf8f0]
  • Updated dependencies [1abf8f0]
  • Updated dependencies [1abf8f0]
    • @lynx-js/template-webpack-plugin@0.6.3
    • @lynx-js/react-webpack-plugin@0.6.6
    • @lynx-js/css-extract-webpack-plugin@0.5.0
    • @lynx-js/runtime-wrapper-webpack-plugin@0.0.7
    • @lynx-js/web-webpack-plugin@0.6.1
    • @lynx-js/react-alias-rsbuild-plugin@0.9.0
    • @lynx-js/react-refresh-webpack-plugin@0.3.1

@lynx-js/web-constants@0.7.0

Minor Changes

  • 1abf8f0: feat(web):

    This is a breaking change

    1. A new param for lynx-view: nativeModulesUrl, which allows you to pass an esm url to add a new module to NativeModules. And we bind the nativeModulesCall method to each function on the module, run this.nativeModulesCall() to trigger onNativeModulesCall.
    export type NativeModuleHandlerContext = {
      nativeModulesCall: (name: string, data: Cloneable) => Promise<Cloneable>;
    };

    a simple case:

    lynxView.nativeModules = URL.createObjectURL(
      new Blob(
        [
          `export default {
      myNativeModules: {
        async getColor(data, callback) {
          // trigger onNativeModulesCall and get the result
          const color = await this.nativeModulesCall('getColor', data);
          // return the result to caller
          callback(color);
        },
      }
    };`,
        ],
        { type: "text/javascript" }
      )
    );
    1. onNativeModulesCall is no longer the value handler of NativeModules.bridge.call, it will be the value handler of all NativeModules modules.

    Warning: This is a breaking change.

    Before this commit, you listen to NativeModules.bridge.call('getColor') like this:

    lynxView.onNativeModulesCall = (name, data, callback) => {
      if (name === "getColor") {
        callback(data.color);
      }
    };

    Now you should use it like this:

    lynxView.onNativeModulesCall = (name, data, moduleName) => {
      if (name === "getColor" && moduleName === "bridge") {
        return data.color;
      }
    };

    You need to use moduleName to determine the NativeModules-module. And you don’t need to run callback, just return the result!

Patch Changes

  • @lynx-js/web-worker-rpc@0.7.0

@lynx-js/web-core@0.7.0

Minor Changes

  • 1abf8f0: feat(web):

    This is a breaking change

    1. A new param for lynx-view: nativeModulesUrl, which allows you to pass an esm url to add a new module to NativeModules. And we bind the nativeModulesCall method to each function on the module, run this.nativeModulesCall() to trigger onNativeModulesCall.
    export type NativeModuleHandlerContext = {
      nativeModulesCall: (name: string, data: Cloneable) => Promise<Cloneable>;
    };

    a simple case:

    lynxView.nativeModules = URL.createObjectURL(
      new Blob(
        [
          `export default {
      myNativeModules: {
        async getColor(data, callback) {
          // trigger onNativeModulesCall and get the result
          const color = await this.nativeModulesCall('getColor', data);
          // return the result to caller
          callback(color);
        },
      }
    };`,
        ],
        { type: "text/javascript" }
      )
    );
    1. onNativeModulesCall is no longer the value handler of NativeModules.bridge.call, it will be the value handler of all NativeModules modules.

    Warning: This is a breaking change.

    Before this commit, you listen to NativeModules.bridge.call('getColor') like this:

    lynxView.onNativeModulesCall = (name, data, callback) => {
      if (name === "getColor") {
        callback(data.color);
      }
    };

    Now you should use it like this:

    lynxView.onNativeModulesCall = (name, data, moduleName) => {
      if (name === "getColor" && moduleName === "bridge") {
        return data.color;
      }
    };

    You need to use moduleName to determine the NativeModules-module. And you don’t need to run callback, just return the result!

Patch Changes

  • Updated dependencies [1abf8f0]
    • @lynx-js/web-worker-runtime@0.7.0
    • @lynx-js/web-constants@0.7.0
    • @lynx-js/web-worker-rpc@0.7.0

@lynx-js/web-worker-runtime@0.7.0

Minor Changes

  • 1abf8f0: feat(web):

    This is a breaking change

    1. A new param for lynx-view: nativeModulesUrl, which allows you to pass an esm url to add a new module to NativeModules. And we bind the nativeModulesCall method to each function on the module, run this.nativeModulesCall() to trigger onNativeModulesCall.
    export type NativeModuleHandlerContext = {
      nativeModulesCall: (name: string, data: Cloneable) => Promise<Cloneable>;
    };

    a simple case:

    lynxView.nativeModules = URL.createObjectURL(
      new Blob(
        [
          `export default {
      myNativeModules: {
        async getColor(data, callback) {
          // trigger onNativeModulesCall and get the result
          const color = await this.nativeModulesCall('getColor', data);
          // return the result to caller
          callback(color);
        },
      }
    };`,
        ],
        { type: "text/javascript" }
      )
    );
    1. onNativeModulesCall is no longer the value handler of NativeModules.bridge.call, it will be the value handler of all NativeModules modules.

    Warning: This is a breaking change.

    Before this commit, you listen to NativeModules.bridge.call('getColor') like this:

    lynxView.onNativeModulesCall = (name, data, callback) => {
      if (name === "getColor") {
        callback(data.color);
      }
    };

    Now you should use it like this:

    lynxView.onNativeModulesCall = (name, data, moduleName) => {
      if (name === "getColor" && moduleName === "bridge") {
        return data.color;
      }
    };

    You need to use moduleName to determine the NativeModules-module. And you don’t need to run callback, just return the result!

Patch Changes

  • Updated dependencies [1abf8f0]
    • @lynx-js/web-constants@0.7.0
    • @lynx-js/web-mainthread-apis@0.7.0
    • @lynx-js/web-worker-rpc@0.7.0

@lynx-js/css-extract-webpack-plugin@0.5.0

Minor Changes

  • 1abf8f0: Use compilation hash for css.hot-update.json to avoid cache.

Patch Changes

  • 1abf8f0: Set the default targetSdkVersion to 3.2.

@lynx-js/rspeedy@0.8.2

Patch Changes

  • 1abf8f0: feat(rspeedy): support generateStatsFile
  • 1abf8f0: Bump Rsbuild v1.2.11 with Rspack v1.2.3

create-rspeedy@0.8.2

Patch Changes

  • 1abf8f0: Bump @lynx-js/types to ^3.2.0.
  • 1abf8f0: Bump create-rstack to v1.3.0
  • 1abf8f0: Update Lynx and ReactLynx logo.
  • 1abf8f0: Update readme.

@lynx-js/qrcode-rsbuild-plugin@0.3.3

Patch Changes

@lynx-js/web-elements@0.2.4

Patch Changes

  • 1abf8f0: feat: inline-text is deprecated, now you can use x-text instead in x-text.

  • 1abf8f0: fix: Removed the list-item style contain: strict. Previously we thought it would affect content-visibility: auto, but it turns out that this is wrong.

    Now, you don't need to specify the width and height of list-item, it will be stretched by the child elements.

  • 1abf8f0: fix: do truncation layout calculation after fonts loaded

  • 1abf8f0: refractor: x-foldview-ng gesture use pageX&pageY to replace the screenX&screenY

  • 1abf8f0: fix: x-input should inherit color style

  • 1abf8f0: feat: inline-image is deprecated, now you can use x-image instead in x-text.

@lynx-js/web-explorer@0.0.1

Patch Changes

  • 1abf8f0: feat: add a install prompt dialog

    We will detect if the PWA installation is supported by current UA.
    If yes, we will show a tiny banner at the bottom of app to encourage user install us on their homepage.

  • 1abf8f0: fix: the GO button

  • 1abf8f0: feat: add nav banner

  • 1abf8f0: fix: publish manifest.json

  • 1abf8f0: fix: publish essential files

  • 1abf8f0: feat: support auto theme and update new home page

@lynx-js/web-mainthread-apis@0.7.0

Patch Changes

  • Updated dependencies [1abf8f0]
    • @lynx-js/web-constants@0.7.0

@lynx-js/react-webpack-plugin@0.6.6

Patch Changes

  • 1abf8f0: Be compat with @lynx-js/react v0.105.0
  • 1abf8f0: Improve compilation performance by avoid using compilation.updateAsset.

@lynx-js/runtime-wrapper-webpack-plugin@0.0.7

Patch Changes

  • 1abf8f0: Set the default targetSdkVersion to 3.2.

@lynx-js/template-webpack-plugin@0.6.3

Patch Changes

  • 1abf8f0: Set the default value of enableNativeList to true.

  • 1abf8f0: Add entryNames parameter to beforeEncode hook.

    import { LynxTemplatePlugin } from "@lynx-js/template-webpack-plugin";
    
    const hooks = LynxTemplatePlugin.getLynxTemplatePluginHooks(compilation);
    hooks.beforeEncode.tap("MyPlugin", ({ entryNames }) => {
      console.log(entryNames);
    });
  • 1abf8f0: Set the default targetSdkVersion to 3.2.

@lynx-js/react-alias-rsbuild-plugin@0.9.0

@lynx-js/web-worker-rpc@0.7.0

@github-actions github-actions bot force-pushed the changeset-release/main branch from 71336fa to ce70419 Compare March 2, 2025 11:20
@github-actions github-actions bot changed the title chore: Release 2025-03-02 11:20:07 chore: Release 2025-03-02 12:54:02 Mar 2, 2025
@github-actions github-actions bot force-pushed the changeset-release/main branch from ce70419 to 44146e0 Compare March 2, 2025 12:54
@github-actions github-actions bot changed the title chore: Release 2025-03-02 12:54:02 chore: Release 2025-03-02 12:59:58 Mar 2, 2025
@github-actions github-actions bot force-pushed the changeset-release/main branch from 44146e0 to 9f6c29f Compare March 2, 2025 13:00
Copy link
Copy Markdown
Collaborator

@colinaaa colinaaa left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🚀

@colinaaa colinaaa merged commit b953f8b into main Mar 2, 2025
@colinaaa colinaaa deleted the changeset-release/main branch March 2, 2025 13:21
upupming added a commit that referenced this pull request Jan 4, 2026
<!--
  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. -->

Solves #2045

An example log from our examples/react package is as below.

First screen:

<details>

```log
[BackgroundThread Component Render] name: Fragment, uniqID: undefined, __id: undefined
main-thread.js:3421 [ReactLynxDebug] FiberElement API call #1: __CreatePage("0", 0) => page#10
main-thread.js:3421 [ReactLynxDebug] FiberElement API call #2: __GetElementUniqueID(page#10) => 10
main-thread.js:3421 [ReactLynxDebug] FiberElement API call #3: __SetCSSId([page#10], 0)
main-thread.js:3460 [MainThread Component Render] name: App
main-thread.js:3421 [ReactLynxDebug] FiberElement API call #4: __CreateView(10) => view#11
main-thread.js:3421 [ReactLynxDebug] FiberElement API call #5: __CreateView(10) => view#12
main-thread.js:3421 [ReactLynxDebug] FiberElement API call #6: __SetClasses(view#12, "Background")
main-thread.js:3421 [ReactLynxDebug] FiberElement API call #7: __AppendElement(view#11, view#12) => view#12
main-thread.js:3421 [ReactLynxDebug] FiberElement API call #8: __CreateView(10) => view#13
main-thread.js:3421 [ReactLynxDebug] FiberElement API call #9: __SetClasses(view#13, "App")
main-thread.js:3421 [ReactLynxDebug] FiberElement API call #10: __AppendElement(view#11, view#13) => view#13
main-thread.js:3421 [ReactLynxDebug] FiberElement API call #11: __CreateView(10) => view#14
main-thread.js:3421 [ReactLynxDebug] FiberElement API call #12: __SetClasses(view#14, "Banner")
main-thread.js:3421 [ReactLynxDebug] FiberElement API call #13: __AppendElement(view#13, view#14) => view#14
main-thread.js:3421 [ReactLynxDebug] FiberElement API call #14: __CreateWrapperElement(10) => wrapper#15
main-thread.js:3421 [ReactLynxDebug] FiberElement API call #15: __AppendElement(view#14, wrapper#15) => wrapper#15
main-thread.js:3421 [ReactLynxDebug] FiberElement API call #16: __CreateText(10) => text#16
main-thread.js:3421 [ReactLynxDebug] FiberElement API call #17: __SetClasses(text#16, "Title")
main-thread.js:3421 [ReactLynxDebug] FiberElement API call #18: __SetAttribute(text#16, "text", "React")
main-thread.js:3421 [ReactLynxDebug] FiberElement API call #19: __AppendElement(view#14, text#16) => text#16
main-thread.js:3421 [ReactLynxDebug] FiberElement API call #20: __CreateText(10) => text#17
main-thread.js:3421 [ReactLynxDebug] FiberElement API call #21: __SetClasses(text#17, "Subtitle")
main-thread.js:3421 [ReactLynxDebug] FiberElement API call #22: __SetAttribute(text#17, "text", "on Lynx")
main-thread.js:3421 [ReactLynxDebug] FiberElement API call #23: __AppendElement(view#14, text#17) => text#17
main-thread.js:3421 [ReactLynxDebug] FiberElement API call #24: __CreateView(10) => view#18
main-thread.js:3421 [ReactLynxDebug] FiberElement API call #25: __SetClasses(view#18, "Content")
main-thread.js:3421 [ReactLynxDebug] FiberElement API call #26: __AppendElement(view#13, view#18) => view#18
main-thread.js:3421 [ReactLynxDebug] FiberElement API call #27: __CreateImage(10) => image#19
main-thread.js:3421 [ReactLynxDebug] FiberElement API call #28: __SetClasses(image#19, "Arrow")
main-thread.js:3421 [ReactLynxDebug] FiberElement API call #29: __AppendElement(view#18, image#19) => image#19
main-thread.js:3421 [ReactLynxDebug] FiberElement API call #30: __CreateText(10) => text#20
main-thread.js:3421 [ReactLynxDebug] FiberElement API call #31: __SetClasses(text#20, "Description")
main-thread.js:3421 [ReactLynxDebug] FiberElement API call #32: __SetAttribute(text#20, "text", "Tap the logo and have fun!")
main-thread.js:3421 [ReactLynxDebug] FiberElement API call #33: __AppendElement(view#18, text#20) => text#20
main-thread.js:3421 [ReactLynxDebug] FiberElement API call #34: __CreateText(10) => text#21
main-thread.js:3421 [ReactLynxDebug] FiberElement API call #35: __SetClasses(text#21, "Hint")
main-thread.js:3421 [ReactLynxDebug] FiberElement API call #36: __AppendElement(view#18, text#21) => text#21
main-thread.js:3421 [ReactLynxDebug] FiberElement API call #37: __CreateRawText("Edit") => raw-text#22
main-thread.js:3421 [ReactLynxDebug] FiberElement API call #38: __AppendElement(text#21, raw-text#22) => raw-text#22
main-thread.js:3421 [ReactLynxDebug] FiberElement API call #39: __CreateWrapperElement(10) => wrapper#23
main-thread.js:3421 [ReactLynxDebug] FiberElement API call #40: __AppendElement(text#21, wrapper#23) => wrapper#23
main-thread.js:3421 [ReactLynxDebug] FiberElement API call #41: __CreateRawText("to see updates!") => raw-text#24
main-thread.js:3421 [ReactLynxDebug] FiberElement API call #42: __AppendElement(text#21, raw-text#24) => raw-text#24
main-thread.js:3421 [ReactLynxDebug] FiberElement API call #43: __CreateView(10) => view#25
main-thread.js:3421 [ReactLynxDebug] FiberElement API call #44: __SetInlineStyles(view#25, "flex:1")
main-thread.js:3421 [ReactLynxDebug] FiberElement API call #45: __AppendElement(view#13, view#25) => view#25
main-thread.js:3421 [ReactLynxDebug] FiberElement API call #46: __AppendElement(page#10, view#11) => view#11
main-thread.js:3421 [ReactLynxDebug] FiberElement API call #47: __SetAttribute(image#19, "src", "http://1.1.1.1:3000/static/image/arrow.aee54ba7.png")
main-thread.js:3421 [ReactLynxDebug] FiberElement API call #48: __CreateView(10) => view#26
main-thread.js:3421 [ReactLynxDebug] FiberElement API call #49: __SetClasses(view#26, "Logo")
main-thread.js:3421 [ReactLynxDebug] FiberElement API call #50: __ReplaceElement(view#26, wrapper#15)
main-thread.js:3421 [ReactLynxDebug] FiberElement API call #51: __AddEvent(view#26, "bindEvent", "tap", "-3:0:")
main-thread.js:3421 [ReactLynxDebug] FiberElement API call #52: __CreateImage(10) => image#27
main-thread.js:3421 [ReactLynxDebug] FiberElement API call #53: __SetClasses(image#27, "Logo--lynx")
main-thread.js:3421 [ReactLynxDebug] FiberElement API call #54: __AppendElement(view#26, image#27) => image#27
main-thread.js:3421 [ReactLynxDebug] FiberElement API call #55: __SetAttribute(image#27, "src", "http://1.1.1.1:3000/static/image/lynx-logo.620eb8d1.png")
main-thread.js:3421 [ReactLynxDebug] FiberElement API call #56: __CreateText(10) => text#28
main-thread.js:3421 [ReactLynxDebug] FiberElement API call #57: __SetInlineStyles(text#28, "font-style:italic;color:rgba(255, 255, 255, 0.85)")
main-thread.js:3421 [ReactLynxDebug] FiberElement API call #58: __ReplaceElement(text#28, wrapper#23)
main-thread.js:3421 [ReactLynxDebug] FiberElement API call #59: __CreateRawText("") => raw-text#29
main-thread.js:3421 [ReactLynxDebug] FiberElement API call #60: __SetAttribute(raw-text#29, "text", " src/App.tsx ")
main-thread.js:3421 [ReactLynxDebug] FiberElement API call #61: __AppendElement(text#28, raw-text#29) => raw-text#29
main-thread.js:3421 [ReactLynxDebug] FiberElement API call #62: __OnLifecycleEvent(["rLynxFirstScreen", {"root":"{\"id\":-1,\"type\":\"root\",\"children\":[{\"id\":-5,\"type\":\"__snapshot_835da_b8ae7_1\",\"values\":[\"http://1.1.1.1:3000/static/image/arrow.aee54ba7.png\"],\"children\":[{\"id\":-3,\"type\":\"__snapshot_835da_b8ae7_2\",\"values\":[\"-3:0:\"],\"children\":[{\"id\":-2,\"type\":\"__snapshot_835da_b8ae7_4\",\"values\":[\"http://1.1.1.1:3000/static/image/lynx-logo.620eb8d1.png\"]}]},{\"id\":-4,\"type\":\"__snapshot_835da_b8ae7_5\",\"children\":[{\"id\":-6,\"type\":null,\"values\":[\" src/App.tsx \"]}]}]}]}","jsReadyEventIdSwap":{}}])
background.js:11351 [rspeedy-dev-server] Server started: Hot Module Replacement enabled, Live Reloading enabled, Progress disabled, Overlay disabled.
background.js:3564 [HMR] Waiting for update signal from WDS...
background.js:4476 [BackgroundThread Component Render] name: App, uniqID: __snapshot_835da_b8ae7_1, __id: 2
background.js:4476 [BackgroundThread Component Render] name: Fragment, uniqID: __snapshot_835da_b8ae7_1, __id: 2
background.js:214 Hello, ReactLynx
background.js:8011 [ReactLynxDebug] MTS -> BTS OnLifecycleEvent:
{
  "root": {
    "id": -1,
    "type": "root",
    "children": [
      {
        "id": -5,
        "type": "__snapshot_835da_b8ae7_1",
        "values": [
          "http://1.1.1.1:3000/static/image/arrow.aee54ba7.png"
        ],
        "children": [
          {
            "id": -3,
            "type": "__snapshot_835da_b8ae7_2",
            "values": [
              "-3:0:"
            ],
            "children": [
              {
                "id": -2,
                "type": "__snapshot_835da_b8ae7_4",
                "values": [
                  "http://1.1.1.1:3000/static/image/lynx-logo.620eb8d1.png"
                ]
              }
            ]
          },
          {
            "id": -4,
            "type": "__snapshot_835da_b8ae7_5",
            "children": [
              {
                "id": -6,
                "type": null,
                "values": [
                  " src/App.tsx "
                ]
              }
            ]
          }
        ]
      }
    ]
  },
  "jsReadyEventIdSwap": {}
}
main-thread.js:5801 [ReactLynxDebug] BTS -> MTS updateMainThread:
{
  "data": {
    "patchList": [
      {
        "snapshotPatch": [],
        "id": 2
      }
    ]
  },
  "patchOptions": {
    "isHydration": true,
    "reloadVersion": 0,
    "pipelineOptions": {
      "pipelineID": "0x16c567000_29",
      "needTimestamps": true,
      "pipelineOrigin": "reactLynxHydrate",
      "dsl": "reactLynx",
      "stage": "hydrate"
    }
  }
}
main-thread.js:3421 [ReactLynxDebug] FiberElement API call #63: __FlushElementTree(page#10, {"pipelineOptions":{"pipelineID":"0x16c567000_29","needTimestamps":true,"pipelineOrigin":"reactLynxHydrate","dsl":"reactLynx","stage":"hydrate"}})

```

</details>

Next update:

<details>

```log
[BackgroundThread Component Render] name: App, uniqID: __snapshot_835da_b8ae7_1, __id: -5
main-thread.js:5801 [ReactLynxDebug] BTS -> MTS updateMainThread:
{
  "data": {
    "patchList": [
      {
        "id": 3,
        "snapshotPatch": [
          {
            "op": "RemoveChild",
            "parentId": -3,
            "childId": -2
          },
          {
            "op": "CreateElement",
            "type": "__snapshot_835da_b8ae7_3",
            "id": 7
          },
          {
            "op": "SetAttributes",
            "id": 7,
            "values": [
              "http://1.1.1.1:3000/static/image/react-logo.75eb3837.png"
            ]
          },
          {
            "op": "InsertBefore",
            "parentId": -3,
            "childId": 7,
            "beforeId": null
          }
        ]
      }
    ]
  },
  "patchOptions": {
    "reloadVersion": 0,
    "pipelineOptions": {
      "pipelineID": "0x16c567000_30",
      "needTimestamps": false,
      "pipelineOrigin": "updateTriggeredByBts",
      "dsl": "reactLynx",
      "stage": "update"
    }
  }
}
main-thread.js:3421 [ReactLynxDebug] FiberElement API call #64: __RemoveElement(view#26, image#27) => image#27
main-thread.js:3421 [ReactLynxDebug] FiberElement API call #65: __CreateImage(10) => image#30
main-thread.js:3421 [ReactLynxDebug] FiberElement API call #66: __SetClasses(image#30, "Logo--react")
main-thread.js:3421 [ReactLynxDebug] FiberElement API call #67: __SetAttribute(image#30, "src", "http://1.1.1.1:3000/static/image/react-logo.75eb3837.png")
main-thread.js:3421 [ReactLynxDebug] FiberElement API call #68: __AppendElement(view#26, image#30) => image#30
main-thread.js:3421 [ReactLynxDebug] FiberElement API call #69: __FlushElementTree(page#10, {"pipelineOptions":{"pipelineID":"0x16c567000_30","needTimestamps":false,"pipelineOrigin":"updateTriggeredByBts","dsl":"reactLynx","stage":"update"}})
```

</details>

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

* **New Features**
* Enhanced debug logging: structured, dual-thread API-call, lifecycle
and hydration traces when debug mode is enabled.
* **Tests**
* Added and expanded tests and snapshots to validate richer logging,
API-call sequences, and hydration traces.
* **Chores**
* Development-only error messages now include a troubleshooting hint
recommending the debug-mode option for easier diagnosis.

<sub>✏️ Tip: You can customize this high-level summary in your review
settings.</sub>
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

## Checklist

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

- [x] Tests updated (or not required).
- [ ] Documentation updated (or not required).
- [x] Changeset added, and when a BREAKING CHANGE occurs, it needs to be
clearly marked (or not required).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant