Skip to content

fix(template): resolve css diagnostics sourcemaps per template#2519

Merged
luhc228 merged 1 commit into
mainfrom
fix/template-css-diagnostics-sourcemap
Apr 24, 2026
Merged

fix(template): resolve css diagnostics sourcemaps per template#2519
luhc228 merged 1 commit into
mainfrom
fix/template-css-diagnostics-sourcemap

Conversation

@luhc228
Copy link
Copy Markdown
Collaborator

@luhc228 luhc228 commented Apr 24, 2026

Summary by CodeRabbit

Release Notes

  • Bug Fixes

    • Improved CSS diagnostic error reporting and source map resolution to support multiple CSS source maps, enabling more accurate warning messages and file path mappings in webpack builds.
  • Tests

    • Added comprehensive test coverage for CSS diagnostics handling with multiple source maps and multi-entry builds.

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

Copilot AI review requested due to automatic review settings April 24, 2026 02:24
@changeset-bot
Copy link
Copy Markdown

changeset-bot Bot commented Apr 24, 2026

🦋 Changeset detected

Latest commit: d544afc

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

This PR includes changesets to release 0 packages

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

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

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented Apr 24, 2026

📝 Walkthrough

Walkthrough

This PR refactors CSS diagnostics source map handling in the template-webpack-plugin. The public API replaces webpack Compilation dependency with cssSourceMaps: string[] array input. CSS diagnostics are now propagated through encode and beforeEmit hooks as optional fields. Source map collection moves from webpack compilation introspection to explicit CSS chunk analysis via a new collectCSSSourceMapContents helper.

Changes

Cohort / File(s) Summary
Changeset metadata
.changeset/fix-template-css-diagnostics-sourcemap.md
New changeset file for documenting this fix release.
Public API
packages/webpack/template-webpack-plugin/etc/template-webpack-plugin.api.md
Updated ProcessTasmCSSDiagnosticsOptions to replace compilation with cssSourceMaps: string[]. Extended TemplateHooks.beforeEmit and TemplateHooks.encode payloads with optional cssDiagnostics?: string field.
Core plugin implementation
packages/webpack/template-webpack-plugin/src/LynxEncodePlugin.ts, packages/webpack/template-webpack-plugin/src/LynxTemplatePlugin.ts
Restructured encode→emit diagnostic flow to return and pass cssDiagnostics through hooks. Added collectCSSSourceMapContents import. Changed webpack warning stack handling from clearing to setting hideStack = true.
CSS diagnostics utilities
packages/webpack/template-webpack-plugin/src/cssDiagnostics.ts
Major refactor: replaced single source map with array of cssSourceMaps: string[]. Removed getMainCSSSourceMap() and added collectCSSSourceMapContents() helper. Updated resolveTasmCSSDiagnostics to iterate through multiple source maps. Changed JSON parsing to use unknown type before validation.
Test suite
packages/webpack/template-webpack-plugin/test/basic.test.ts, packages/webpack/template-webpack-plugin/test/cssDiagnostics.test.ts
Added comprehensive tests validating CSS diagnostics emission in beforeEmit hook with mocked and real webpack builds. Updated existing tests to use cssSourceMaps array parameter instead of Compilation. Added direct test for collectCSSSourceMapContents.
Test fixtures
packages/webpack/template-webpack-plugin/test/fixtures/css-diagnostics-mpa/
Added multi-entry test fixture with CSS files (a.css, b.css) containing intentional diagnostic violations and corresponding entry files (a.js, b.js).

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~50 minutes

Possibly related PRs

  • #2053: Modifies LynxTemplatePlugin.ts encode hook data flow and CSS source handling patterns.
  • #2483: Directly related CSS diagnostics and source map collection refactoring in the same plugin infrastructure.

Suggested labels

platform:Web

Suggested reviewers

  • upupming
  • colinaaa
  • PupilTong

Poem

🐰 Source maps collected with care,
Diagnostics flowing everywhere—
No webpack compilation to keep,
Just CSS chunks in arrays deep!
Hooks emit their warnings bright,
Templates built just right! ✨

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'fix(template): resolve css diagnostics sourcemaps per template' clearly describes the main change: resolving CSS diagnostics sourcemaps on a per-template basis in the template webpack plugin, which aligns with the refactoring from single to multiple source maps and per-entry CSS diagnostics handling.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
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 docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/template-css-diagnostics-sourcemap

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.

@codecov
Copy link
Copy Markdown

codecov Bot commented Apr 24, 2026

Codecov Report

❌ Patch coverage is 52.32558% with 41 lines in your changes missing coverage. Please review.
✅ All tests successful. No failed tests found.

Files with missing lines Patch % Lines
...pack/template-webpack-plugin/src/cssDiagnostics.ts 54.28% 32 Missing ⚠️
...ck/template-webpack-plugin/src/LynxEncodePlugin.ts 35.71% 9 Missing ⚠️

📢 Thoughts on this report? Let us know!

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Updates template webpack plugin CSS diagnostics handling so warnings can be source-mapped using the CSS chunks/source maps associated with the current template (incl. multi-entry/MPA scenarios).

Changes:

  • Thread cssDiagnostics through encodebeforeEmit hooks and resolve diagnostics against per-template CSS chunk source maps.
  • Update CSS diagnostics utilities to accept/parse multiple source maps and ignore invalid map payloads.
  • Add/extend tests and fixtures to cover multi-entry mapping and invalid source map inputs.

Reviewed changes

Copilot reviewed 11 out of 11 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
packages/webpack/template-webpack-plugin/src/cssDiagnostics.ts Switch resolution to multiple CSS source maps; add CSS chunk map collection/parsing helpers.
packages/webpack/template-webpack-plugin/src/LynxEncodePlugin.ts Pass cssDiagnostics through hooks and resolve warnings using per-template CSS chunk source maps.
packages/webpack/template-webpack-plugin/src/LynxTemplatePlugin.ts Extend hook types/plumbing to carry optional cssDiagnostics.
packages/webpack/template-webpack-plugin/test/cssDiagnostics.test.ts Update tests for new API shape; add coverage for invalid maps + first-mappable behavior + map collection.
packages/webpack/template-webpack-plugin/test/basic.test.ts Add integration-ish tests for beforeEmit diagnostics and MPA entry-to-sourcemap mapping.
packages/webpack/template-webpack-plugin/test/fixtures/css-diagnostics-mpa/* New MPA fixture entries and CSS with intentionally-unknown properties.
packages/webpack/template-webpack-plugin/etc/template-webpack-plugin.api.md API report updated for changed types/options.
.changeset/fix-template-css-diagnostics-sourcemap.md Added changeset file (currently empty).
Comments suppressed due to low confidence (1)

packages/webpack/template-webpack-plugin/src/cssDiagnostics.ts:81

  • processTasmCSSDiagnostics is re-exported from the package entrypoint (src/index.ts), so changing its options from { compilation } to { cssSourceMaps } is a breaking public API change. If you need this new input, consider preserving backwards compatibility (e.g., accept both compilation and cssSourceMaps with a clear precedence/deprecation path) or ensure the changeset reflects a major version bump and release notes call out the breaking change.
export interface ProcessTasmCSSDiagnosticsOptions {
  /**
   * The raw `css_diagnostics` value returned by TASM.
   */
  cssDiagnostics: unknown;
  /**
   * CSS source map contents from the CSS chunks for the current template.
   */
  cssSourceMaps: string[];
  /**
   * The webpack compiler context used to resolve relative source paths.
   */
  context: string;

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread .changeset/fix-template-css-diagnostics-sourcemap.md
Comment thread packages/webpack/template-webpack-plugin/test/basic.test.ts
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.

Actionable comments posted: 1

🧹 Nitpick comments (5)
packages/webpack/template-webpack-plugin/src/LynxEncodePlugin.ts (2)

240-245: Misleading as string cast on optional field.

cssDiagnostics in the encode hook payload is declared as cssDiagnostics?: string, so returning undefined is valid. Casting css_diagnostics as string when the value can be undefined hides that runtime truth from the type system and misleads downstream consumers (e.g., processTasmCSSDiagnostics sees it as non-optional).

🔧 Suggested change
         return {
           buffer,
           debugInfo: lepus_debug,
-          cssDiagnostics: css_diagnostics as string,
+          cssDiagnostics: css_diagnostics as string | undefined,
         };
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@packages/webpack/template-webpack-plugin/src/LynxEncodePlugin.ts` around
lines 240 - 245, The return in the encode hook is casting css_diagnostics to a
non-optional string which hides that cssDiagnostics can be undefined; update the
object returned by the encode hook to return cssDiagnostics: css_diagnostics (no
"as string" cast) so the optional type is preserved, and verify callers such as
processTasmCSSDiagnostics handle the undefined case appropriately (adjust
callers if they currently assume a non-optional string).

247-290: beforeEmit runs diagnostics processing unconditionally.

processTasmCSSDiagnostics and collectCSSSourceMapContents are invoked on every beforeEmit even when args.cssDiagnostics is undefined/empty (i.e., no diagnostics were produced during encode). Depending on how extractTasmCSSDiagnostics handles undefined, this may be a harmless no-op, but you're still iterating args.cssChunks and stringifying source maps in the common happy path where there's nothing to report.

Consider early-returning when there are no diagnostics:

🔧 Suggested change
       templateHooks.beforeEmit.tapPromise({
         name: this.name,
         stage: LynxEncodePlugin.BEFORE_EMIT_STAGE,
       }, async (args) => {
+        if (!args.cssDiagnostics) {
+          return args;
+        }
         const resolvedDiagnostics = processTasmCSSDiagnostics({
           cssDiagnostics: args.cssDiagnostics,
           cssSourceMaps: collectCSSSourceMapContents(args.cssChunks),
           context: compiler.context,
           emittedWarnings: emittedCSSDiagnosticWarnings,
         });
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@packages/webpack/template-webpack-plugin/src/LynxEncodePlugin.ts` around
lines 247 - 290, The beforeEmit hook currently always calls
processTasmCSSDiagnostics and collectCSSSourceMapContents even when there are no
diagnostics; modify the templateHooks.beforeEmit tapPromise handler to first
check args.cssDiagnostics (e.g., if falsy or length === 0) and early return args
before calling collectCSSSourceMapContents/processTasmCSSDiagnostics or
iterating cssChunks, so you only perform source-map collection and diagnostic
resolution when diagnostics exist; keep existing behavior for building
WebpackError and pushing to compilation.warnings unchanged when diagnostics are
present.
packages/webpack/template-webpack-plugin/test/cssDiagnostics.test.ts (1)

285-303: Consider tightening the test cast.

as never works but discards type safety for the chunk shape expected by collectCSSSourceMapContents. A typed partial would document the minimum contract expected from Asset (just source.map()):

🔧 Suggested change
-    const result = collectCSSSourceMapContents(
-      [{
-        name: 'main.css',
-        info: {},
-        source: {
-          map: () => sourceMap,
-        },
-      } as never],
-    );
+    const result = collectCSSSourceMapContents([
+      {
+        name: 'main.css',
+        info: {},
+        source: { map: () => sourceMap },
+      } as unknown as Parameters<typeof collectCSSSourceMapContents>[0][number],
+    ]);
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@packages/webpack/template-webpack-plugin/test/cssDiagnostics.test.ts` around
lines 285 - 303, The test currently uses an unsafe `as never` cast for the chunk
passed to collectCSSSourceMapContents; replace it with a minimal typed object
that documents the expected Asset contract (e.g. a Partial or Pick of the Asset
type that includes name, info and a source with map(): any) and cast that to
Asset only if necessary so the test keeps type-safety and documents the required
shape for collectCSSSourceMapContents.
packages/webpack/template-webpack-plugin/test/basic.test.ts (1)

360-367: Prefer JSON.stringify over hand-concatenated JSON.

Manually interpolating name/type into a JSON string will break if any field ever contains a quote, backslash, or newline. Safer and equivalent:

♻️ Proposed refactor
-function createCSSDiagnosticsJSON(diagnostic: {
-  type: string;
-  name: string;
-  line: number;
-  column: number;
-}): string {
-  return `[{"type":"${diagnostic.type}","name":"${diagnostic.name}","line":${diagnostic.line},"column":${diagnostic.column}}]`;
-}
+function createCSSDiagnosticsJSON(diagnostic: {
+  type: string;
+  name: string;
+  line: number;
+  column: number;
+}): string {
+  return JSON.stringify([diagnostic]);
+}
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@packages/webpack/template-webpack-plugin/test/basic.test.ts` around lines 360
- 367, The createCSSDiagnosticsJSON function builds JSON by string interpolation
which breaks for quotes/backslashes/newlines; update createCSSDiagnosticsJSON to
construct the diagnostic object/array and return JSON.stringify(...) instead of
manual concatenation (use the diagnostic fields to create an object and
stringify it), referencing the createCSSDiagnosticsJSON function name to locate
the change.
packages/webpack/template-webpack-plugin/src/cssDiagnostics.ts (1)

233-269: Optional: avoid stringify → parse round-trip on source maps.

collectCSSSourceMapContents JSON.stringifys each map (for string-based Set dedup), and parseCSSSourceMaps immediately JSON.parses them again before constructing TraceMaps. For large CSS bundles with many chunks, that’s wasted CPU. If dedup is the sole reason for stringifying, you can dedup with a Map<string, CSS.CSSSourceMap> keyed by the stringified form and carry the parsed object through, or (simpler) accept the duplication cost in the rare case two chunks emit identical maps.

Not blocking — the current design is correct, this is purely a micro-optimization on a hot-ish path.

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

In `@packages/webpack/template-webpack-plugin/src/cssDiagnostics.ts` around lines
233 - 269, collectCSSSourceMapContents currently JSON.stringifys source maps to
dedupe and parseCSSSourceMaps JSON.parses them back; avoid the stringify→parse
round-trip by deduping while retaining parsed objects: have
collectCSSSourceMapContents build a Map keyed by JSON.stringify(sourceMap) but
store the normalized parsed object (using normalizeCSSSourceMap) as the value,
then return an array of CSS.CSSSourceMap values; update parseCSSSourceMaps to
accept CSS.CSSSourceMap[] (or remove it and use the collected array directly)
and keep the existing isCSSSourceMap validation (referencing
collectCSSSourceMapContents, parseCSSSourceMaps, normalizeCSSSourceMap, and
isCSSSourceMap).
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In @.changeset/fix-template-css-diagnostics-sourcemap.md:
- Around line 1-3: The changeset is empty but the PR introduces a breaking
public API change to `@lynx-js/template-webpack-plugin`:
ProcessTasmCSSDiagnosticsOptions now requires cssSourceMaps: string[] and
removes compilation, affecting processTasmCSSDiagnostics (see
etc/template-webpack-plugin.api.md). Add a non-empty changeset entry for
`@lynx-js/template-webpack-plugin` describing the API change and bump the package
version (at least patch, likely minor) so downstream users are notified; include
a short note about the required cssSourceMaps field and removal of compilation
to guide consumers.

---

Nitpick comments:
In `@packages/webpack/template-webpack-plugin/src/cssDiagnostics.ts`:
- Around line 233-269: collectCSSSourceMapContents currently JSON.stringifys
source maps to dedupe and parseCSSSourceMaps JSON.parses them back; avoid the
stringify→parse round-trip by deduping while retaining parsed objects: have
collectCSSSourceMapContents build a Map keyed by JSON.stringify(sourceMap) but
store the normalized parsed object (using normalizeCSSSourceMap) as the value,
then return an array of CSS.CSSSourceMap values; update parseCSSSourceMaps to
accept CSS.CSSSourceMap[] (or remove it and use the collected array directly)
and keep the existing isCSSSourceMap validation (referencing
collectCSSSourceMapContents, parseCSSSourceMaps, normalizeCSSSourceMap, and
isCSSSourceMap).

In `@packages/webpack/template-webpack-plugin/src/LynxEncodePlugin.ts`:
- Around line 240-245: The return in the encode hook is casting css_diagnostics
to a non-optional string which hides that cssDiagnostics can be undefined;
update the object returned by the encode hook to return cssDiagnostics:
css_diagnostics (no "as string" cast) so the optional type is preserved, and
verify callers such as processTasmCSSDiagnostics handle the undefined case
appropriately (adjust callers if they currently assume a non-optional string).
- Around line 247-290: The beforeEmit hook currently always calls
processTasmCSSDiagnostics and collectCSSSourceMapContents even when there are no
diagnostics; modify the templateHooks.beforeEmit tapPromise handler to first
check args.cssDiagnostics (e.g., if falsy or length === 0) and early return args
before calling collectCSSSourceMapContents/processTasmCSSDiagnostics or
iterating cssChunks, so you only perform source-map collection and diagnostic
resolution when diagnostics exist; keep existing behavior for building
WebpackError and pushing to compilation.warnings unchanged when diagnostics are
present.

In `@packages/webpack/template-webpack-plugin/test/basic.test.ts`:
- Around line 360-367: The createCSSDiagnosticsJSON function builds JSON by
string interpolation which breaks for quotes/backslashes/newlines; update
createCSSDiagnosticsJSON to construct the diagnostic object/array and return
JSON.stringify(...) instead of manual concatenation (use the diagnostic fields
to create an object and stringify it), referencing the createCSSDiagnosticsJSON
function name to locate the change.

In `@packages/webpack/template-webpack-plugin/test/cssDiagnostics.test.ts`:
- Around line 285-303: The test currently uses an unsafe `as never` cast for the
chunk passed to collectCSSSourceMapContents; replace it with a minimal typed
object that documents the expected Asset contract (e.g. a Partial or Pick of the
Asset type that includes name, info and a source with map(): any) and cast that
to Asset only if necessary so the test keeps type-safety and documents the
required shape for collectCSSSourceMapContents.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 17c03864-a2b3-462c-978f-757c58b04a5e

📥 Commits

Reviewing files that changed from the base of the PR and between 8352530 and d544afc.

📒 Files selected for processing (11)
  • .changeset/fix-template-css-diagnostics-sourcemap.md
  • packages/webpack/template-webpack-plugin/etc/template-webpack-plugin.api.md
  • packages/webpack/template-webpack-plugin/src/LynxEncodePlugin.ts
  • packages/webpack/template-webpack-plugin/src/LynxTemplatePlugin.ts
  • packages/webpack/template-webpack-plugin/src/cssDiagnostics.ts
  • packages/webpack/template-webpack-plugin/test/basic.test.ts
  • packages/webpack/template-webpack-plugin/test/cssDiagnostics.test.ts
  • packages/webpack/template-webpack-plugin/test/fixtures/css-diagnostics-mpa/a.css
  • packages/webpack/template-webpack-plugin/test/fixtures/css-diagnostics-mpa/a.js
  • packages/webpack/template-webpack-plugin/test/fixtures/css-diagnostics-mpa/b.css
  • packages/webpack/template-webpack-plugin/test/fixtures/css-diagnostics-mpa/b.js

Comment thread .changeset/fix-template-css-diagnostics-sourcemap.md
Comment thread packages/webpack/template-webpack-plugin/src/LynxEncodePlugin.ts
@relativeci
Copy link
Copy Markdown

relativeci Bot commented Apr 24, 2026

React External

#698 Bundle Size — 679.93KiB (0%).

d544afc(current) vs 8352530 main#686(baseline)

Bundle metrics  no changes
                 Current
#698
     Baseline
#686
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
#698
     Baseline
#686
No change  Other 679.93KiB 679.93KiB

Bundle analysis reportBranch fix/template-css-diagnostics-sou...Project dashboard


Generated by RelativeCIDocumentationReport issue

@relativeci
Copy link
Copy Markdown

relativeci Bot commented Apr 24, 2026

Web Explorer

#9152 Bundle Size — 900.04KiB (0%).

d544afc(current) vs 8352530 main#9140(baseline)

Bundle metrics  Change 1 change
                 Current
#9152
     Baseline
#9140
No change  Initial JS 44.46KiB 44.46KiB
No change  Initial CSS 2.22KiB 2.22KiB
Change  Cache Invalidation 0% 8.1%
No change  Chunks 9 9
No change  Assets 11 11
No change  Modules 228 228
No change  Duplicate Modules 11 11
Change  Duplicate Code 27.29%(+0.04%) 27.28%
No change  Packages 10 10
No change  Duplicate Packages 0 0
Bundle size by type  no changes
                 Current
#9152
     Baseline
#9140
No change  JS 495.9KiB 495.9KiB
No change  Other 401.92KiB 401.92KiB
No change  CSS 2.22KiB 2.22KiB

Bundle analysis reportBranch fix/template-css-diagnostics-sou...Project dashboard


Generated by RelativeCIDocumentationReport issue

@relativeci
Copy link
Copy Markdown

relativeci Bot commented Apr 24, 2026

React Example

#7580 Bundle Size — 225.23KiB (0%).

d544afc(current) vs 8352530 main#7568(baseline)

Bundle metrics  no changes
                 Current
#7580
     Baseline
#7568
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 179 179
No change  Duplicate Modules 69 69
No change  Duplicate Code 44.57% 44.57%
No change  Packages 2 2
No change  Duplicate Packages 0 0
Bundle size by type  no changes
                 Current
#7580
     Baseline
#7568
No change  IMG 145.76KiB 145.76KiB
No change  Other 79.47KiB 79.47KiB

Bundle analysis reportBranch fix/template-css-diagnostics-sou...Project dashboard


Generated by RelativeCIDocumentationReport issue

@relativeci
Copy link
Copy Markdown

relativeci Bot commented Apr 24, 2026

React MTF Example

#712 Bundle Size — 196.39KiB (0%).

d544afc(current) vs 8352530 main#700(baseline)

Bundle metrics  no changes
                 Current
#712
     Baseline
#700
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 173 173
No change  Duplicate Modules 66 66
No change  Duplicate Code 44.07% 44.07%
No change  Packages 2 2
No change  Duplicate Packages 0 0
Bundle size by type  no changes
                 Current
#712
     Baseline
#700
No change  IMG 111.23KiB 111.23KiB
No change  Other 85.15KiB 85.15KiB

Bundle analysis reportBranch fix/template-css-diagnostics-sou...Project dashboard


Generated by RelativeCIDocumentationReport issue

@luhc228 luhc228 merged commit 86fd0e5 into main Apr 24, 2026
110 of 115 checks passed
@luhc228 luhc228 deleted the fix/template-css-diagnostics-sourcemap branch April 24, 2026 02:59
@codspeed-hq
Copy link
Copy Markdown

codspeed-hq Bot commented Apr 24, 2026

Merging this PR will not alter performance

✅ 81 untouched benchmarks
⏩ 26 skipped benchmarks1


Comparing fix/template-css-diagnostics-sourcemap (d544afc) with main (8352530)

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants