Skip to content

feat(qrcode): support get entry from api exposed from rspeedy.env.entries#2551

Merged
luhc228 merged 1 commit into
lynx-family:mainfrom
spencerHT:feat/qrcode-entry
May 13, 2026
Merged

feat(qrcode): support get entry from api exposed from rspeedy.env.entries#2551
luhc228 merged 1 commit into
lynx-family:mainfrom
spencerHT:feat/qrcode-entry

Conversation

@spencerHT
Copy link
Copy Markdown
Contributor

@spencerHT spencerHT commented Apr 30, 2026

Summary by CodeRabbit

  • New Features

    • QR code plugin can now read entry configuration from an exposed runtime API, enabling flexible entry-point resolution alongside existing environment config.
  • Tests

    • Added unit and preview tests covering populated and empty exposed-entry scenarios to validate QR rendering and lifecycle behavior.
  • Documentation

    • Public API docs updated to include the new optional entries field on the exposed runtime API.
  • Chores

    • Added release metadata and build task ordering update for patch publications.

Checklist

  • 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).

@changeset-bot
Copy link
Copy Markdown

changeset-bot Bot commented Apr 30, 2026

🦋 Changeset detected

Latest commit: 55f78e5

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 4 packages
Name Type
@lynx-js/qrcode-rsbuild-plugin Patch
@lynx-js/rspeedy Patch
create-rspeedy Patch
upgrade-rspeedy Patch

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

@cla-assistant
Copy link
Copy Markdown

cla-assistant Bot commented Apr 30, 2026

CLA assistant check
All committers have signed the CLA.

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented Apr 30, 2026

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review
📝 Walkthrough

Walkthrough

Adds an optional entries?: RsbuildEntry to rspeedy’s exposed API, a helper to read rspeedy.env.entries (with fallback), updates the QR-code plugin to use those entries for startup/preview, adds tests for exposed and empty entries, updates API docs, a changeset, and a turbo.json build dependency.

Changes

rspeedy entries + QR-code plugin

Layer / File(s) Summary
Data Shape / API
packages/rspeedy/core/src/api.ts, packages/rspeedy/core/etc/rspeedy.api.md
Add import type { RsbuildEntry } from '@rsbuild/core' and optional entries?: RsbuildEntry to ExposedAPI.
Core Implementation
packages/rspeedy/plugin-qrcode/src/index.ts
Add getEntries(environments) to prefer api.useExposed<ExposedAPI>()?.entries with fallback environments['lynx']?.entry; change main signature to accept `entries: RsbuildEntry
Wiring / Integration
packages/rspeedy/plugin-qrcode/src/index.ts, packages/rspeedy/core/turbo.json
Invoke main(getEntries(environments), ...) for production and dev flows; insert "//#build" into packages/rspeedy/core/turbo.json build.dependsOn.
Tests / Fixtures
packages/rspeedy/plugin-qrcode/test/index.test.ts, packages/rspeedy/plugin-qrcode/test/preview.test.ts
Add pluginStubEnvEntries test helper exposing rspeedy.env.entries; add tests for printing/preview with exposed custom entries and with empty entries; update type imports to include RsbuildEntry.
Release Metadata
.changeset/wet-humans-teach.md
Add changeset noting patch releases and feature: support get entry from rspeedy.env.entries.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Possibly related PRs

Suggested reviewers

  • upupming
  • colinaaa

Poem

🐇 I hopped through envs to find the keys,
I fetched the entries with deft little ease.
QR codes now wake from a custom nest,
Tests clap their paws — the build runs best. 🥕✨

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 33.33% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The PR title clearly and specifically describes the main change: adding support for retrieving entry from an API exposed via rspeedy.env.entries for QR code functionality, which aligns with the core changes across multiple files.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Tip

💬 Introducing Slack Agent: The best way for teams to turn conversations into code.

Slack Agent is built on CodeRabbit's deep understanding of your code, so your team can collaborate across the entire SDLC without losing context.

  • Generate code and open pull requests
  • Plan features and break down work
  • Investigate incidents and troubleshoot customer tickets together
  • Automate recurring tasks and respond to alerts with triggers
  • Summarize progress and report instantly

Built for teams:

  • Shared memory across your entire org—no repeating context
  • Per-thread sandboxes to safely plan and execute work
  • Governance built-in—scoped access, auditability, and budget controls

One agent for your entire SDLC. Right inside Slack.

👉 Get started


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.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

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

🧹 Nitpick comments (2)
packages/rspeedy/plugin-qrcode/test/index.test.ts (1)

336-383: ⚡ Quick win

Strengthen the new exposed-entries test with an explicit URL assertion.

The new case verifies invocation count, but not the generated URL. Adding toBeCalledWith(...) will lock the contract this feature introduces.

✅ Suggested assertion
       await server.waitDevCompileDone()

       expect(renderUnicodeCompact).toBeCalledTimes(1)
+      expect(renderUnicodeCompact).toBeCalledWith(
+        'http://example.com/foo/main.lynx.bundle',
+      )
     })
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@packages/rspeedy/plugin-qrcode/test/index.test.ts` around lines 336 - 383,
Update the test 'print qrcode with exposed custom environment entries' to assert
the actual generated URL passed into renderUnicodeCompact: after
server.waitDevCompileDone(), add an expectation that renderUnicodeCompact was
called with the QR payload containing the full URL built from the
rsbuildConfig.dev.assetPrefix ('http://example.com/foo/') combined with the
exposed entry path ('hello-world' from the entry variable) so the test checks
renderUnicodeCompact (the mocked function) received the QR data that includes
the exact expected URL produced by pluginQRCode.
packages/rspeedy/plugin-qrcode/src/index.ts (1)

134-140: Use a dedicated exposed type for rspeedy.env.entries instead of ExposedAPI.

The symbol exposes only { entries?: RsbuildEntry }, but the current type parameter ExposedAPI declares a broader shape including other properties not exposed here. This violates strict TypeScript type safety by allowing potential access to non-existent properties.

Define a dedicated type for this exposure:

♻️ Suggested change
+type EnvEntriesExposedAPI = { entries?: RsbuildEntry }
+
 function getEntries(
   environments: Record<string, EnvironmentContext> | undefined,
 ) {
   // biome-ignore lint/correctness/useHookAtTopLevel: not react hooks
-  return api.useExposed<ExposedAPI>(Symbol.for('rspeedy.env.entries'))
+  return api.useExposed<EnvEntriesExposedAPI>(Symbol.for('rspeedy.env.entries'))
     ?.entries ?? environments?.['lynx']?.entry
 }
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@packages/rspeedy/plugin-qrcode/src/index.ts` around lines 134 - 140, The code
uses api.useExposed<ExposedAPI>(Symbol.for('rspeedy.env.entries')) in getEntries
which is too broad; define a narrow exposed type (e.g., EnvEntriesExposed with a
single optional property entries?: RsbuildEntry) and use that type as the
generic parameter instead of ExposedAPI so TypeScript only permits the actual
shape exposed by Symbol.for('rspeedy.env.entries'); update the getEntries call
to api.useExposed<EnvEntriesExposed>(Symbol.for('rspeedy.env.entries')) and add
the new type definition/import where appropriate.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Nitpick comments:
In `@packages/rspeedy/plugin-qrcode/src/index.ts`:
- Around line 134-140: The code uses
api.useExposed<ExposedAPI>(Symbol.for('rspeedy.env.entries')) in getEntries
which is too broad; define a narrow exposed type (e.g., EnvEntriesExposed with a
single optional property entries?: RsbuildEntry) and use that type as the
generic parameter instead of ExposedAPI so TypeScript only permits the actual
shape exposed by Symbol.for('rspeedy.env.entries'); update the getEntries call
to api.useExposed<EnvEntriesExposed>(Symbol.for('rspeedy.env.entries')) and add
the new type definition/import where appropriate.

In `@packages/rspeedy/plugin-qrcode/test/index.test.ts`:
- Around line 336-383: Update the test 'print qrcode with exposed custom
environment entries' to assert the actual generated URL passed into
renderUnicodeCompact: after server.waitDevCompileDone(), add an expectation that
renderUnicodeCompact was called with the QR payload containing the full URL
built from the rsbuildConfig.dev.assetPrefix ('http://example.com/foo/')
combined with the exposed entry path ('hello-world' from the entry variable) so
the test checks renderUnicodeCompact (the mocked function) received the QR data
that includes the exact expected URL produced by pluginQRCode.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: e2ad2bc5-a22e-4ec7-931c-0091628c78ff

📥 Commits

Reviewing files that changed from the base of the PR and between 7abb0a9 and c5bccc2.

📒 Files selected for processing (5)
  • .changeset/wet-humans-teach.md
  • packages/rspeedy/core/src/api.ts
  • packages/rspeedy/plugin-qrcode/src/index.ts
  • packages/rspeedy/plugin-qrcode/test/index.test.ts
  • packages/rspeedy/plugin-qrcode/test/preview.test.ts

luhc228
luhc228 previously approved these changes Apr 30, 2026
@codecov
Copy link
Copy Markdown

codecov Bot commented Apr 30, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ All tests successful. No failed tests found.

📢 Thoughts on this report? Let us know!

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

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

🧹 Nitpick comments (1)
packages/rspeedy/core/src/api.ts (1)

57-60: ⚡ Quick win

Prefer a dedicated exposed type for rspeedy.env.entries instead of extending ExposedAPI.

ExposedAPI is documented for Symbol.for('rspeedy.api'), while entries is consumed from Symbol.for('rspeedy.env.entries'). Splitting these keeps the public contract clearer and avoids symbol/payload coupling.

♻️ Proposed refactor
 export interface ExposedAPI {
@@
-  /**
-   * Used for plugin qrcode get entry points from self-defined environments rather than default lynx environment.
-   */
-  entries?: RsbuildEntry
 }
+
+export interface EnvEntriesExposedAPI {
+  /**
+   * Entry points exposed via Symbol.for('rspeedy.env.entries').
+   */
+  entries?: RsbuildEntry
+}

And in packages/rspeedy/plugin-qrcode/src/index.ts, use EnvEntriesExposedAPI for api.useExposed(...).

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@packages/rspeedy/core/src/api.ts` around lines 57 - 60, Split the `entries?:
RsbuildEntry` field out of `ExposedAPI` into a dedicated exported interface
(e.g., `EnvEntriesExposedAPI`) so `rspeedy.env.entries` has its own public type;
update the definition to export `EnvEntriesExposedAPI` with `entries?:
RsbuildEntry`, remove `entries` from `ExposedAPI`, and change usages such as
`api.useExposed(...)` in `packages/rspeedy/plugin-qrcode/src/index.ts` to refer
to `EnvEntriesExposedAPI` instead of `ExposedAPI`.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Nitpick comments:
In `@packages/rspeedy/core/src/api.ts`:
- Around line 57-60: Split the `entries?: RsbuildEntry` field out of
`ExposedAPI` into a dedicated exported interface (e.g., `EnvEntriesExposedAPI`)
so `rspeedy.env.entries` has its own public type; update the definition to
export `EnvEntriesExposedAPI` with `entries?: RsbuildEntry`, remove `entries`
from `ExposedAPI`, and change usages such as `api.useExposed(...)` in
`packages/rspeedy/plugin-qrcode/src/index.ts` to refer to `EnvEntriesExposedAPI`
instead of `ExposedAPI`.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 5123b158-54e0-41a1-9d72-62b62cbdbc11

📥 Commits

Reviewing files that changed from the base of the PR and between 1b6eaf2 and 45a5eb6.

📒 Files selected for processing (6)
  • .changeset/wet-humans-teach.md
  • packages/rspeedy/core/etc/rspeedy.api.md
  • packages/rspeedy/core/src/api.ts
  • packages/rspeedy/plugin-qrcode/src/index.ts
  • packages/rspeedy/plugin-qrcode/test/index.test.ts
  • packages/rspeedy/plugin-qrcode/test/preview.test.ts
✅ Files skipped from review due to trivial changes (1)
  • packages/rspeedy/core/etc/rspeedy.api.md
🚧 Files skipped from review as they are similar to previous changes (3)
  • .changeset/wet-humans-teach.md
  • packages/rspeedy/plugin-qrcode/test/index.test.ts
  • packages/rspeedy/plugin-qrcode/test/preview.test.ts

luhc228
luhc228 previously approved these changes Apr 30, 2026
Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

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

🧹 Nitpick comments (2)
packages/rspeedy/core/src/api.ts (1)

57-60: ⚡ Quick win

Split symbol-specific exposed types instead of extending ExposedAPI

Line 57 introduces entries on ExposedAPI, but this field is read via Symbol.for('rspeedy.env.entries') (not Symbol.for('rspeedy.api')). Keeping both contracts in one interface dilutes type safety for both symbols.

Suggested refactor
 export interface ExposedAPI {
@@
-  /**
-   * Used for plugin qrcode get entry points from self-defined environments rather than default lynx environment.
-   */
-  entries?: RsbuildEntry
 }
+
+export interface ExposedEnvEntriesAPI {
+  /**
+   * Entry points exposed for environment-aware consumers (e.g. qrcode plugin).
+   */
+  entries?: RsbuildEntry
+}

And in packages/rspeedy/plugin-qrcode/src/index.ts:

api.useExposed<ExposedEnvEntriesAPI>(Symbol.for('rspeedy.env.entries'))?.entries
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@packages/rspeedy/core/src/api.ts` around lines 57 - 60, The ExposedAPI
interface incorrectly includes the symbol-specific field `entries` which is
actually provided under a different symbol; split out a dedicated interface
(e.g., ExposedEnvEntriesAPI) that declares `entries?: RsbuildEntry` and stop
adding `entries` to ExposedAPI; update consumers to read via the env symbol (for
example in packages/rspeedy/plugin-qrcode/src/index.ts call
api.useExposed<ExposedEnvEntriesAPI>(Symbol.for('rspeedy.env.entries'))?.entries)
so typing matches the symbol used to publish the data (refer to ExposedAPI,
entries, Symbol.for('rspeedy.env.entries'), ExposedEnvEntriesAPI and the
plugin-qrcode usage).
packages/rspeedy/plugin-qrcode/test/preview.test.ts (1)

291-325: ⚡ Quick win

Also assert no exit call in the empty-entries case

This scenario already checks renderUnicodeCompact is skipped; adding an exit assertion would lock in the same side-effect expectation as the no-lynx test and avoid silent regressions.

Suggested test addition
   const { server } = await rsbuild.preview({ checkDistDir: false })

   expect(renderUnicodeCompact).not.toBeCalled()

   await server.close()
+  expect(exit).not.toBeCalled()
 })
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@packages/rspeedy/plugin-qrcode/test/preview.test.ts` around lines 291 - 325,
Add an assertion that process.exit is not invoked in the "preview with empty
exposed entries" test: spy/mocking of process.exit before calling
rsbuild.preview (in the same test where renderUnicodeCompact is asserted not to
be called), run the preview and then assert the mocked process.exit was not
called (and restore the spy afterward); reference the existing test
variables/functions like createRsbuild, rsbuild.preview, renderUnicodeCompact,
and server.close to locate where to add the spy/assertion.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Nitpick comments:
In `@packages/rspeedy/core/src/api.ts`:
- Around line 57-60: The ExposedAPI interface incorrectly includes the
symbol-specific field `entries` which is actually provided under a different
symbol; split out a dedicated interface (e.g., ExposedEnvEntriesAPI) that
declares `entries?: RsbuildEntry` and stop adding `entries` to ExposedAPI;
update consumers to read via the env symbol (for example in
packages/rspeedy/plugin-qrcode/src/index.ts call
api.useExposed<ExposedEnvEntriesAPI>(Symbol.for('rspeedy.env.entries'))?.entries)
so typing matches the symbol used to publish the data (refer to ExposedAPI,
entries, Symbol.for('rspeedy.env.entries'), ExposedEnvEntriesAPI and the
plugin-qrcode usage).

In `@packages/rspeedy/plugin-qrcode/test/preview.test.ts`:
- Around line 291-325: Add an assertion that process.exit is not invoked in the
"preview with empty exposed entries" test: spy/mocking of process.exit before
calling rsbuild.preview (in the same test where renderUnicodeCompact is asserted
not to be called), run the preview and then assert the mocked process.exit was
not called (and restore the spy afterward); reference the existing test
variables/functions like createRsbuild, rsbuild.preview, renderUnicodeCompact,
and server.close to locate where to add the spy/assertion.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: dcd7ae6c-ea29-4484-9522-26d6947c9203

📥 Commits

Reviewing files that changed from the base of the PR and between 45a5eb6 and 862c452.

📒 Files selected for processing (6)
  • .changeset/wet-humans-teach.md
  • packages/rspeedy/core/etc/rspeedy.api.md
  • packages/rspeedy/core/src/api.ts
  • packages/rspeedy/plugin-qrcode/src/index.ts
  • packages/rspeedy/plugin-qrcode/test/index.test.ts
  • packages/rspeedy/plugin-qrcode/test/preview.test.ts
✅ Files skipped from review due to trivial changes (2)
  • .changeset/wet-humans-teach.md
  • packages/rspeedy/core/etc/rspeedy.api.md
🚧 Files skipped from review as they are similar to previous changes (2)
  • packages/rspeedy/plugin-qrcode/test/index.test.ts
  • packages/rspeedy/plugin-qrcode/src/index.ts

Comment thread packages/rspeedy/core/turbo.json
@codspeed-hq
Copy link
Copy Markdown

codspeed-hq Bot commented May 6, 2026

Merging this PR will degrade performance by 16.12%

⚠️ Different runtime environments detected

Some benchmarks with significant performance changes were compared across different runtime environments,
which may affect the accuracy of the results.

Open the report in CodSpeed to investigate

❌ 1 regressed benchmark
✅ 80 untouched benchmarks
⏩ 26 skipped benchmarks1

Warning

Please fix the performance issues or acknowledge them on CodSpeed.

Performance Changes

Benchmark BASE HEAD Efficiency
008-many-use-state-destroyBackground 8 ms 9.5 ms -16.12%

Tip

Investigate this regression by commenting @codspeedbot fix this regression on this PR, or directly use the CodSpeed MCP with your agent.


Comparing spencerHT:feat/qrcode-entry (55f78e5) with main (f98f7a1)

Open in CodSpeed

Footnotes

  1. 26 benchmarks were skipped, so the baseline results were used instead. If they were deleted from the codebase, click here and archive them to remove them from the performance reports.

@relativeci
Copy link
Copy Markdown

relativeci Bot commented May 6, 2026

React Example with Element Template

#417 Bundle Size — 197.79KiB (0%).

55f78e5(current) vs f98f7a1 main#409(baseline)

Bundle metrics  Change 2 changes
                 Current
#417
     Baseline
#409
No change  Initial JS 0B 0B
No change  Initial CSS 0B 0B
No change  Cache Invalidation 0% 0%
No change  Chunks 0 0
No change  Assets 4 4
Change  Modules 81(+2.53%) 79
No change  Duplicate Modules 23 23
Change  Duplicate Code 40.29%(-0.1%) 40.33%
No change  Packages 2 2
No change  Duplicate Packages 0 0
Bundle size by type  no changes
                 Current
#417
     Baseline
#409
No change  IMG 145.76KiB 145.76KiB
No change  Other 52.03KiB 52.03KiB

Bundle analysis reportBranch spencerHT:feat/qrcode-entryProject dashboard


Generated by RelativeCIDocumentationReport issue

@relativeci
Copy link
Copy Markdown

relativeci Bot commented May 6, 2026

React Example

#8150 Bundle Size — 236.51KiB (0%).

55f78e5(current) vs f98f7a1 main#8142(baseline)

Bundle metrics  no changes
                 Current
#8150
     Baseline
#8142
No change  Initial JS 0B 0B
No change  Initial CSS 0B 0B
No change  Cache Invalidation 0% 0%
No change  Chunks 0 0
No change  Assets 4 4
No change  Modules 197 197
No change  Duplicate Modules 80 80
No change  Duplicate Code 44.87% 44.87%
No change  Packages 2 2
No change  Duplicate Packages 0 0
Bundle size by type  no changes
                 Current
#8150
     Baseline
#8142
No change  IMG 145.76KiB 145.76KiB
No change  Other 90.75KiB 90.75KiB

Bundle analysis reportBranch spencerHT:feat/qrcode-entryProject dashboard


Generated by RelativeCIDocumentationReport issue

@relativeci
Copy link
Copy Markdown

relativeci Bot commented May 6, 2026

React MTF Example

#1283 Bundle Size — 207.46KiB (0%).

55f78e5(current) vs f98f7a1 main#1275(baseline)

Bundle metrics  no changes
                 Current
#1283
     Baseline
#1275
No change  Initial JS 0B 0B
No change  Initial CSS 0B 0B
No change  Cache Invalidation 0% 0%
No change  Chunks 0 0
No change  Assets 3 3
No change  Modules 192 192
No change  Duplicate Modules 77 77
No change  Duplicate Code 44.38% 44.38%
No change  Packages 2 2
No change  Duplicate Packages 0 0
Bundle size by type  no changes
                 Current
#1283
     Baseline
#1275
No change  IMG 111.23KiB 111.23KiB
No change  Other 96.23KiB 96.23KiB

Bundle analysis reportBranch spencerHT:feat/qrcode-entryProject dashboard


Generated by RelativeCIDocumentationReport issue

@relativeci
Copy link
Copy Markdown

relativeci Bot commented May 6, 2026

Web Explorer

#9725 Bundle Size — 901.38KiB (0%).

55f78e5(current) vs f98f7a1 main#9717(baseline)

Bundle metrics  Change 1 change
                 Current
#9725
     Baseline
#9717
No change  Initial JS 45.06KiB 45.06KiB
No change  Initial CSS 2.22KiB 2.22KiB
No change  Cache Invalidation 0% 0%
No change  Chunks 9 9
No change  Assets 11 11
No change  Modules 230 230
No change  Duplicate Modules 11 11
Change  Duplicate Code 27.22%(+0.04%) 27.21%
No change  Packages 10 10
No change  Duplicate Packages 0 0
Bundle size by type  no changes
                 Current
#9725
     Baseline
#9717
No change  JS 497.1KiB 497.1KiB
No change  Other 402.06KiB 402.06KiB
No change  CSS 2.22KiB 2.22KiB

Bundle analysis reportBranch spencerHT:feat/qrcode-entryProject dashboard


Generated by RelativeCIDocumentationReport issue

@relativeci
Copy link
Copy Markdown

relativeci Bot commented May 6, 2026

React External

#1265 Bundle Size — 693.04KiB (0%).

55f78e5(current) vs f98f7a1 main#1257(baseline)

Bundle metrics  no changes
                 Current
#1265
     Baseline
#1257
No change  Initial JS 0B 0B
No change  Initial CSS 0B 0B
No change  Cache Invalidation 0% 0%
No change  Chunks 0 0
No change  Assets 3 3
No change  Modules 17 17
No change  Duplicate Modules 5 5
No change  Duplicate Code 8.59% 8.59%
No change  Packages 0 0
No change  Duplicate Packages 0 0
Bundle size by type  no changes
                 Current
#1265
     Baseline
#1257
No change  Other 693.04KiB 693.04KiB

Bundle analysis reportBranch spencerHT:feat/qrcode-entryProject dashboard


Generated by RelativeCIDocumentationReport issue

@spencerHT
Copy link
Copy Markdown
Contributor Author

@upupming @colinaaa Please have a look ~

@spencerHT spencerHT force-pushed the feat/qrcode-entry branch from afba154 to 20611bd Compare May 13, 2026 08:16
@spencerHT spencerHT force-pushed the feat/qrcode-entry branch from 20611bd to 55f78e5 Compare May 13, 2026 08:18
@luhc228 luhc228 enabled auto-merge (squash) May 13, 2026 08:40
@luhc228 luhc228 merged commit ae67fd1 into lynx-family:main May 13, 2026
138 of 146 checks passed
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.

3 participants