Skip to content

perf(ci): remove unnecessary pnpm install from merge-reports job#8030

Merged
Myestery merged 2 commits intomainfrom
investigate/ci-extra-pnpm-install
Jan 13, 2026
Merged

perf(ci): remove unnecessary pnpm install from merge-reports job#8030
Myestery merged 2 commits intomainfrom
investigate/ci-extra-pnpm-install

Conversation

@Myestery
Copy link
Contributor

@Myestery Myestery commented Jan 13, 2026

Summary

  • Remove setup-frontend action from merge-reports job
  • Use npx @playwright/test instead of pnpm exec playwright

Why

The merge-reports job was spending ~16-18s on pnpm install just to run a CLI command that takes ~3s. Since npx is pre-installed on GitHub runners, we can eliminate the setup overhead entirely.

Expected savings: ~16-18 seconds per CI run

Test Plan

  • Verify merge-reports job completes successfully
  • Verify HTML report is generated and uploaded correctly
  • Compare job timing before/after

┆Issue is synchronized with this Notion page by Unito

The merge-reports job was running full setup-frontend (pnpm install)
just to execute playwright merge-reports CLI. This added ~16-18s of
overhead for a command that takes ~3s.

Replace with npx which is pre-installed on GitHub runners, eliminating
the need for any Node.js/pnpm setup in this job.
@Myestery Myestery requested a review from a team as a code owner January 13, 2026 21:23
@dosubot dosubot bot added the size:XS This PR changes 0-9 lines, ignoring generated files. label Jan 13, 2026
@coderabbitai
Copy link
Contributor

coderabbitai bot commented Jan 13, 2026

📝 Walkthrough

Walkthrough

Replaces the frontend setup step with pnpm/action-setup@v4 (pnpm v10) and changes Playwright report merge invocations to use pnpm dlx @playwright/test merge-reports (HTML and JSON) in the E2E CI workflow.

Changes

Cohort / File(s) Summary
E2E CI workflow configuration
.github/workflows/ci-tests-e2e.yaml
Replaced "Setup frontend" step with pnpm/action-setup@v4 specifying pnpm v10; switched report merge commands from pnpm exec playwright merge-reports to pnpm dlx @playwright/test merge-reports for both HTML and JSON outputs.

Possibly related PRs

Suggested reviewers

  • DrJKL
  • christian-byrne

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.

@github-actions
Copy link

github-actions bot commented Jan 13, 2026

🎨 Storybook Build Status

Build completed successfully!

⏰ Completed at: 01/13/2026, 09:36:10 PM UTC

🔗 Links


🎉 Your Storybook is ready for review!

@socket-security
Copy link

socket-security bot commented Jan 13, 2026

Review the following changes in direct dependencies. Learn more about Socket for GitHub.

Diff Package Supply Chain
Security
Vulnerability Quality Maintenance License
Addedvite@​7.3.0921008299100

View full report

@github-actions
Copy link

github-actions bot commented Jan 13, 2026

🎭 Playwright Tests: ⚠️ Passed with flaky tests

Results: 504 passed, 0 failed, 1 flaky, 8 skipped (Total: 513)

❌ Failed Tests

📊 Browser Reports
  • chromium: View Report (✅ 494 / ❌ 0 / ⚠️ 0 / ⏭️ 8)
  • chromium-2x: View Report (✅ 2 / ❌ 0 / ⚠️ 0 / ⏭️ 0)
  • chromium-0.5x: View Report (✅ 1 / ❌ 0 / ⚠️ 0 / ⏭️ 0)
  • mobile-chrome: View Report (✅ 7 / ❌ 0 / ⚠️ 1 / ⏭️ 0)

@github-actions
Copy link

github-actions bot commented Jan 13, 2026

Bundle Size Report

Summary

  • Raw size: 19.4 MB baseline 19.4 MB — ⚪ 0 B
  • Gzip: 3.95 MB baseline 3.95 MB — ⚪ 0 B
  • Brotli: 3.02 MB baseline 3.02 MB — ⚪ 0 B
  • Bundles: 98 current • 98 baseline

Category Glance
Vendor & Third-Party ⚪ 0 B (9.19 MB) · Other ⚪ 0 B (5.25 MB) · App Entry Points ⚪ 0 B (3.32 MB) · Graph Workspace ⚪ 0 B (1.04 MB) · Panels & Settings ⚪ 0 B (372 kB) · UI Components ⚪ 0 B (200 kB) · + 3 more

Per-category breakdown
App Entry Points — 3.32 MB (baseline 3.32 MB) • ⚪ 0 B

Main entry bundles and manifests

File Before After Δ Raw Δ Gzip Δ Brotli
assets/index-CIp46Afq.js 200 kB 200 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/index-CmvT1vS1.js 345 B 345 B ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/index-Tnr6NjFi.js 3.12 MB 3.12 MB ⚪ 0 B ⚪ 0 B ⚪ 0 B
Graph Workspace — 1.04 MB (baseline 1.04 MB) • ⚪ 0 B

Graph editor runtime, canvas, workflow orchestration

File Before After Δ Raw Δ Gzip Δ Brotli
assets/GraphView-CsbFtoZi.js 1.04 MB 1.04 MB ⚪ 0 B ⚪ 0 B ⚪ 0 B
Views & Navigation — 6.63 kB (baseline 6.63 kB) • ⚪ 0 B

Top-level views, pages, and routed surfaces

File Before After Δ Raw Δ Gzip Δ Brotli
assets/UserSelectView-Bp9nifei.js 6.63 kB 6.63 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
Panels & Settings — 372 kB (baseline 372 kB) • ⚪ 0 B

Configuration panels, inspectors, and settings screens

File Before After Δ Raw Δ Gzip Δ Brotli
assets/AboutPanel-BSgoAWKr.js 9.16 kB 9.16 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/ExtensionPanel-DAQ02KCn.js 11.1 kB 11.1 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/KeybindingPanel-DlcFVV1e.js 14.8 kB 14.8 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/LegacyCreditsPanel-DYTF98Q5.js 25.1 kB 25.1 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/ServerConfigPanel-DQLTXbRQ.js 7.51 kB 7.51 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-BGQfQzTx.js 25.6 kB 25.6 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-BVE4KHTw.js 22.7 kB 22.7 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-BVtpJmlU.js 30.9 kB 30.9 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-C2aO00Dz.js 28.6 kB 28.6 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-Cm3ieBXR.js 27.8 kB 27.8 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-CzQKMdK3.js 26.2 kB 26.2 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-CzYUIUnL.js 27.1 kB 27.1 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-DwKpL7jw.js 26.3 kB 26.3 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-DX8feV4n.js 25.3 kB 25.3 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-mWzYycGc.js 22 kB 22 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-U4AdZ8Rl.js 34.9 kB 34.9 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/UserPanel-DmGeeOpy.js 6.88 kB 6.88 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
UI Components — 200 kB (baseline 200 kB) • ⚪ 0 B

Reusable component library chunks

File Before After Δ Raw Δ Gzip Δ Brotli
assets/ComfyQueueButton-DUxL0IRR.js 8.83 kB 8.83 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/LazyImage.vue_vue_type_script_setup_true_lang-Cfs8euoZ.js 65.6 kB 65.6 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/Load3D.vue_vue_type_script_setup_true_lang-DIkSf1t1.js 56.4 kB 56.4 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/UserAvatar.vue_vue_type_script_setup_true_lang-DWEfpRJs.js 1.34 kB 1.34 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetButton-Da7kTm18.js 2.21 kB 2.21 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetInputNumber.vue_vue_type_script_setup_true_lang-CD0P7dMl.js 10.9 kB 10.9 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetLayoutField.vue_vue_type_script_setup_true_lang-CEVYqfj8.js 2.14 kB 2.14 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetSelect.vue_vue_type_script_setup_true_lang-Svyhk0sq.js 49 kB 49 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetWithControl.vue_vue_type_script_setup_true_lang-CbjcuxIF.js 3.72 kB 3.72 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
Data & Services — 12.5 kB (baseline 12.5 kB) • ⚪ 0 B

Stores, services, APIs, and repositories

File Before After Δ Raw Δ Gzip Δ Brotli
assets/audioService-BgOgBe9U.js 2.2 kB 2.2 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/keybindingService-CpTXcTvK.js 7.51 kB 7.51 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/serverConfigStore-lZrt20fn.js 2.83 kB 2.83 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
Utilities & Hooks — 1.41 kB (baseline 1.41 kB) • ⚪ 0 B

Helpers, composables, and utility bundles

File Before After Δ Raw Δ Gzip Δ Brotli
assets/audioUtils-DxMMlyCg.js 1.41 kB 1.41 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
Vendor & Third-Party — 9.19 MB (baseline 9.19 MB) • ⚪ 0 B

External libraries and shared vendor chunks

File Before After Δ Raw Δ Gzip Δ Brotli
assets/vendor-chart-C2WamoVK.js 452 kB 452 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-other-Da7BzmIq.js 3.9 MB 3.9 MB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-primevue-CvitJUGk.js 1.95 MB 1.95 MB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-three-Ds3gPtNh.js 2.08 MB 2.08 MB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-tiptap-WJL3cqV8.js 232 kB 232 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-vue-E9hBZNUh.js 160 kB 160 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-xterm-BF8peZ5_.js 420 kB 420 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
Other — 5.25 MB (baseline 5.25 MB) • ⚪ 0 B

Bundles that do not match a named category

File Before After Δ Raw Δ Gzip Δ Brotli
assets/AudioPreviewPlayer-GME3Bl-d.js 13.3 kB 13.3 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-B32ZbeYu.js 16.5 kB 16.5 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-B7wQT83I.js 17 kB 17 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-BK3JVjMG.js 15.7 kB 15.7 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-C6twMpaZ.js 15.5 kB 15.5 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-CDUWpEwM.js 18.3 kB 18.3 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-CfZ6FPZ-.js 15.7 kB 15.7 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-COIPP_pv.js 17 kB 17 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-CoPn_77e.js 14.7 kB 14.7 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-CuRNS4XD.js 14.9 kB 14.9 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-DBHjCSPA.js 16.2 kB 16.2 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-DZJaRLKH.js 15.7 kB 15.7 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/Load3D-DMJxEJ1x.js 424 B 424 B ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-2D22Y23E.js 133 kB 133 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-2hkj5WZ8.js 129 kB 129 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-ADie1YP2.js 95 kB 95 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-C4CNI-cH.js 106 kB 106 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-Cs_ngf1U.js 107 kB 107 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-D_5OJDBa.js 149 kB 149 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-DOaV8m79.js 110 kB 110 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-DPEAvrr4.js 113 kB 113 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-DUDKZw_s.js 123 kB 123 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-Dupp0QiI.js 109 kB 109 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-DXSxRej2.js 94.2 kB 94.2 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/Media3DTop-BeJvPfq4.js 1.49 kB 1.49 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/MediaAudioTop-DIQlZoPQ.js 1.46 kB 1.46 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/MediaImageTop-C3CvQRZ8.js 1.75 kB 1.75 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/MediaVideoTop-euoHxxM5.js 2.65 kB 2.65 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-B-XzzBeS.js 317 kB 317 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-BGwoeek4.js 329 kB 329 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-C6xl5-mL.js 358 kB 358 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-CRZGOJB7.js 310 kB 310 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-D8-Yzlzh.js 289 kB 289 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-Du8VrAwA.js 320 kB 320 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-jjlLVrIs.js 317 kB 317 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-JQwk1kgy.js 292 kB 292 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-JuuXdMpv.js 391 kB 391 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-l2Y20bod.js 314 kB 314 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-VLMdhOwo.js 357 kB 357 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/OBJLoader2WorkerModule-DTMpvldF.js 109 kB 109 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/SubscriptionRequiredDialogContent-CkcSfTuT.js 29.3 kB 29.3 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/ValueControlPopover-Bprxvbux.js 5.49 kB 5.49 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetAudioUI-BlO9Idyz.js 2.89 kB 2.89 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetChart-515bxB6A.js 2.48 kB 2.48 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetColorPicker-8RkhDtcf.js 3.41 kB 3.41 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetGalleria-BnRqYK42.js 4.1 kB 4.1 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetImageCompare-DOYclIRS.js 3.21 kB 3.21 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetInputNumber-Bdy6Wqf2.js 673 B 673 B ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetInputText-BRTp0bPA.js 1.99 kB 1.99 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetLegacy-DhfcEBm2.js 364 B 364 B ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetMarkdown-56mjhIrR.js 3.08 kB 3.08 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/widgetPropFilter-BIbGSUAt.js 1.28 kB 1.28 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetRecordAudio-Cz_HUQ2l.js 20.4 kB 20.4 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetSelect-BGLoJArt.js 733 B 733 B ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetTextarea-B5vL7gIx.js 3.08 kB 3.08 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetToggleSwitch-DdNuWQqp.js 2.66 kB 2.66 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B

@dosubot dosubot bot added size:S This PR changes 10-29 lines, ignoring generated files. and removed size:XS This PR changes 0-9 lines, ignoring generated files. labels Jan 13, 2026
@socket-security
Copy link

Warning

Review the following alerts detected in dependencies.

According to your organization's Security Policy, it is recommended to resolve "Warn" alerts. Learn more about Socket for GitHub.

Action Severity Alert  (click "▶" to expand/collapse)
Warn High
Obfuscated code: npm vite is 91.0% likely obfuscated

Confidence: 0.91

Location: Package overview

From: apps/desktop-ui/package.jsonnpm/vite@7.3.0

ℹ Read more on: This package | This alert | What is obfuscated code?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: Packages should not obfuscate their code. Consider not using packages with obfuscated code.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore npm/vite@7.3.0. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

View full report

@coderabbitai coderabbitai bot requested a review from DrJKL January 13, 2026 21:35
@Myestery
Copy link
Contributor Author

didn't work
Trying something else

Copy link
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

🤖 Fix all issues with AI agents
In @.github/workflows/ci-tests-e2e.yaml:
- Around line 159-165: The merge step currently invokes "pnpm dlx
@playwright/test merge-reports" without a version, causing potential Playwright
version mismatch with the test shards; update the merge job to either call the
exact installed Playwright version (e.g., replace "pnpm dlx @playwright/test"
with "pnpm dlx @playwright/test@1.57.0" to match the project's Playwright
1.57.0) or run "pnpm install --frozen-lockfile" in the merge job before invoking
"pnpm dlx @playwright/test merge-reports" so the merge uses the same locked
version and avoids blob report format incompatibilities.
📜 Review details

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 0041b67 and 14c3808.

📒 Files selected for processing (1)
  • .github/workflows/ci-tests-e2e.yaml
🧰 Additional context used
🧠 Learnings (6)
📓 Common learnings
Learnt from: christian-byrne
Repo: Comfy-Org/ComfyUI_frontend PR: 7358
File: src/components/dialog/content/signin/SignUpForm.vue:45-54
Timestamp: 2025-12-11T12:25:24.164Z
Learning: The project has CI automation that handles code formatting (pnpm format) automatically, so manual formatting suggestions should not be provided in code reviews for the Comfy-Org/ComfyUI_frontend repository.
Learnt from: CR
Repo: Comfy-Org/ComfyUI_frontend PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-01-10T00:24:17.695Z
Learning: Run quality gates before PR: `pnpm lint`, `pnpm typecheck`, `pnpm knip`, and ensure relevant tests pass
Learnt from: CR
Repo: Comfy-Org/ComfyUI_frontend PR: 0
File: browser_tests/CLAUDE.md:0-0
Timestamp: 2025-11-24T19:47:22.909Z
Learning: Applies to browser_tests/**/*.{e2e,spec}.{ts,tsx,js,jsx} : Use Playwright fixtures for browser tests
Learnt from: CR
Repo: Comfy-Org/ComfyUI_frontend PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-01-10T00:24:17.695Z
Learning: Applies to browser_tests/**/*.spec.ts : E2E tests use Playwright and belong in `browser_tests/**/*.spec.ts`
Learnt from: Myestery
Repo: Comfy-Org/ComfyUI_frontend PR: 7422
File: .github/workflows/pr-update-playwright-expectations.yaml:131-135
Timestamp: 2025-12-12T23:02:37.473Z
Learning: In the `.github/workflows/pr-update-playwright-expectations.yaml` workflow in the Comfy-Org/ComfyUI_frontend repository, the snapshot update process is intentionally scoped to only add and update snapshot images. Deletions of snapshot files are handled explicitly outside this workflow and should not be suggested as part of this automation.
Learnt from: CR
Repo: Comfy-Org/ComfyUI_frontend PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-01-10T00:24:17.695Z
Learning: Applies to browser_tests/**/*.spec.ts : Follow Playwright best practices for E2E testing
Learnt from: CR
Repo: Comfy-Org/ComfyUI_frontend PR: 0
File: browser_tests/CLAUDE.md:0-0
Timestamp: 2025-11-24T19:47:22.909Z
Learning: Applies to browser_tests/**/*.{e2e,spec}.{ts,tsx,js,jsx} : Test user workflows in browser tests
📚 Learning: 2025-12-12T23:02:37.473Z
Learnt from: Myestery
Repo: Comfy-Org/ComfyUI_frontend PR: 7422
File: .github/workflows/pr-update-playwright-expectations.yaml:131-135
Timestamp: 2025-12-12T23:02:37.473Z
Learning: In the `.github/workflows/pr-update-playwright-expectations.yaml` workflow in the Comfy-Org/ComfyUI_frontend repository, the snapshot update process is intentionally scoped to only add and update snapshot images. Deletions of snapshot files are handled explicitly outside this workflow and should not be suggested as part of this automation.

Applied to files:

  • .github/workflows/ci-tests-e2e.yaml
📚 Learning: 2025-11-24T19:47:22.909Z
Learnt from: CR
Repo: Comfy-Org/ComfyUI_frontend PR: 0
File: browser_tests/CLAUDE.md:0-0
Timestamp: 2025-11-24T19:47:22.909Z
Learning: Applies to browser_tests/**/*.{e2e,spec}.{ts,tsx,js,jsx} : Use Playwright fixtures for browser tests

Applied to files:

  • .github/workflows/ci-tests-e2e.yaml
📚 Learning: 2025-11-24T19:47:22.909Z
Learnt from: CR
Repo: Comfy-Org/ComfyUI_frontend PR: 0
File: browser_tests/CLAUDE.md:0-0
Timestamp: 2025-11-24T19:47:22.909Z
Learning: Applies to browser_tests/**/*.{e2e,spec}.{ts,tsx,js,jsx} : Test user workflows in browser tests

Applied to files:

  • .github/workflows/ci-tests-e2e.yaml
📚 Learning: 2026-01-10T00:24:17.695Z
Learnt from: CR
Repo: Comfy-Org/ComfyUI_frontend PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-01-10T00:24:17.695Z
Learning: Applies to browser_tests/**/*.spec.ts : Follow Playwright best practices for E2E testing

Applied to files:

  • .github/workflows/ci-tests-e2e.yaml
📚 Learning: 2026-01-10T00:24:17.695Z
Learnt from: CR
Repo: Comfy-Org/ComfyUI_frontend PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-01-10T00:24:17.695Z
Learning: Applies to browser_tests/**/*.spec.ts : E2E tests use Playwright and belong in `browser_tests/**/*.spec.ts`

Applied to files:

  • .github/workflows/ci-tests-e2e.yaml
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (5)
  • GitHub Check: deploy-and-comment
  • GitHub Check: setup
  • GitHub Check: test
  • GitHub Check: lint-and-format
  • GitHub Check: collect
🔇 Additional comments (1)
.github/workflows/ci-tests-e2e.yaml (1)

147-150: Good optimization — relies on runner's pre-installed Node.js.

Using pnpm/action-setup@v4 without actions/setup-node is valid since GitHub runners have Node.js pre-installed. This effectively eliminates the pnpm install overhead.

Comment on lines 159 to +165
- name: Merge into HTML Report
run: |
# Generate HTML report
pnpm exec playwright merge-reports --reporter=html ./all-blob-reports
pnpm dlx @playwright/test merge-reports --reporter=html ./all-blob-reports
# Generate JSON report separately with explicit output path
PLAYWRIGHT_JSON_OUTPUT_NAME=playwright-report/report.json \
pnpm exec playwright merge-reports --reporter=json ./all-blob-reports
pnpm dlx @playwright/test merge-reports --reporter=json ./all-blob-reports
Copy link
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major

🧩 Analysis chain

🏁 Script executed:

cat package.json | grep -A 1 -B 1 '@playwright/test'

Repository: Comfy-Org/ComfyUI_frontend

Length of output: 179


🏁 Script executed:

# Check for catalog definition in pnpm-workspace.yaml or top-level catalog in package.json
if [ -f "pnpm-workspace.yaml" ]; then
  echo "=== pnpm-workspace.yaml ===" 
  grep -A 30 "catalog:" pnpm-workspace.yaml | head -50
fi

# Also check if there's a .pnpmfile.cjs
if [ -f ".pnpmfile.cjs" ]; then
  echo "=== .pnpmfile.cjs ===" 
  cat .pnpmfile.cjs | head -30
fi

# Check pnpm-lock.yaml for the resolved version
echo "=== Checking pnpm-lock.yaml for @playwright/test ===" 
grep -A 3 "'@playwright/test'" pnpm-lock.yaml | head -20

Repository: Comfy-Org/ComfyUI_frontend

Length of output: 1500


🏁 Script executed:

# Read the CI workflow file to see full context
cat -n .github/workflows/ci-tests-e2e.yaml | sed -n '150,180p'

Repository: Comfy-Org/ComfyUI_frontend

Length of output: 1447


🏁 Script executed:

# Find the test shard job definitions in the workflow
cat -n .github/workflows/ci-tests-e2e.yaml | head -160 | tail -100

Repository: Comfy-Org/ComfyUI_frontend

Length of output: 4032


🏁 Script executed:

# Search for how pnpm dlx behaves with unversioned packages
# Also check if the merge-reports job installs dependencies
cat -n .github/workflows/ci-tests-e2e.yaml | sed -n '139,160p'

Repository: Comfy-Org/ComfyUI_frontend

Length of output: 775


🌐 Web query:

Playwright blob report format version compatibility merge-reports

💡 Result:

Short answer

  • Playwright blob reports are ZIP blobs produced by the "blob" reporter and intended to be read/merged by the built-in CLI tool npx playwright merge-reports. [1][2][3]
  • Best practice / compatibility rule: generate and merge blob reports with the same Playwright release (or at least the same minor release series). Mixing blobs produced by much older Playwright versions with a newer merge-reports tool can break or produce unexpected output. When in doubt, use the same Playwright version to create and to merge. [1][2][4]

Details / practical guidance

  • What a blob is: the blob reporter writes report-.zip files that include all test metadata and attachments; merge-reports extracts those blobs and produces HTML/JSON/JUnit/etc. using the current reporter implementation. [2]
  • When merging across OS / environments you may need an explicit merge config (to pick test-root, tags, etc.). [1]
  • Known issues: users have reported sporadic/behavioral problems when merging (empty output, reporters writing to stdout vs file, etc.), which indicates the merge step can be sensitive to Playwright version, reporter choice, and CI workflow details. If you see missing output, ensure blobs are intact, use the same Playwright version, and try piping JSON/JUnit output to a file as a workaround. [4][5]

References

  1. Playwright docs — Test sharding / merging reports (blob + merge-reports). [Playwright Test sharding / merge-reports]. [1]
  2. Playwright docs — Blob reporter details (file name, contents). [Playwright Reporters / Blob]. [2]
  3. Playwright release notes introducing merge-reports (v1.37). [Release notes]. [3]
  4. Playwright GitHub issues reporting merge-reports problems (examples of failures / unexpected behavior). [GitHub issue examples]. [4][5]

If you want, I can:

  • Inspect a sample report-.zip you have and tell you which Playwright version likely produced it, or
  • Give a step-by-step CI workflow that reliably collects and merges blob reports (GitHub Actions example).

Pin @playwright/test version to match the project's installed version to ensure blob report compatibility.

The test shards use Playwright 1.57.0 (from pnpm install --frozen-lockfile in the test jobs), but the merge job uses pnpm dlx @playwright/test without a version pin. Since pnpm dlx fetches the latest available version from npm when no version is specified, mismatches can occur. Blob report format compatibility between different Playwright versions is not guaranteed, and version mismatches can cause merge failures or empty reports.

Pin the version to match the project:

-          pnpm dlx @playwright/test merge-reports --reporter=html ./all-blob-reports
+          pnpm dlx @playwright/test@1.57.0 merge-reports --reporter=html ./all-blob-reports
-          pnpm dlx @playwright/test merge-reports --reporter=json ./all-blob-reports
+          pnpm dlx @playwright/test@1.57.0 merge-reports --reporter=json ./all-blob-reports

Alternatively, add pnpm install --frozen-lockfile to the merge job to use the version from package.json automatically.

🤖 Prompt for AI Agents
In @.github/workflows/ci-tests-e2e.yaml around lines 159 - 165, The merge step
currently invokes "pnpm dlx @playwright/test merge-reports" without a version,
causing potential Playwright version mismatch with the test shards; update the
merge job to either call the exact installed Playwright version (e.g., replace
"pnpm dlx @playwright/test" with "pnpm dlx @playwright/test@1.57.0" to match the
project's Playwright 1.57.0) or run "pnpm install --frozen-lockfile" in the
merge job before invoking "pnpm dlx @playwright/test merge-reports" so the merge
uses the same locked version and avoids blob report format incompatibilities.

@Myestery Myestery merged commit 6cbb83a into main Jan 13, 2026
33 checks passed
@Myestery Myestery deleted the investigate/ci-extra-pnpm-install branch January 13, 2026 21:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:S This PR changes 10-29 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants