Skip to content

Conversation

@DrJKL
Copy link
Contributor

@DrJKL DrJKL commented Jan 17, 2026

Moves vitest configuration from vitest.config.ts into the test section of vite.config.mts and deletes the separate vitest config file.

┆Issue is synchronized with this Notion page by Unito

@DrJKL DrJKL requested a review from a team as a code owner January 17, 2026 20:32
@dosubot dosubot bot added the size:M This PR changes 30-99 lines, ignoring generated files. label Jan 17, 2026
@coderabbitai
Copy link
Contributor

coderabbitai bot commented Jan 17, 2026

Warning

Rate limit exceeded

@DrJKL has exceeded the limit for the number of commits that can be reviewed per hour. Please wait 18 minutes and 11 seconds before requesting another review.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

📥 Commits

Reviewing files that changed from the base of the PR and between 44d3263 and e8e96cc.

📒 Files selected for processing (2)
  • src/composables/graph/useGraphNodeManager.test.ts
  • src/stores/templateRankingStore.test.ts
📝 Walkthrough

Walkthrough

Consolidates Vitest configuration into vite.config.mts (updating the defineConfig import to vitest/config), removes the separate vitest.config.ts, and adds a lint-staged rule that blocks staging files under tests-ui/.

Changes

Cohort / File(s) Summary
Vite + Vitest config
vite.config.mts
Switched defineConfig import to vitest/config; added test: { ... } block (globals, environment, setupFiles, retry, include patterns, coverage reporters, silent) and a ProxyOptions type import.
Removed Vitest file
vitest.config.ts
Deleted entire file and its default export (previous Vitest plugins, test options, resolve aliases, and define-time globals). Review for removed aliases/defines referenced elsewhere.
Lint-staged rule
lint-staged.config.mjs
Added 'tests-ui/**' rule that prints a deprecation message and exits with status 1 to prevent staging files under tests-ui/.

Possibly related PRs

Suggested reviewers

  • simula-r

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 17, 2026

🎭 Playwright Tests: ⚠️ Passed with flaky tests

Results: 505 passed, 0 failed, 1 flaky, 8 skipped (Total: 514)

❌ Failed Tests

📊 Browser Reports
  • chromium: View Report (✅ 495 / ❌ 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 17, 2026

🎨 Storybook Build Status

Build completed successfully!

⏰ Completed at: 01/17/2026, 08:55:51 PM UTC

🔗 Links


🎉 Your Storybook is ready for review!

@github-actions
Copy link

github-actions bot commented Jan 17, 2026

Bundle Size Report

Summary

  • Raw size: 19.1 MB baseline 19.1 MB — ⚪ 0 B
  • Gzip: 4.05 MB baseline 4.05 MB — ⚪ 0 B
  • Brotli: 3.09 MB baseline 3.09 MB — ⚪ 0 B
  • Bundles: 152 current • 152 baseline

Category Glance
Vendor & Third-Party ⚪ 0 B (9.09 MB) · Other ⚪ 0 B (5.88 MB) · Data & Services ⚪ 0 B (2.74 MB) · Graph Workspace ⚪ 0 B (878 kB) · Panels & Settings ⚪ 0 B (385 kB) · Views & Navigation ⚪ 0 B (66.6 kB) · + 5 more

Per-category breakdown
App Entry Points — 18.1 kB (baseline 18.1 kB) • ⚪ 0 B

Main entry bundles and manifests

File Before After Δ Raw Δ Gzip Δ Brotli
assets/index-BjfLyhX7.js 18.1 kB 18.1 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
Graph Workspace — 878 kB (baseline 878 kB) • ⚪ 0 B

Graph editor runtime, canvas, workflow orchestration

File Before After Δ Raw Δ Gzip Δ Brotli
assets/GraphView-Di47m4bn.js 878 kB 878 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
Views & Navigation — 66.6 kB (baseline 66.6 kB) • ⚪ 0 B

Top-level views, pages, and routed surfaces

File Before After Δ Raw Δ Gzip Δ Brotli
assets/CloudAuthTimeoutView-Df3R-ruo.js 4.71 kB 4.71 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/CloudForgotPasswordView-DEIEKSBD.js 5.31 kB 5.31 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/CloudLayoutView-CgESpcty.js 6.18 kB 6.18 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/CloudLoginView-DwCejAVV.js 9.75 kB 9.75 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/CloudSignupView-BRytyuk9.js 6.96 kB 6.96 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/CloudSorryContactSupportView-BtJTD7Hi.js 958 B 958 B ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/CloudSubscriptionRedirectView-DsfRJzyZ.js 4.37 kB 4.37 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/CloudSurveyView-ho3g0HNK.js 15.5 kB 15.5 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/layout-CgujI5pn.js 296 B 296 B ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/UserCheckView--ImYQmPi.js 8.2 kB 8.2 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/UserSelectView-B5FRf45-.js 4.34 kB 4.34 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
Panels & Settings — 385 kB (baseline 385 kB) • ⚪ 0 B

Configuration panels, inspectors, and settings screens

File Before After Δ Raw Δ Gzip Δ Brotli
assets/AboutPanel-Bw9RBswK.js 8.26 kB 8.26 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/cloudRemoteConfig-DT4AnIDB.js 1.71 kB 1.71 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/ExtensionPanel-C4BW3ceP.js 9.18 kB 9.18 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/KeybindingPanel-BnQmwE9C.js 12.3 kB 12.3 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/LegacyCreditsPanel-CCkmSsgv.js 20.5 kB 20.5 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/remoteConfig-BUDSMhNf.js 180 B 180 B ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/remoteConfig-ChJ6chsD.js 842 B 842 B ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/ServerConfigPanel-BSOZuIV4.js 6.27 kB 6.27 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-BEsbzz5K.js 26.7 kB 26.7 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-Bm94J6zv.js 35.4 kB 35.4 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-BMeHurHw.js 29.2 kB 29.2 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-Cdhmskf0.js 22.3 kB 22.3 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-CdQz7zyf.js 25.7 kB 25.7 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-CtqXRsBK.js 25.9 kB 25.9 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-Dcr3W2P8.js 31.4 kB 31.4 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-DjGO9qyG.js 27.5 kB 27.5 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-DjPavrXI.js 26.6 kB 26.6 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-DMEC8N5i.js 22.9 kB 22.9 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-DV3gK-aU.js 28.3 kB 28.3 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/SubscriptionPanel-DUp74ldH.js 18.2 kB 18.2 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/UserPanel-DaR6dNwC.js 5.92 kB 5.92 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
User & Accounts — 4.22 kB (baseline 4.22 kB) • ⚪ 0 B

Authentication, profile, and account management bundles

File Before After Δ Raw Δ Gzip Δ Brotli
assets/auth-D4VYrUjC.js 3.29 kB 3.29 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/auth-f_CPoqz5.js 288 B 288 B ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/firebaseAuthStore-Db_wAkB6.js 638 B 638 B ⚪ 0 B ⚪ 0 B ⚪ 0 B
Editors & Dialogs — 2.85 kB (baseline 2.85 kB) • ⚪ 0 B

Modals, dialogs, drawers, and in-app editors

File Before After Δ Raw Δ Gzip Δ Brotli
assets/useSubscriptionDialog-B-H7j-Se.js 2.22 kB 2.22 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/useSubscriptionDialog-D6Q6n0n9.js 631 B 631 B ⚪ 0 B ⚪ 0 B ⚪ 0 B
UI Components — 26.3 kB (baseline 26.3 kB) • ⚪ 0 B

Reusable component library chunks

File Before After Δ Raw Δ Gzip Δ Brotli
assets/Button-DXbPXIj1.js 2.86 kB 2.86 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/CloudBadge-BOC2FvLa.js 1.14 kB 1.14 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/cloudFeedbackTopbarButton-DZ-E9h7q.js 1.09 kB 1.09 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/ComfyQueueButton-D9rN_RO4.js 643 B 643 B ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/ComfyQueueButton-y4ILMQzc.js 7.07 kB 7.07 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/SubscribeButton-KG11X0qh.js 10.7 kB 10.7 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/UserAvatar-BzAhschB.js 1.11 kB 1.11 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetButton-DdDg34_-.js 1.71 kB 1.71 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
Data & Services — 2.74 MB (baseline 2.74 MB) • ⚪ 0 B

Stores, services, APIs, and repositories

File Before After Δ Raw Δ Gzip Δ Brotli
assets/api-C_aFRGG1.js 1.08 MB 1.08 MB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/audioService-CzQaAaSq.js 1.66 kB 1.66 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/dialogService-BfBQAeyv.js 1.64 MB 1.64 MB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/keybindingService-CwR3bcnG.js 6.04 kB 6.04 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/releaseStore-BcJBKi45.js 7.91 kB 7.91 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/releaseStore-rqj2IoSF.js 610 B 610 B ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/serverConfigStore-OSnzDZAd.js 2.3 kB 2.3 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/userStore-CLi7WEpR.js 1.83 kB 1.83 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
Utilities & Hooks — 16.6 kB (baseline 16.6 kB) • ⚪ 0 B

Helpers, composables, and utility bundles

File Before After Δ Raw Δ Gzip Δ Brotli
assets/_plugin-vue_export-helper-DkXvIbNw.js 218 B 218 B ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/audioUtils-DKpVTeFd.js 1.04 kB 1.04 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/colorUtil-Cvq9baIq.js 6.89 kB 6.89 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/markdownRendererUtil-BgHJHHDI.js 1.49 kB 1.49 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeFilterUtil-9joKPoBW.js 242 B 242 B ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/subscriptionCheckoutUtil-QK0__Mly.js 1.63 kB 1.63 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/useCurrentUser-wSJoyYCH.js 572 B 572 B ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/useErrorHandling-Dh2v0xl8.js 4.51 kB 4.51 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
Vendor & Third-Party — 9.09 MB (baseline 9.09 MB) • ⚪ 0 B

External libraries and shared vendor chunks

File Before After Δ Raw Δ Gzip Δ Brotli
assets/vendor-chart-vHYiiHjX.js 398 kB 398 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-other-bLc542qk.js 4.34 MB 4.34 MB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-primevue-Dn50BkoY.js 1.71 MB 1.71 MB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-reka-ui-Dfa--nkF.js 97.9 kB 97.9 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-three-ROpDBAgW.js 1.84 MB 1.84 MB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-tiptap-S96Ju_Nb.js 185 kB 185 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-vue-B8djomGx.js 131 kB 131 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-xterm-C9PB687x.js 397 kB 397 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
Other — 5.88 MB (baseline 5.88 MB) • ⚪ 0 B

Bundles that do not match a named category

File Before After Δ Raw Δ Gzip Δ Brotli
assets/AudioPreviewPlayer-B0uQmhnC.js 11 kB 11 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/AudioPreviewPlayer-B3CuU96s.js 684 B 684 B ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/auto-C5ZGWZyn.js 1.7 kB 1.7 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/BaseViewTemplate-Dg5EhO0B.js 1.69 kB 1.69 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/cloudBadges-BPRHmhBu.js 1.12 kB 1.12 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/CloudRunButtonWrapper-T2h0CiiP.js 1.42 kB 1.42 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/cloudSessionCookie-tyLSCTkt.js 2.82 kB 2.82 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/cloudSubscription-BtWYIgaf.js 1.07 kB 1.07 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-74VeoT2L.js 16 kB 16 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-9ii3ccE4.js 16.8 kB 16.8 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-BShcLwsT.js 16.7 kB 16.7 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-CMtYk1Gs.js 16.3 kB 16.3 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-CYizNPru.js 14.6 kB 14.6 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-D0WVi2ht.js 18 kB 18 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-D8zDZ0UJ.js 14.4 kB 14.4 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-DBbLtXiw.js 15.4 kB 15.4 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-Dys1-7rI.js 15.4 kB 15.4 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-p9MydakS.js 15.4 kB 15.4 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-yBORlM3z.js 15.2 kB 15.2 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/core-9xcy8kYp.js 165 kB 165 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/GlobalToast-D04-FfLg.js 2.28 kB 2.28 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/graphHasMissingNodes-CSr5DkfZ.js 696 B 696 B ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/LazyImage-Bn5GaOgn.js 12.1 kB 12.1 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/Load3D-DQ9rIfVa.js 613 B 613 B ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/Load3D-DRVkydcV.js 46.7 kB 46.7 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-B33BFy-D.js 117 kB 117 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-B3j9Wj4A.js 120 kB 120 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-B9-N-fmZ.js 141 kB 141 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-BjYgA8mF.js 113 kB 113 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-C-UvOl0x.js 130 kB 130 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-ConSpAri.js 113 kB 113 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-DBE4NxIe.js 115 kB 115 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-DVyQQmM4.js 100 kB 100 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-IoczdKWQ.js 137 kB 137 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-IoLMIWI3.js 157 kB 157 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-YL97z-XK.js 101 kB 101 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/Media3DTop-GsHUjpY2.js 1.18 kB 1.18 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/MediaAudioTop-D_Vp5xGA.js 1.37 kB 1.37 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/MediaImageTop-BUMpJa5p.js 1.64 kB 1.64 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/MediaVideoTop-28j2AhD8.js 2.19 kB 2.19 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/mixpanel.module-CB67EPbl.js 92 B 92 B ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-1PKzV3OV.js 313 kB 313 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-B-mHJi4O.js 343 kB 343 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-BCe4dBax.js 415 kB 415 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-bpuIQktF.js 381 kB 381 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-BwIvX0bi.js 381 kB 381 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-C1THh2dv.js 339 kB 339 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-C9nTL5aq.js 310 kB 310 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-CgutFJ5h.js 352 kB 352 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-CvQIG1f-.js 336 kB 336 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-DkA0o-y8.js 333 kB 333 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-DsbG2xwK.js 339 kB 339 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/OBJLoader2WorkerModule-DTMpvldF.js 109 kB 109 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/PanelTemplate-Cc-9DDYs.js 14.5 kB 14.5 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/preservedQueryNamespaces-8IvUKrEM.js 2.7 kB 2.7 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/previousFullPath-Bcl0ORRA.js 603 B 603 B ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/rolldown-runtime-uYyVBMFy.js 1.34 kB 1.34 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/Slider-hv4kjqwF.js 3.42 kB 3.42 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/src-DWRIFAAP.js 191 B 191 B ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/SubscribeToRun-nV7zD2xW.js 2.05 kB 2.05 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/SubscriptionRequiredDialogContent-DCDWHUPm.js 25.2 kB 25.2 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/ValueControlPopover-qpzK10Gw.js 4.87 kB 4.87 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/widget-B5EDHllb.js 383 B 383 B ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetAudioUI-CXGFnp1b.js 2.94 kB 2.94 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetChart-DRIbqr_C.js 2.15 kB 2.15 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetColorPicker-BcstGdXI.js 2.81 kB 2.81 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetGalleria-BzPuqeco.js 3.55 kB 3.55 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetImageCompare-uEcmHx7Y.js 2.99 kB 2.99 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetInputNumber-CNFn_BT1.js 14.2 kB 14.2 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetInputNumber-CP7L-FzE.js 353 B 353 B ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetInputText-EhKaPM20.js 1.76 kB 1.76 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetLayoutField-DjlRR98l.js 1.84 kB 1.84 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetLegacy-lSq-vbXs.js 595 B 595 B ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetMarkdown-BpAyuROx.js 2.52 kB 2.52 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/widgetPropFilter-C2EFGYWj.js 1.04 kB 1.04 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetRecordAudio-DoVVmf6u.js 16.9 kB 16.9 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetSelect-C5fWCLrj.js 42.4 kB 42.4 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetSelect-V6Xmcb6D.js 779 B 779 B ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetTextarea-XRQxHwR9.js 2.7 kB 2.7 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetToggleSwitch-BWMMHTTz.js 2.26 kB 2.26 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetWithControl-C7PvS1Wo.js 3.62 kB 3.62 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B

@DrJKL DrJKL force-pushed the drjkl/configsolidation branch from d7e80ab to ae16759 Compare January 17, 2026 20:36
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: 2

🤖 Fix all issues with AI agents
In `@vite.config.mts`:
- Around line 14-15: The Vite-only typing prevents Vitest-specific `test`
options from being type-checked; update the config typing to use Vitest-aware
types by replacing or augmenting the current `UserConfig` usage with Vitest's
config type and ensuring `defineConfig` from 'vitest/config' is parametrized
accordingly (referencing `defineConfig` and the `test` block), e.g., import the
appropriate type from 'vitest' and apply it to the config or remove the
Vite-only `satisfies` so the `test` block (and symbols around `defineConfig` and
`UserConfig`) are validated by Vitest's types.
- Around line 516-535: The Vitest configuration in the test block (the test
object in vite.config.mts) currently only includes 'src/**' and 'packages/**'
patterns; add an include pattern for the tests-ui folder so files like
tests-ui/stores/templateRankingStore.test.ts and
tests-ui/tests/composables/graph/useGraphNodeManager.test.ts are picked up.
Update the test.include array to also contain a pattern for
tests-ui/**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx} so Vitest will run
those test files.

Comment on lines +516 to +535
test: {
globals: true,
environment: 'happy-dom',
setupFiles: ['./vitest.setup.ts'],
retry: process.env.CI ? 2 : 0,
include: [
'src/**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx}',
'packages/**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx}'
],
coverage: {
reporter: ['text', 'json', 'html']
},
exclude: [
'**/node_modules/**',
'**/dist/**',
'**/cypress/**',
'**/.{idea,git,cache,output,temp}/**',
'**/{karma,rollup,webpack,vite,vitest,jest,ava,babel,nyc,cypress,tsup,build,eslint,prettier}.config.*'
],
silent: 'passed-only'
Copy link
Contributor

@coderabbitai coderabbitai bot Jan 17, 2026

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:

#!/bin/bash
# Check if tests-ui directory exists
if [ -d tests-ui ]; then
  echo "=== tests-ui directory exists ==="
  # Find test files in tests-ui
  fd -a -e ts -e tsx -e js -e jsx -e mts -e cts -e mjs -e cjs '(\.test|\.spec)\.' tests-ui | head -20
else
  echo "tests-ui directory does not exist"
fi

# Check current vite.config.mts include patterns
echo -e "\n=== Vite config include patterns ===" 
sed -n '516,535p' vite.config.mts

Repository: Comfy-Org/ComfyUI_frontend

Length of output: 905


Add tests-ui/** to Vitest include patterns.

Tests in tests-ui/ won't run with the current configuration. Real test files exist at tests-ui/stores/templateRankingStore.test.ts and tests-ui/tests/composables/graph/useGraphNodeManager.test.ts, but Vitest's include patterns only cover src/** and packages/**. This reduces coverage and misses regressions for unit/component tests in the tests-ui directory.

Add tests-ui to include
     include: [
       'src/**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx}',
-      'packages/**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx}'
+      'packages/**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx}',
+      'tests-ui/**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx}'
     ],
🤖 Prompt for AI Agents
In `@vite.config.mts` around lines 516 - 535, The Vitest configuration in the test
block (the test object in vite.config.mts) currently only includes 'src/**' and
'packages/**' patterns; add an include pattern for the tests-ui folder so files
like tests-ui/stores/templateRankingStore.test.ts and
tests-ui/tests/composables/graph/useGraphNodeManager.test.ts are picked up.
Update the test.include array to also contain a pattern for
tests-ui/**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx} so Vitest will run
those test files.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Does tests-ui exist?

Copy link
Contributor

Choose a reason for hiding this comment

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

@DrJKL Yes, the tests-ui directory exists. The script output in my previous analysis shows:

=== tests-ui directory exists ===
tests-ui/stores/templateRankingStore.test.ts
tests-ui/tests/composables/graph/useGraphNodeManager.test.ts

The directory contains at least two test files that won't be picked up by the current Vitest configuration since the include patterns only cover src/** and packages/**. Adding tests-ui/**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx} to the include array would ensure these tests run.


🧠 Learnings used
Learnt from: CR
Repo: Comfy-Org/ComfyUI_frontend PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-01-16T21:33:34.380Z
Learning: Applies to +(tests-ui|src)/**/*.test.ts : For mocking in tests, leverage Vitest's utilities; keep module mocks contained without global mutable state

Learnt from: CR
Repo: Comfy-Org/ComfyUI_frontend PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-01-16T21:33:34.380Z
Learning: Applies to +(tests-ui|src)/**/*.test.ts : For component testing, use Vue Test Utils and make components easy to test

Learnt from: CR
Repo: Comfy-Org/ComfyUI_frontend PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-01-16T21:33:34.380Z
Learning: Applies to +(tests-ui|src|browser_tests)/**/*.+(test.ts|spec.ts) : Be parsimonious in testing; do not write redundant tests

Learnt from: CR
Repo: Comfy-Org/ComfyUI_frontend PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-01-16T21:33:34.380Z
Learning: Applies to +(tests-ui|src|browser_tests)/**/*.+(test.ts|spec.ts) : Do not write tests dependent on non-behavioral features like utility classes or styles

Learnt from: CR
Repo: Comfy-Org/ComfyUI_frontend PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-01-16T21:33:34.380Z
Learning: Applies to +(tests-ui|src|browser_tests)/**/*.+(test.ts|spec.ts) : Do not mock what you don't own; be selective with external dependencies

Learnt from: CR
Repo: Comfy-Org/ComfyUI_frontend PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-01-16T21:33:34.380Z
Learning: Applies to +(tests-ui|src)/**/*.test.ts : Aim for behavioral coverage of critical and new features

Learnt from: CR
Repo: Comfy-Org/ComfyUI_frontend PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-01-16T21:33:34.380Z
Learning: Applies to +(tests-ui|src)/**/*.test.ts : Unit and component test files must use `.test.ts` extension and be located in `tests-ui/` or `src/**/*.test.ts`

Learnt from: CR
Repo: Comfy-Org/ComfyUI_frontend PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-01-16T21:33:34.380Z
Learning: Applies to +(tests-ui|src)/**/*.test.ts : Use `vi.hoisted()` if necessary to allow per-test Arrange phase manipulation of mock state

Learnt from: CR
Repo: Comfy-Org/ComfyUI_frontend PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-01-16T21:33:34.380Z
Learning: Applies to +(tests-ui|src|browser_tests)/**/*.+(test.ts|spec.ts) : Write tests for all changes, especially bug fixes to catch regressions

Learnt from: CR
Repo: Comfy-Org/ComfyUI_frontend PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-01-16T21:33:34.380Z
Learning: Applies to src/**/*.{ts,tsx,vue} : ESLint rules: Vue + TS rules, no floating promises, unused imports disallowed, i18n raw text restrictions in templates

Learnt from: CR
Repo: Comfy-Org/ComfyUI_frontend PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-01-16T21:33:34.380Z
Learning: Applies to +(tests-ui|src)/**/*.test.ts : Do not write tests that just test the mocks; ensure tests fail when code behaves unexpectedly

Learnt from: DrJKL
Repo: Comfy-Org/ComfyUI_frontend PR: 7303
File: src/components/topbar/CurrentUserPopover.test.ts:199-205
Timestamp: 2025-12-10T03:09:19.636Z
Learning: For test files in the Comfy-Org/ComfyUI_frontend repository: When writing tests, prefer selecting elements by accessible properties (text content, aria-label, role, accessible name) over data-testid attributes. This ensures tests verify actual user-facing behavior and accessibility compliance.

Learnt from: DrJKL
Repo: Comfy-Org/ComfyUI_frontend PR: 7649
File: tests-ui/tests/platform/cloud/subscription/components/SubscriptionPanel.test.ts:189-194
Timestamp: 2025-12-22T21:36:46.909Z
Learning: In the Comfy-Org/ComfyUI_frontend repository test files: Do not stub primitive UI components or customized primitive components (e.g., Button). Instead, import and register the real components in test setup. This ensures tests accurately reflect production behavior and component API usage.

Learnt from: DrJKL
Repo: Comfy-Org/ComfyUI_frontend PR: 7894
File: src/renderer/extensions/vueNodes/widgets/components/WidgetToggleSwitch.test.ts:11-14
Timestamp: 2026-01-08T02:40:22.621Z
Learning: In the Comfy-Org/ComfyUI_frontend repository test files: When testing components, import the real type definitions from the component files instead of duplicating interface definitions in the test files. This prevents type drift and maintains consistency.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Copy link
Contributor

Choose a reason for hiding this comment

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

Seems like the humans are having a chat. I'll hop back into my burrow for now. If you need me again, just tag @coderabbitai in a new comment, and I'll come hopping out!

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Oh, and @AustinMroz !

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Adding a lint-staged check to start.

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 `@lint-staged.config.mjs`:
- Around line 3-5: The current lint-staged rule for 'tests-ui/**' blocks any
staged change; replace the static rule with a function that only fails when
newly added files under that pattern are staged by running a git cached diff
filtered for added files (e.g. using "git diff --cached --name-status
--diff-filter=A") and checking whether any of those added paths match
'tests-ui/**'; if matches exist, print the deprecation message and exit 1,
otherwise return a no-op so renames/deletions/edits don't trigger the check.
Ensure you update the rule for 'tests-ui/**' in the lint-staged config to use
this function-based approach.
♻️ Duplicate comments (1)
vite.config.mts (1)

516-535: Ensure tests under tests-ui are either migrated or included.

The include patterns only cover src/** and packages/**. If any tests still live in tests-ui/, they won’t run. With the new lint-staged rule blocking additions, please confirm those tests are migrated or add tests-ui/** temporarily.

✅ Option A: include tests-ui until migration completes
     include: [
       'src/**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx}',
-      'packages/**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx}'
+      'packages/**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx}',
+      'tests-ui/**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx}'
     ],
#!/bin/bash
# Check if any tests still exist under tests-ui/
if [ -d tests-ui ]; then
  fd -a -e ts -e tsx -e js -e jsx -e mts -e cts -e mjs -e cjs '(\.test|\.spec)\.' tests-ui
fi

Comment on lines 3 to +5
export default {
'tests-ui/**': () => 'echo "Files in tests-ui/ are deprecated. Colocate tests with source files." && exit 1',

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 -n lint-staged.config.mjs

Repository: Comfy-Org/ComfyUI_frontend

Length of output: 196


🏁 Script executed:

# Check if there are other lint-staged configs or documentation in the repo
fd -t f "lint-staged" --or -name "*lint*" -type f | grep -E "\.(mjs|js|json|md)$" | head -20

Repository: Comfy-Org/ComfyUI_frontend

Length of output: 196


🏁 Script executed:

# Search for git diff usage in the codebase to understand patterns
rg "git diff.*--cached" -A 2 -B 2

Repository: Comfy-Org/ComfyUI_frontend

Length of output: 196


🌐 Web query:

lint-staged glob pattern function return value behavior

💡 Result:

Short answer: lint-staged lets you use functions in JS configs; those functions receive the (staged) filenames and must return either

  • a string (one shell command),
  • an array of strings (multiple commands), or
  • a Promise resolving to one of the above.

Important details

  • If you export a function as the whole config, it receives ALL staged filenames. If you use a function as a value for a specific glob key, it receives only the staged files that match that glob. [1][2]
  • Returned command strings are treated as complete shell commands. They do NOT have filenames automatically appended — include the filenames in the returned string(s) yourself (or return commands that already incorporate the filenames). [2]
  • Functions may be async (return a Promise); use awaiting/filtering inside the function when needed (examples shown in the docs). [2][3]

Examples (conceptual)

  • Export-as-function:
    (filenames) => eslint --fix ${filenames.join(' ')} // receives all staged files
  • Per-glob function:
    '*.js': (files) => files.length ? [eslint --fix ${files.join(' ')}] : [] // receives only matched files

Sources

  • lint-staged docs (JS config / function signature & examples). [1]
  • lint-staged README on GitHub (filtering + behavior for glob keys). [2]

Scope the tests-ui lint-staged block to new files only.

The rule currently blocks any staged change under tests-ui/ (including deletions and renames), preventing migrations without --no-verify. Restrict the block to new file additions only.

💡 Proposed fix (block only added files)
-import path from 'node:path'
+import path from 'node:path'
+import { execSync } from 'node:child_process'

 export default {
-  'tests-ui/**': () => 'echo "Files in tests-ui/ are deprecated. Colocate tests with source files." && exit 1',
+  'tests-ui/**': () => {
+    const added = execSync(
+      'git diff --cached --name-status --diff-filter=A -- tests-ui',
+      { encoding: 'utf8' }
+    )
+    return added.trim()
+      ? 'echo "Files in tests-ui/ are deprecated. Colocate tests with source files." && exit 1'
+      : []
+  },
🤖 Prompt for AI Agents
In `@lint-staged.config.mjs` around lines 3 - 5, The current lint-staged rule for
'tests-ui/**' blocks any staged change; replace the static rule with a function
that only fails when newly added files under that pattern are staged by running
a git cached diff filtered for added files (e.g. using "git diff --cached
--name-status --diff-filter=A") and checking whether any of those added paths
match 'tests-ui/**'; if matches exist, print the deprecation message and exit 1,
otherwise return a no-op so renames/deletions/edits don't trigger the check.
Ensure you update the rule for 'tests-ui/**' in the lint-staged config to use
this function-based approach.

@DrJKL DrJKL merged commit de2e37e into main Jan 17, 2026
27 checks passed
@DrJKL DrJKL deleted the drjkl/configsolidation branch January 17, 2026 21:02
godwiniheuwa pushed a commit to godwiniheuwa/ComfyUI_frontend that referenced this pull request Jan 22, 2026
Moves vitest configuration from `vitest.config.ts` into the `test`
section of `vite.config.mts` and deletes the separate vitest config
file.

┆Issue is synchronized with this [Notion
page](https://www.notion.so/PR-8132-chore-merge-vitest-config-into-vite-config-mts-2eb6d73d365081ab81b5dca11fadf13a)
by [Unito](https://www.unito.io)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:M This PR changes 30-99 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants