Skip to content

[refactor] Unify small modal dialog styles with showSmallLayoutDialog#8834

Merged
DrJKL merged 8 commits intomainfrom
refactor/small-dialog-a
Feb 20, 2026
Merged

[refactor] Unify small modal dialog styles with showSmallLayoutDialog#8834
DrJKL merged 8 commits intomainfrom
refactor/small-dialog-a

Conversation

@viva-jinyi
Copy link
Member

@viva-jinyi viva-jinyi commented Feb 12, 2026

Summary

Extract a shared showSmallLayoutDialog utility and move dialog-specific logic into composables, unifying the duplicated pt configurations across small modal dialogs.

Changes

  • showSmallLayoutDialog: Added to dialogService.ts with a single unified pt config for all small modal dialogs (missing nodes, missing models, import failed, node conflict)
  • Composables: Extracted 4 dialog functions from dialogService into dedicated composables following the useSettingsDialog / useModelSelectorDialog pattern:
    • useMissingNodesDialog
    • useMissingModelsDialog
    • useImportFailedNodeDialog
    • useNodeConflictDialog
  • Each composable uses direct imports, synchronous show(), hide(), and a DIALOG_KEY constant
  • Updated all call sites (app.ts, useHelpCenter, PackEnableToggle, PackInstallButton, useImportFailedDetection)

Review Focus

  • Unified pt config removes minor style variations between dialogs — intentional design unification

┆Issue is synchronized with this Notion page by Unito

@viva-jinyi viva-jinyi added enhancement New feature or request area:ui General user interface and experience improvements labels Feb 12, 2026
@viva-jinyi viva-jinyi requested review from a team and ltdrdata as code owners February 12, 2026 09:11
@dosubot dosubot bot added the size:L This PR changes 100-499 lines, ignoring generated files. label Feb 12, 2026
@github-actions
Copy link

github-actions bot commented Feb 12, 2026

🎨 Storybook Build Status

Build completed successfully!

⏰ Completed at: 02/20/2026, 03:54:55 AM UTC

🔗 Links


🎉 Your Storybook is ready for review!

@github-actions
Copy link

github-actions bot commented Feb 12, 2026

Playwright: ✅ 522 passed, 0 failed · 2 flaky

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

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Feb 12, 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

Introduces dedicated small-layout dialog composables (MissingModels, MissingNodes, ImportFailedNode, NodeConflict), removes several specialized dialog functions from the central dialog service in favor of showSmallLayoutDialog, updates call sites/tests to use new composables, and adjusts a Storybook build option. (33 words)

Changes

Cohort / File(s) Summary
Dialog service refactor
src/services/dialogService.ts
Removed specialized show* dialog helpers and lazy dialog imports; added showSmallLayoutDialog which separates caller dialogComponentProps from internal props and forwards options to the dialog store.
New dialog composables
src/composables/useMissingModelsDialog.ts, src/composables/useMissingNodesDialog.ts, src/workbench/extensions/manager/composables/useImportFailedNodeDialog.ts, src/workbench/extensions/manager/composables/useNodeConflictDialog.ts
Added composables that manage a fixed dialog key and expose show(...) and hide() to open small-layout dialogs wired with specific header/content/footer components and props.
Call site updates
src/composables/useHelpCenter.ts, src/scripts/app.ts, src/platform/workflow/core/services/workflowService.ts, src/workbench/extensions/manager/composables/useImportFailedDetection.ts
Replaced direct useDialogService usages with the new composables (useNodeConflictDialog, useMissingNodesDialog, useMissingModelsDialog, useImportFailedNodeDialog) and updated show invocation shapes.
Component imports updated
src/workbench/extensions/manager/components/manager/button/PackEnableToggle.vue, src/workbench/extensions/manager/components/manager/button/PackInstallButton.vue
Switched imports from generic dialog service to the node-conflict composable and aliased its show as the previous showNodeConflictDialog.
Tests updated
src/workbench/extensions/manager/composables/useImportFailedDetection.test.ts
Replaced dialogService-based mocks with mocks for the new useImportFailedNodeDialog composable and updated assertions to check calls to its show.
Build config tweak
.storybook/main.ts
Removed strictExecutionOrder: true from Storybook rollup output config. (minor)

Sequence Diagram(s)

sequenceDiagram
  participant Caller as Component / Service
  participant Composable as Dialog_Composable
  participant Service as Dialog_Service
  participant Store as Dialog_Store
  participant Parts as Header_Content_Footer

  Caller->>Composable: show(options)
  Composable->>Service: showSmallLayoutDialog(options...)
  Service->>Store: openDialog(key, componentRefs, mergedProps)
  Store->>Parts: render(header, content, footer with props)
  Parts->>Store: user action (e.g., button click) -> request close
  Store-->>Composable: dialog closed / lifecycle complete
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Poem

🐇 I hopped through modules, tidy and bright,
Swapped out helpers for composables light.
show and hide now find a fixed key,
Small dialogs open — neat as can be.
A carrot for code: snip, stitch, delight.

🚥 Pre-merge checks | ✅ 2 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 10.53% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (2 passed)
Check name Status Explanation
Title check ✅ Passed The title accurately describes the main refactoring goal of unifying small modal dialog styles with a shared showSmallLayoutDialog utility.
Description check ✅ Passed The PR description is well-structured with Summary, Changes, and Review Focus sections that match the template requirements and clearly explain the refactoring.

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

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch refactor/small-dialog-a

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 Feb 12, 2026

Bundle Size Report

Summary

  • Raw size: 20 MB baseline 20 MB — 🟢 -21.8 kB
  • Gzip: 4.26 MB baseline 4.28 MB — 🟢 -13.9 kB
  • Brotli: 3.3 MB baseline 3.32 MB — 🟢 -18.7 kB
  • Bundles: 219 current • 232 baseline • 204 added / 217 removed

Category Glance
Data & Services 🔴 +230 kB (2.4 MB) · Utilities & Hooks 🟢 -180 kB (57.6 kB) · Other 🟢 -70.4 kB (7.38 MB) · Panels & Settings 🟢 -629 B (430 kB) · Views & Navigation 🟢 -474 B (68.6 kB) · App Entry Points 🟢 -330 B (21.4 kB) · + 5 more

Per-category breakdown
App Entry Points — 21.4 kB (baseline 21.7 kB) • 🟢 -330 B

Main entry bundles and manifests

File Before After Δ Raw Δ Gzip Δ Brotli
assets/index-DQlcgag1.js (removed) 21.7 kB 🟢 -21.7 kB 🟢 -7.06 kB 🟢 -6.14 kB
assets/index-C8CsTwfb.js (new) 21.4 kB 🔴 +21.4 kB 🔴 +6.99 kB 🔴 +6.07 kB

Status: 1 added / 1 removed

Graph Workspace — 914 kB (baseline 914 kB) • 🟢 -194 B

Graph editor runtime, canvas, workflow orchestration

File Before After Δ Raw Δ Gzip Δ Brotli
assets/GraphView-Vnzj2gY2.js (removed) 914 kB 🟢 -914 kB 🟢 -196 kB 🟢 -149 kB
assets/GraphView-D2OWmiTB.js (new) 914 kB 🔴 +914 kB 🔴 +196 kB 🔴 +149 kB

Status: 1 added / 1 removed

Views & Navigation — 68.6 kB (baseline 69 kB) • 🟢 -474 B

Top-level views, pages, and routed surfaces

File Before After Δ Raw Δ Gzip Δ Brotli
assets/CloudSurveyView-DrCzi5x1.js (new) 15.5 kB 🔴 +15.5 kB 🔴 +3.31 kB 🔴 +2.82 kB
assets/CloudSurveyView-D4Y6w1nq.js (removed) 15.5 kB 🟢 -15.5 kB 🟢 -3.32 kB 🟢 -2.83 kB
assets/CloudLoginView-CGW9-ThJ.js (removed) 10.1 kB 🟢 -10.1 kB 🟢 -2.95 kB 🟢 -2.59 kB
assets/CloudLoginView-B5WgTKeB.js (new) 10 kB 🔴 +10 kB 🔴 +2.91 kB 🔴 +2.56 kB
assets/UserCheckView-D7R4Eth2.js (removed) 8.41 kB 🟢 -8.41 kB 🟢 -2.23 kB 🟢 -1.95 kB
assets/UserCheckView-DhCD0QkX.js (new) 8.41 kB 🔴 +8.41 kB 🔴 +2.22 kB 🔴 +1.94 kB
assets/CloudSignupView-CYyIaFZm.js (removed) 7.46 kB 🟢 -7.46 kB 🟢 -2.34 kB 🟢 -2.05 kB
assets/CloudSignupView-MXq1FpIG.js (new) 7.38 kB 🔴 +7.38 kB 🔴 +2.3 kB 🔴 +2.02 kB
assets/CloudLayoutView-D4uSP8-0.js (removed) 6.48 kB 🟢 -6.48 kB 🟢 -2.12 kB 🟢 -1.85 kB
assets/CloudLayoutView-Bw70SkQS.js (new) 6.4 kB 🔴 +6.4 kB 🔴 +2.08 kB 🔴 +1.81 kB
assets/CloudForgotPasswordView-CStnYql0.js (removed) 5.61 kB 🟢 -5.61 kB 🟢 -1.95 kB 🟢 -1.72 kB
assets/CloudForgotPasswordView-DNiGsbn0.js (new) 5.53 kB 🔴 +5.53 kB 🔴 +1.91 kB 🔴 +1.69 kB
assets/CloudAuthTimeoutView-Cb92c7dA.js (removed) 4.96 kB 🟢 -4.96 kB 🟢 -1.79 kB 🟢 -1.58 kB
assets/CloudAuthTimeoutView-DFWHLvNH.js (new) 4.88 kB 🔴 +4.88 kB 🔴 +1.75 kB 🔴 +1.53 kB
assets/CloudSubscriptionRedirectView-Clz65WF1.js (removed) 4.76 kB 🟢 -4.76 kB 🟢 -1.8 kB 🟢 -1.59 kB
assets/CloudSubscriptionRedirectView-DG04NEZ9.js (new) 4.68 kB 🔴 +4.68 kB 🔴 +1.76 kB 🔴 +1.56 kB
assets/UserSelectView-BiHHiXy-.js (removed) 4.5 kB 🟢 -4.5 kB 🟢 -1.64 kB 🟢 -1.47 kB
assets/UserSelectView-ooXpuB1q.js (new) 4.5 kB 🔴 +4.5 kB 🔴 +1.63 kB 🔴 +1.46 kB
assets/CloudSorryContactSupportView-D9UxxFTg.js (new) 1.02 kB 🔴 +1.02 kB 🔴 +541 B 🔴 +470 B
assets/CloudSorryContactSupportView-Dopf9g6e.js (removed) 1.02 kB 🟢 -1.02 kB 🟢 -539 B 🟢 -470 B
assets/layout-BfEfWBGo.js (removed) 296 B 🟢 -296 B 🟢 -223 B 🟢 -193 B
assets/layout-Bn5Nxcmc.js (new) 296 B 🔴 +296 B 🔴 +223 B 🔴 +188 B

Status: 11 added / 11 removed

Panels & Settings — 430 kB (baseline 430 kB) • 🟢 -629 B

Configuration panels, inspectors, and settings screens

File Before After Δ Raw Δ Gzip Δ Brotli
assets/settings-C16FMmHQ.js (removed) 38 kB 🟢 -38 kB 🟢 -9.24 kB 🟢 -7.6 kB
assets/settings-CzjpXwlp.js (new) 38 kB 🔴 +38 kB 🔴 +9.24 kB 🔴 +7.6 kB
assets/settings-BMpJMaIw.js (new) 33.7 kB 🔴 +33.7 kB 🔴 +8.22 kB 🔴 +6.9 kB
assets/settings-DrlmpX0N.js (removed) 33.7 kB 🟢 -33.7 kB 🟢 -8.22 kB 🟢 -6.92 kB
assets/settings-B0mOvnTo.js (new) 32 kB 🔴 +32 kB 🔴 +8.04 kB 🔴 +6.55 kB
assets/settings-CUDlxYNz.js (removed) 32 kB 🟢 -32 kB 🟢 -8.04 kB 🟢 -6.58 kB
assets/settings-C-rh-es6.js (new) 30.1 kB 🔴 +30.1 kB 🔴 +8.34 kB 🔴 +7 kB
assets/settings-Dzns-DGL.js (removed) 30.1 kB 🟢 -30.1 kB 🟢 -8.34 kB 🟢 -6.97 kB
assets/settings-Dp3u6l4N.js (new) 29.5 kB 🔴 +29.5 kB 🔴 +8 kB 🔴 +6.98 kB
assets/settings-q4NHzNGR.js (removed) 29.5 kB 🟢 -29.5 kB 🟢 -8 kB 🟢 -6.98 kB
assets/settings-Bl6OADKm.js (removed) 28.4 kB 🟢 -28.4 kB 🟢 -7.69 kB 🟢 -6.56 kB
assets/settings-CzpC_oh3.js (new) 28.4 kB 🔴 +28.4 kB 🔴 +7.68 kB 🔴 +6.58 kB
assets/settings-DZjzU5N0.js (new) 28.4 kB 🔴 +28.4 kB 🔴 +7.9 kB 🔴 +6.91 kB
assets/settings-fF_gBqEs.js (removed) 28.4 kB 🟢 -28.4 kB 🟢 -7.9 kB 🟢 -6.91 kB
assets/settings-CGtbLe_V.js (removed) 27.6 kB 🟢 -27.6 kB 🟢 -7.6 kB 🟢 -6.59 kB
assets/settings-rQc1NwAI.js (new) 27.6 kB 🔴 +27.6 kB 🔴 +7.6 kB 🔴 +6.59 kB
assets/settings-BcrCrxYO.js (new) 27.4 kB 🔴 +27.4 kB 🔴 +8.01 kB 🔴 +6.64 kB
assets/settings-ChhtiO5P.js (removed) 27.4 kB 🟢 -27.4 kB 🟢 -8.01 kB 🟢 -6.66 kB
assets/settings-BdMQ9yxb.js (new) 24.2 kB 🔴 +24.2 kB 🔴 +7.8 kB 🔴 +6.27 kB
assets/settings-CtdYHbe4.js (removed) 24.2 kB 🟢 -24.2 kB 🟢 -7.79 kB 🟢 -6.28 kB
assets/settings-BdC30R3n.js (removed) 23.6 kB 🟢 -23.6 kB 🟢 -7.56 kB 🟢 -5.88 kB
assets/settings-CgiUGcth.js (new) 23.6 kB 🔴 +23.6 kB 🔴 +7.56 kB 🔴 +5.87 kB
assets/SecretsPanel-D3Oa5zoS.js (removed) 21.5 kB 🟢 -21.5 kB 🟢 -5.3 kB 🟢 -4.65 kB
assets/SecretsPanel-DLRyER6v.js (new) 21.5 kB 🔴 +21.5 kB 🔴 +5.3 kB 🔴 +4.64 kB
assets/LegacyCreditsPanel-8sZGDkp_.js (removed) 20.7 kB 🟢 -20.7 kB 🟢 -5.58 kB 🟢 -4.91 kB
assets/LegacyCreditsPanel-BmPjOnPs.js (new) 20.6 kB 🔴 +20.6 kB 🔴 +5.54 kB 🔴 +4.88 kB
assets/SubscriptionPanel-B_rhlNH6.js (removed) 18.7 kB 🟢 -18.7 kB 🟢 -4.73 kB 🟢 -4.19 kB
assets/SubscriptionPanel-BjSdF96A.js (new) 18.5 kB 🔴 +18.5 kB 🔴 +4.68 kB 🔴 +4.16 kB
assets/KeybindingPanel-rms8rGYK.js (removed) 12.4 kB 🟢 -12.4 kB 🟢 -3.59 kB 🟢 -3.19 kB
assets/KeybindingPanel-CyrDOrKo.js (new) 12.3 kB 🔴 +12.3 kB 🔴 +3.55 kB 🔴 +3.15 kB
assets/ExtensionPanel-D97EepRK.js (removed) 9.43 kB 🟢 -9.43 kB 🟢 -2.67 kB 🟢 -2.38 kB
assets/ExtensionPanel-C2r6OunZ.js (new) 9.35 kB 🔴 +9.35 kB 🔴 +2.63 kB 🔴 +2.34 kB
assets/AboutPanel-DGJ7qcN_.js (removed) 8.53 kB 🟢 -8.53 kB 🟢 -2.44 kB 🟢 -2.2 kB
assets/AboutPanel-T10v7FOz.js (new) 8.53 kB 🔴 +8.53 kB 🔴 +2.44 kB 🔴 +2.19 kB
assets/ServerConfigPanel-DqpxxDIg.js (removed) 6.5 kB 🟢 -6.5 kB 🟢 -2.13 kB 🟢 -1.91 kB
assets/ServerConfigPanel-CQn-2wXB.js (new) 6.41 kB 🔴 +6.41 kB 🔴 +2.1 kB 🔴 +1.88 kB
assets/UserPanel-SdjfTyVs.js (removed) 6.21 kB 🟢 -6.21 kB 🟢 -2.02 kB 🟢 -1.76 kB
assets/UserPanel-BEqUNhKr.js (new) 6.13 kB 🔴 +6.13 kB 🔴 +1.97 kB 🔴 +1.73 kB
assets/cloudRemoteConfig-CoVc-zr8.js (removed) 1.49 kB 🟢 -1.49 kB 🟢 -730 B 🟢 -626 B
assets/cloudRemoteConfig-SOqYNMye.js (new) 1.41 kB 🔴 +1.41 kB 🔴 +690 B 🔴 +599 B
assets/refreshRemoteConfig-C7tKo8oK.js (new) 1.14 kB 🔴 +1.14 kB 🔴 +521 B 🔴 +458 B
assets/refreshRemoteConfig-D4bV7F3c.js (removed) 1.14 kB 🟢 -1.14 kB 🟢 -522 B 🟢 -473 B
assets/config-C5QaqZix.js (new) 996 B 🔴 +996 B 🔴 +541 B 🔴 +478 B
assets/config-DVXhTcN-.js (removed) 996 B 🟢 -996 B 🟢 -540 B 🟢 -447 B

Status: 22 added / 22 removed

User & Accounts — 16 kB (baseline 16.1 kB) • 🟢 -158 B

Authentication, profile, and account management bundles

File Before After Δ Raw Δ Gzip Δ Brotli
assets/PasswordFields-BMKNUiV3.js (removed) 4.51 kB 🟢 -4.51 kB 🟢 -1.36 kB 🟢 -1.2 kB
assets/PasswordFields-ChCYPNPm.js (new) 4.51 kB 🔴 +4.51 kB 🔴 +1.36 kB 🔴 +1.2 kB
assets/auth-CsxyQqJL.js (new) 3.4 kB 🔴 +3.4 kB 🔴 +1.18 kB 🔴 +992 B
assets/auth-Dlhr1JG5.js (removed) 3.4 kB 🟢 -3.4 kB 🟢 -1.18 kB 🟢 -992 B
assets/SignUpForm-CC1OOrEO.js (new) 3.01 kB 🔴 +3.01 kB 🔴 +1.23 kB 🔴 +1.11 kB
assets/SignUpForm-d1qEsY5B.js (removed) 3.01 kB 🟢 -3.01 kB 🟢 -1.23 kB 🟢 -1.1 kB
assets/UpdatePasswordContent-DVlLS4Pv.js (removed) 2.42 kB 🟢 -2.42 kB 🟢 -1.09 kB 🟢 -966 B
assets/UpdatePasswordContent-DbMtWkag.js (new) 2.34 kB 🔴 +2.34 kB 🔴 +1.05 kB 🔴 +924 B
assets/WorkspaceProfilePic-Cnfc3ZO2.js (removed) 1.57 kB 🟢 -1.57 kB 🟢 -822 B 🟢 -711 B
assets/WorkspaceProfilePic-DwMbocAN.js (new) 1.57 kB 🔴 +1.57 kB 🔴 +821 B 🔴 +711 B
assets/firebaseAuthStore-Bb_6NJzo.js (removed) 837 B 🟢 -837 B 🟢 -408 B 🟢 -368 B
assets/firebaseAuthStore-Z-9RWlXP.js (new) 758 B 🔴 +758 B 🔴 +366 B 🔴 +332 B
assets/auth-Byxqdm-b.js (new) 357 B 🔴 +357 B 🔴 +222 B 🔴 +212 B
assets/auth-CGF4_8xI.js (removed) 357 B 🟢 -357 B 🟢 -224 B 🟢 -191 B

Status: 7 added / 7 removed

Editors & Dialogs — 706 B (baseline 785 B) • 🟢 -79 B

Modals, dialogs, drawers, and in-app editors

File Before After Δ Raw Δ Gzip Δ Brotli
assets/useSubscriptionDialog-BL1HIEKX.js (removed) 785 B 🟢 -785 B 🟢 -397 B 🟢 -347 B
assets/useSubscriptionDialog-CWZ9eMGi.js (new) 706 B 🔴 +706 B 🔴 +359 B 🔴 +342 B

Status: 1 added / 1 removed

UI Components — 42.3 kB (baseline 42.5 kB) • 🟢 -236 B

Reusable component library chunks

File Before After Δ Raw Δ Gzip Δ Brotli
assets/useTerminalTabs-BCbVr19E.js (removed) 9.89 kB 🟢 -9.89 kB 🟢 -3.42 kB 🟢 -3.01 kB
assets/useTerminalTabs-DGoVAcML.js (new) 9.81 kB 🔴 +9.81 kB 🔴 +3.39 kB 🔴 +2.99 kB
assets/TopbarBadge-DPkSREWG.js (removed) 7.45 kB 🟢 -7.45 kB 🟢 -1.82 kB 🟢 -1.6 kB
assets/TopbarBadge-VWWyqurE.js (new) 7.45 kB 🔴 +7.45 kB 🔴 +1.82 kB 🔴 +1.6 kB
assets/ComfyQueueButton-Csc-RFF6.js (new) 7.17 kB 🔴 +7.17 kB 🔴 +2.32 kB 🔴 +2.07 kB
assets/ComfyQueueButton-BmFNWL7F.js (removed) 7.17 kB 🟢 -7.17 kB 🟢 -2.32 kB 🟢 -2.07 kB
assets/ScrubableNumberInput-DabUIV79.js (new) 5.96 kB 🔴 +5.96 kB 🔴 +2.06 kB 🔴 +1.83 kB
assets/ScrubableNumberInput-WfbEdKCZ.js (removed) 5.96 kB 🟢 -5.96 kB 🟢 -2.07 kB 🟢 -1.83 kB
assets/Button-BSbVSHEC.js (removed) 2.98 kB 🟢 -2.98 kB 🟢 -1.21 kB 🟢 -1.07 kB
assets/Button-CC5RleXn.js (new) 2.98 kB 🔴 +2.98 kB 🔴 +1.21 kB 🔴 +1.05 kB
assets/SubscribeButton-C1XBL5-Q.js (new) 2.35 kB 🔴 +2.35 kB 🔴 +1.02 kB 🔴 +885 B
assets/SubscribeButton-DWfuzu8O.js (removed) 2.35 kB 🟢 -2.35 kB 🟢 -1.02 kB 🟢 -888 B
assets/WidgetButton-BQtllWqj.js (removed) 1.84 kB 🟢 -1.84 kB 🟢 -875 B 🟢 -770 B
assets/WidgetButton-DwYqMhCJ.js (new) 1.84 kB 🔴 +1.84 kB 🔴 +876 B 🔴 +773 B
assets/cloudFeedbackTopbarButton-B1_RhJRi.js (removed) 1.64 kB 🟢 -1.64 kB 🟢 -876 B 🟢 -783 B
assets/cloudFeedbackTopbarButton-rsX9UAkF.js (new) 1.56 kB 🔴 +1.56 kB 🔴 +838 B 🔴 +746 B
assets/CloudBadge---rkZbzE.js (removed) 1.24 kB 🟢 -1.24 kB 🟢 -606 B 🟢 -525 B
assets/CloudBadge-OjhGOi8-.js (new) 1.24 kB 🔴 +1.24 kB 🔴 +606 B 🔴 +526 B
assets/UserAvatar-5-MljvF0.js (removed) 1.17 kB 🟢 -1.17 kB 🟢 -618 B 🟢 -521 B
assets/UserAvatar-DsMH6rUM.js (new) 1.17 kB 🔴 +1.17 kB 🔴 +618 B 🔴 +522 B
assets/ComfyQueueButton-C29L84xV.js (removed) 842 B 🟢 -842 B 🟢 -412 B 🟢 -374 B
assets/ComfyQueueButton-C0A1cFxV.js (new) 763 B 🔴 +763 B 🔴 +375 B 🔴 +342 B

Status: 11 added / 11 removed

Data & Services — 2.4 MB (baseline 2.17 MB) • 🔴 +230 kB

Stores, services, APIs, and repositories

File Before After Δ Raw Δ Gzip Δ Brotli
assets/dialogService-ZkUkUrCa.js (new) 1.63 MB 🔴 +1.63 MB 🔴 +363 kB 🔴 +277 kB
assets/dialogService-MsEtyWrY.js (removed) 1.39 MB 🟢 -1.39 MB 🟢 -313 kB 🟢 -241 kB
assets/api-BUhR4lzI.js (removed) 648 kB 🟢 -648 kB 🟢 -146 kB 🟢 -117 kB
assets/api-Dep_b6mc.js (new) 648 kB 🔴 +648 kB 🔴 +146 kB 🔴 +117 kB
assets/load3dService-BKM6W4WN.js (removed) 91 kB 🟢 -91 kB 🟢 -19.1 kB 🟢 -16.4 kB
assets/load3dService-BZaBQ6qo.js (new) 90.9 kB 🔴 +90.9 kB 🔴 +19 kB 🔴 +16.4 kB
assets/systemStatsStore-BLdr-WBN.js (new) 12.2 kB 🔴 +12.2 kB 🔴 +4.26 kB 🔴 +3.74 kB
assets/systemStatsStore-DPtXRGaL.js (removed) 12.2 kB 🟢 -12.2 kB 🟢 -4.27 kB 🟢 -3.75 kB
assets/releaseStore-CYD7WpBs.js (removed) 7.96 kB 🟢 -7.96 kB 🟢 -2.22 kB 🟢 -1.96 kB
assets/releaseStore-Z4f6V5ZX.js (new) 7.96 kB 🔴 +7.96 kB 🔴 +2.22 kB 🔴 +1.95 kB
assets/keybindingService-B-tgjEDL.js (removed) 6.57 kB 🟢 -6.57 kB 🟢 -1.72 kB 🟢 -1.49 kB
assets/keybindingService-VOMd775O.js (new) 6.52 kB 🔴 +6.52 kB 🔴 +1.71 kB 🔴 +1.48 kB
assets/dialogStore-DqEczCra.js (removed) 4.1 kB 🟢 -4.1 kB 🟢 -1.24 kB 🟢 -1.1 kB
assets/serverConfigStore-DWKub1Pu.js (new) 2.32 kB 🔴 +2.32 kB 🔴 +790 B 🔴 +691 B
assets/serverConfigStore-xj2wiTkX.js (removed) 2.32 kB 🟢 -2.32 kB 🟢 -790 B 🟢 -695 B
assets/bootstrapStore-9JlHJzxN.js (removed) 2.08 kB 🟢 -2.08 kB 🟢 -876 B 🟢 -795 B
assets/bootstrapStore-CF2QudL_.js (new) 2.08 kB 🔴 +2.08 kB 🔴 +875 B 🔴 +795 B
assets/userStore-BIJobQwx.js (removed) 1.85 kB 🟢 -1.85 kB 🟢 -720 B 🟢 -666 B
assets/userStore-BOWip_zx.js (new) 1.85 kB 🔴 +1.85 kB 🔴 +719 B 🔴 +666 B
assets/audioService-Cf83efg1.js (removed) 1.73 kB 🟢 -1.73 kB 🟢 -848 B 🟢 -727 B
assets/audioService-IwXa2gaD.js (new) 1.73 kB 🔴 +1.73 kB 🔴 +844 B 🔴 +724 B
assets/releaseStore-C2QYVyxf.js (removed) 809 B 🟢 -809 B 🟢 -403 B 🟢 -357 B
assets/settingStore-CIZs1nHF.js (removed) 793 B 🟢 -793 B 🟢 -404 B 🟢 -357 B
assets/workflowDraftStore-CjnKJP9c.js (removed) 785 B 🟢 -785 B 🟢 -397 B 🟢 -354 B
assets/dialogService-DcyvK0eb.js (removed) 774 B 🟢 -774 B 🟢 -390 B 🟢 -350 B
assets/releaseStore-Bl5xqZcM.js (new) 730 B 🔴 +730 B 🔴 +364 B 🔴 +333 B
assets/settingStore-CL5IAQnr.js (new) 714 B 🔴 +714 B 🔴 +365 B 🔴 +325 B
assets/workflowDraftStore-B8WYHdJZ.js (new) 706 B 🔴 +706 B 🔴 +358 B 🔴 +323 B
assets/dialogService-CN_MDQuO.js (new) 695 B 🔴 +695 B 🔴 +350 B 🔴 +313 B

Status: 14 added / 15 removed

Utilities & Hooks — 57.6 kB (baseline 237 kB) • 🟢 -180 kB

Helpers, composables, and utility bundles

File Before After Δ Raw Δ Gzip Δ Brotli
assets/useConflictDetection-CsOkMJE7.js (removed) 178 kB 🟢 -178 kB 🟢 -39.4 kB 🟢 -32.8 kB
assets/useLoad3d-BACPC0OQ.js (removed) 14.6 kB 🟢 -14.6 kB 🟢 -3.63 kB 🟢 -3.21 kB
assets/useLoad3d-BALTOAot.js (new) 14.6 kB 🔴 +14.6 kB 🔴 +3.63 kB 🔴 +3.21 kB
assets/useLoad3dViewer-BU2kQ803.js (new) 14.1 kB 🔴 +14.1 kB 🔴 +3.15 kB 🔴 +2.79 kB
assets/useLoad3dViewer-DWr4xZSg.js (removed) 14.1 kB 🟢 -14.1 kB 🟢 -3.15 kB 🟢 -2.79 kB
assets/colorUtil-CeP50apf.js (new) 7 kB 🔴 +7 kB 🔴 +2.14 kB 🔴 +1.9 kB
assets/colorUtil-CZQOOTdR.js (removed) 7 kB 🟢 -7 kB 🟢 -2.15 kB 🟢 -1.9 kB
assets/useFeatureFlags-BJZJCSv2.js (new) 3.5 kB 🔴 +3.5 kB 🔴 +1.08 kB 🔴 +931 B
assets/useFeatureFlags-CNQl3Zr1.js (removed) 3.5 kB 🟢 -3.5 kB 🟢 -1.08 kB 🟢 -926 B
assets/useWorkspaceUI-BvmiE5ZF.js (removed) 3 kB 🟢 -3 kB 🟢 -823 B 🟢 -703 B
assets/useWorkspaceUI-JzUCUB62.js (new) 3 kB 🔴 +3 kB 🔴 +823 B 🔴 +704 B
assets/useSubscriptionCredits-7mK2_BMZ.js (new) 2.75 kB 🔴 +2.75 kB 🔴 +1.04 kB 🔴 +903 B
assets/useSubscriptionCredits-Dyb9ATxY.js (removed) 2.75 kB 🟢 -2.75 kB 🟢 -1.04 kB 🟢 -901 B
assets/subscriptionCheckoutUtil-BaY8Le7d.js (removed) 2.53 kB 🟢 -2.53 kB 🟢 -1.06 kB 🟢 -951 B
assets/subscriptionCheckoutUtil-BkAZY5yC.js (new) 2.53 kB 🔴 +2.53 kB 🔴 +1.06 kB 🔴 +922 B
assets/useExternalLink-D3e-bVsc.js (removed) 1.66 kB 🟢 -1.66 kB 🟢 -773 B 🟢 -678 B
assets/useExternalLink-rlFHuPgy.js (new) 1.66 kB 🔴 +1.66 kB 🔴 +771 B 🔴 +679 B
assets/useCopyToClipboard-DCZrNTR0.js (removed) 1.57 kB 🟢 -1.57 kB 🟢 -670 B 🟢 -563 B
assets/markdownRendererUtil-Cu9hIV7U.js (new) 1.56 kB 🔴 +1.56 kB 🔴 +813 B 🔴 +697 B
assets/markdownRendererUtil-Dct6u2-O.js (removed) 1.56 kB 🟢 -1.56 kB 🟢 -811 B 🟢 -697 B
assets/useErrorHandling-DOBN2Ny6.js (removed) 1.5 kB 🟢 -1.5 kB 🟢 -631 B 🟢 -534 B
assets/useErrorHandling-faZRZBZt.js (new) 1.5 kB 🔴 +1.5 kB 🔴 +628 B 🔴 +533 B
assets/useWorkspaceSwitch-DG3bMfl7.js (new) 1.25 kB 🔴 +1.25 kB 🔴 +544 B 🔴 +477 B
assets/useWorkspaceSwitch-DrI9tR4N.js (removed) 1.25 kB 🟢 -1.25 kB 🟢 -545 B 🟢 -478 B
assets/useLoad3d-BkCXG4pC.js (removed) 908 B 🟢 -908 B 🟢 -442 B 🟢 -400 B
assets/useLoad3dViewer-h_s4vP-4.js (removed) 887 B 🟢 -887 B 🟢 -428 B 🟢 -386 B
assets/audioUtils-CKUg-_eO.js (removed) 858 B 🟢 -858 B 🟢 -500 B 🟢 -403 B
assets/audioUtils-vmywIV7V.js (new) 858 B 🔴 +858 B 🔴 +501 B 🔴 +404 B
assets/useLoad3d-FPxgxuN5.js (new) 829 B 🔴 +829 B 🔴 +407 B 🔴 +371 B
assets/useLoad3dViewer-mbvC0QlJ.js (new) 808 B 🔴 +808 B 🔴 +394 B 🔴 +356 B
assets/useCurrentUser-CGa6KqRx.js (removed) 771 B 🟢 -771 B 🟢 -393 B 🟢 -350 B
assets/useCurrentUser-BW2IcAev.js (new) 692 B 🔴 +692 B 🔴 +353 B 🔴 +315 B
assets/envUtil-BQSmRN2Q.js (new) 466 B 🔴 +466 B 🔴 +294 B 🔴 +249 B
assets/envUtil-C9Y4v_FL.js (removed) 466 B 🟢 -466 B 🟢 -295 B 🟢 -251 B
assets/_plugin-vue_export-helper-BYZQdlgo.js (removed) 315 B 🟢 -315 B 🟢 -232 B 🟢 -201 B
assets/_plugin-vue_export-helper-CY4XIWDa.js (new) 315 B 🔴 +315 B 🔴 +232 B 🔴 +201 B
assets/SkeletonUtils-CsnHjXS0.js (removed) 133 B 🟢 -133 B 🟢 -114 B 🟢 -106 B
assets/SkeletonUtils-Dbobu-mZ.js (new) 133 B 🔴 +133 B 🔴 +114 B 🔴 +107 B

Status: 18 added / 20 removed

Vendor & Third-Party — 8.69 MB (baseline 8.69 MB) • 🟢 -68 B

External libraries and shared vendor chunks

File Before After Δ Raw Δ Gzip Δ Brotli
assets/vendor-three-DSpQy18i.js (new) 1.8 MB 🔴 +1.8 MB 🔴 +385 kB 🔴 +280 kB
assets/vendor-three-ueviNA60.js (removed) 1.8 MB 🟢 -1.8 MB 🟢 -385 kB 🟢 -280 kB
assets/vendor-primevue-gefG45vj.js (new) 1.73 MB 🔴 +1.73 MB 🔴 +311 kB 🔴 +190 kB
assets/vendor-primevue-CbtWAzOu.js (removed) 1.73 MB 🟢 -1.73 MB 🟢 -311 kB 🟢 -190 kB
assets/vendor-other-DIFkoP9Z.js (removed) 1.52 MB 🟢 -1.52 MB 🟢 -318 kB 🟢 -253 kB
assets/vendor-other-DJyFg6na.js (new) 1.52 MB 🔴 +1.52 MB 🔴 +318 kB 🔴 +253 kB
assets/vendor-tiptap-Bi_34iZD.js (new) 625 kB 🔴 +625 kB 🔴 +146 kB 🔴 +119 kB
assets/vendor-tiptap-DN5cees9.js (removed) 625 kB 🟢 -625 kB 🟢 -146 kB 🟢 -119 kB
assets/vendor-chart-BVph5xqx.js (new) 399 kB 🔴 +399 kB 🔴 +95.7 kB 🔴 +79.5 kB
assets/vendor-chart-l-KY-tZQ.js (removed) 399 kB 🟢 -399 kB 🟢 -95.7 kB 🟢 -79.4 kB
assets/vendor-xterm-C4cqihSk.js (new) 374 kB 🔴 +374 kB 🔴 +75.5 kB 🔴 +61 kB
assets/vendor-xterm-Co8jWZ4q.js (removed) 374 kB 🟢 -374 kB 🟢 -75.5 kB 🟢 -61 kB
assets/vendor-axios-C4mPrLmU.js 70.3 kB 70.3 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-firebase-BvMr43CG.js 836 kB 836 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-i18n-cR3vmlFu.js 131 kB 131 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-markdown-oliHT-H5.js 102 kB 102 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-reka-ui-DAi_xVZa.js 255 kB 255 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-sentry-SQwstEKc.js 182 kB 182 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-vue-core-BjA-tjXK.js 311 kB 311 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-vueuse-DcEOrMQz.js 112 kB 112 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-yjs-CP_4YO8u.js 143 kB 143 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-zod-DcCUUPIi.js 109 kB 109 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B

Status: 6 added / 6 removed

Other — 7.38 MB (baseline 7.45 MB) • 🟢 -70.4 kB

Bundles that do not match a named category

File Before After Δ Raw Δ Gzip Δ Brotli
assets/i18n-B5K2ey-K.js (new) 505 kB 🔴 +505 kB 🔴 +96.9 kB 🔴 +75.4 kB
assets/i18n-nbGUZFga.js (removed) 505 kB 🟢 -505 kB 🟢 -96.9 kB 🟢 -75.4 kB
assets/nodeDefs-C8EEdlty.js (removed) 463 kB 🟢 -463 kB 🟢 -70.4 kB 🟢 -48.4 kB
assets/nodeDefs-DMxgX4TV.js (new) 463 kB 🔴 +463 kB 🔴 +70.4 kB 🔴 +48.3 kB
assets/nodeDefs-DnyKff9w.js (removed) 424 kB 🟢 -424 kB 🟢 -63.6 kB 🟢 -44.6 kB
assets/nodeDefs-DuxjZJ-z.js (new) 424 kB 🔴 +424 kB 🔴 +63.6 kB 🔴 +44.6 kB
assets/nodeDefs-CZL_1-em.js (new) 424 kB 🔴 +424 kB 🔴 +65.7 kB 🔴 +46.2 kB
assets/nodeDefs-UELmmk5d.js (removed) 424 kB 🟢 -424 kB 🟢 -65.7 kB 🟢 -46.2 kB
assets/nodeDefs-CSkN7O0u.js (removed) 391 kB 🟢 -391 kB 🟢 -63.6 kB 🟢 -44.5 kB
assets/nodeDefs-DQFI0zzu.js (new) 391 kB 🔴 +391 kB 🔴 +63.6 kB 🔴 +44.5 kB
assets/nodeDefs-lio-ffds.js (new) 381 kB 🔴 +381 kB 🔴 +62.3 kB 🔴 +44.2 kB
assets/nodeDefs-WApEcuCv.js (removed) 381 kB 🟢 -381 kB 🟢 -62.3 kB 🟢 -44.2 kB
assets/nodeDefs-8tsiuq53.js (new) 377 kB 🔴 +377 kB 🔴 +61 kB 🔴 +44.6 kB
assets/nodeDefs-CAIbbkfM.js (removed) 377 kB 🟢 -377 kB 🟢 -61 kB 🟢 -44.6 kB
assets/nodeDefs-DLqclSKl.js (removed) 377 kB 🟢 -377 kB 🟢 -62.6 kB 🟢 -45.3 kB
assets/nodeDefs-HAiLZk2c.js (new) 377 kB 🔴 +377 kB 🔴 +62.6 kB 🔴 +45.3 kB
assets/nodeDefs-D1lAZk-Z.js (removed) 373 kB 🟢 -373 kB 🟢 -59.7 kB 🟢 -43.5 kB
assets/nodeDefs-D620lk_v.js (new) 373 kB 🔴 +373 kB 🔴 +59.7 kB 🔴 +43.5 kB
assets/nodeDefs-Bd4CHa-U.js (removed) 369 kB 🟢 -369 kB 🟢 -58.8 kB 🟢 -43 kB
assets/nodeDefs-Was1m1AG.js (new) 369 kB 🔴 +369 kB 🔴 +58.8 kB 🔴 +43 kB
assets/nodeDefs-B1BJf69P.js (new) 346 kB 🔴 +346 kB 🔴 +61.2 kB 🔴 +42.9 kB
assets/nodeDefs-BqT3ZV-5.js (removed) 346 kB 🟢 -346 kB 🟢 -61.2 kB 🟢 -42.9 kB
assets/nodeDefs-D03E_Kzg.js (removed) 343 kB 🟢 -343 kB 🟢 -60 kB 🟢 -41.6 kB
assets/nodeDefs-DJ5iBI2n.js (new) 343 kB 🔴 +343 kB 🔴 +60 kB 🔴 +41.6 kB
assets/main-Bo3hm2ug.js (new) 190 kB 🔴 +190 kB 🔴 +49.9 kB 🔴 +39.8 kB
assets/main-Ca7Eeiz4.js (removed) 190 kB 🟢 -190 kB 🟢 -49.9 kB 🟢 -39.8 kB
assets/main-awxVnzsw.js (removed) 170 kB 🟢 -170 kB 🟢 -45 kB 🟢 -36.7 kB
assets/main-DkPPQYpL.js (new) 170 kB 🔴 +170 kB 🔴 +45.1 kB 🔴 +36.7 kB
assets/main-FLRCaU3I.js (removed) 164 kB 🟢 -164 kB 🟢 -45 kB 🟢 -36.3 kB
assets/main-XEp46eGp.js (new) 164 kB 🔴 +164 kB 🔴 +45 kB 🔴 +36.3 kB
assets/main-C-XiaTzV.js (new) 157 kB 🔴 +157 kB 🔴 +44.8 kB 🔴 +36.1 kB
assets/main-JwCGO2aL.js (removed) 157 kB 🟢 -157 kB 🟢 -44.8 kB 🟢 -36.1 kB
assets/main-BhTuc8pp.js (new) 144 kB 🔴 +144 kB 🔴 +43.4 kB 🔴 +36.7 kB
assets/main-C3o5fEfE.js (removed) 144 kB 🟢 -144 kB 🟢 -43.4 kB 🟢 -36.7 kB
assets/main-Bl8Fy3rY.js (new) 141 kB 🔴 +141 kB 🔴 +42.9 kB 🔴 +35 kB
assets/main-DS27V6NV.js (removed) 141 kB 🟢 -141 kB 🟢 -42.9 kB 🟢 -35 kB
assets/main-Def0uEpp.js (removed) 139 kB 🟢 -139 kB 🟢 -42.5 kB 🟢 -35.6 kB
assets/main-wXc1MGIE.js (new) 139 kB 🔴 +139 kB 🔴 +42.5 kB 🔴 +35.6 kB
assets/main-C3nv9kDt.js (removed) 137 kB 🟢 -137 kB 🟢 -42.7 kB 🟢 -36.2 kB
assets/main-paKyiK5-.js (new) 137 kB 🔴 +137 kB 🔴 +42.7 kB 🔴 +36.2 kB
assets/main-BjNyGyrP.js (new) 136 kB 🔴 +136 kB 🔴 +42 kB 🔴 +35.7 kB
assets/main-CvQ12exX.js (removed) 136 kB 🟢 -136 kB 🟢 -42 kB 🟢 -35.7 kB
assets/main-B98CI4eM.js (removed) 121 kB 🟢 -121 kB 🟢 -41.4 kB 🟢 -33.3 kB
assets/main-D-LaWT4q.js (new) 121 kB 🔴 +121 kB 🔴 +41.4 kB 🔴 +33.3 kB
assets/main-Bg-1LcRk.js (new) 120 kB 🔴 +120 kB 🔴 +41.4 kB 🔴 +33.1 kB
assets/main-Ddo0IR5Z.js (removed) 120 kB 🟢 -120 kB 🟢 -41.4 kB 🟢 -33.1 kB
assets/core-Db1cd86D.js (removed) 72.5 kB 🟢 -72.5 kB 🟢 -18.7 kB 🟢 -16 kB
assets/core-DuzIK_7E.js (new) 72.3 kB 🔴 +72.3 kB 🔴 +18.6 kB 🔴 +16 kB
assets/groupNode-CThUnf0e.js (new) 72.1 kB 🔴 +72.1 kB 🔴 +17.7 kB 🔴 +15.6 kB
assets/groupNode-p8IT0nu0.js (removed) 72.1 kB 🟢 -72.1 kB 🟢 -17.8 kB 🟢 -15.6 kB
assets/WidgetSelect-CHuHFWAz.js (removed) 57.8 kB 🟢 -57.8 kB 🟢 -12.3 kB 🟢 -10.6 kB
assets/WidgetSelect-2uM90AlO.js (new) 57.8 kB 🔴 +57.8 kB 🔴 +12.2 kB 🔴 +10.6 kB
assets/SubscriptionRequiredDialogContentWorkspace-m9g2MhJ_.js (removed) 45.9 kB 🟢 -45.9 kB 🟢 -8.58 kB 🟢 -7.44 kB
assets/SubscriptionRequiredDialogContentWorkspace-D361g5bO.js (new) 45.8 kB 🔴 +45.8 kB 🔴 +8.54 kB 🔴 +7.4 kB
assets/Load3DControls-DWCy6_7u.js (new) 30.9 kB 🔴 +30.9 kB 🔴 +5.34 kB 🔴 +4.64 kB
assets/Load3DControls-kLOPROsr.js (removed) 30.9 kB 🟢 -30.9 kB 🟢 -5.34 kB 🟢 -4.64 kB
assets/WorkspacePanelContent-dCxWAflC.js (removed) 29.3 kB 🟢 -29.3 kB 🟢 -6.12 kB 🟢 -5.4 kB
assets/WorkspacePanelContent-CkZHYF1Y.js (new) 29.2 kB 🔴 +29.2 kB 🔴 +6.08 kB 🔴 +5.35 kB
assets/SubscriptionRequiredDialogContent-B7odNl7N.js (removed) 26.2 kB 🟢 -26.2 kB 🟢 -6.59 kB 🟢 -5.8 kB
assets/SubscriptionRequiredDialogContent-02q7PbCr.js (new) 26.2 kB 🔴 +26.2 kB 🔴 +6.55 kB 🔴 +5.77 kB
assets/Load3dViewerContent-9bfBaQcC.js (removed) 23.1 kB 🟢 -23.1 kB 🟢 -5.19 kB 🟢 -4.5 kB
assets/Load3dViewerContent-CSk8QVud.js (new) 23 kB 🔴 +23 kB 🔴 +5.18 kB 🔴 +4.5 kB
assets/WidgetImageCrop-DtMXd9BI.js (removed) 22.2 kB 🟢 -22.2 kB 🟢 -5.53 kB 🟢 -4.88 kB
assets/MissingNodesContent-CgmAYC9r.js (removed) 22.2 kB 🟢 -22.2 kB 🟢 -5.76 kB 🟢 -5.1 kB
assets/WidgetImageCrop-LinRc-oE.js (new) 22.1 kB 🔴 +22.1 kB 🔴 +5.49 kB 🔴 +4.83 kB
assets/SubscriptionPanelContentWorkspace-Cuw7QPDy.js (removed) 21.6 kB 🟢 -21.6 kB 🟢 -5.02 kB 🟢 -4.43 kB
assets/SubscriptionPanelContentWorkspace-CxG9iPxa.js (new) 21.6 kB 🔴 +21.6 kB 🔴 +5.02 kB 🔴 +4.43 kB
assets/CurrentUserPopoverWorkspace-CeXFiNCu.js (removed) 19.9 kB 🟢 -19.9 kB 🟢 -4.88 kB 🟢 -4.36 kB
assets/CurrentUserPopoverWorkspace-WVL3X_mk.js (new) 19.8 kB 🔴 +19.8 kB 🔴 +4.85 kB 🔴 +4.33 kB
assets/SignInContent-1unrHkxr.js (removed) 19 kB 🟢 -19 kB 🟢 -4.81 kB 🟢 -4.21 kB
assets/SignInContent-Bx8S6P-D.js (new) 18.9 kB 🔴 +18.9 kB 🔴 +4.77 kB 🔴 +4.19 kB
assets/commands-DC3hZBvg.js (removed) 18.4 kB 🟢 -18.4 kB 🟢 -3.93 kB 🟢 -3.05 kB
assets/commands-DlSpFU8-.js (new) 18.4 kB 🔴 +18.4 kB 🔴 +3.93 kB 🔴 +3.05 kB
assets/WidgetRecordAudio-CPdpWCtj.js (removed) 17.4 kB 🟢 -17.4 kB 🟢 -4.96 kB 🟢 -4.45 kB
assets/WidgetRecordAudio-ClECxO6q.js (new) 17.3 kB 🔴 +17.3 kB 🔴 +4.92 kB 🔴 +4.41 kB
assets/MissingModelsWarning-C5VMkmTp.js (removed) 17.2 kB 🟢 -17.2 kB 🟢 -4.7 kB 🟢 -4.18 kB
assets/commands-B4RbG9Th.js (new) 17.2 kB 🔴 +17.2 kB 🔴 +3.63 kB 🔴 +2.84 kB
assets/commands-CrMAiWgs.js (removed) 17.2 kB 🟢 -17.2 kB 🟢 -3.63 kB 🟢 -2.82 kB
assets/commands-Br2FiHkj.js (new) 17.1 kB 🔴 +17.1 kB 🔴 +3.67 kB 🔴 +2.94 kB
assets/commands-IOkk_3T2.js (removed) 17.1 kB 🟢 -17.1 kB 🟢 -3.67 kB 🟢 -2.94 kB
assets/commands-6ntdtqc9.js (new) 16.6 kB 🔴 +16.6 kB 🔴 +3.71 kB 🔴 +2.92 kB
assets/commands-8341he__.js (removed) 16.6 kB 🟢 -16.6 kB 🟢 -3.71 kB 🟢 -2.92 kB
assets/commands-BfYA-6W-.js (removed) 16.3 kB 🟢 -16.3 kB 🟢 -3.46 kB 🟢 -2.88 kB
assets/commands-D3gGGUgv.js (new) 16.3 kB 🔴 +16.3 kB 🔴 +3.46 kB 🔴 +2.88 kB
assets/Load3D-Cms5lDkk.js (removed) 16.2 kB 🟢 -16.2 kB 🟢 -4.04 kB 🟢 -3.53 kB
assets/Load3D-gLxZKyqs.js (new) 16.2 kB 🔴 +16.2 kB 🔴 +4.03 kB 🔴 +3.51 kB
assets/commands-BgAs7KVZ.js (removed) 15.8 kB 🟢 -15.8 kB 🟢 -3.45 kB 🟢 -2.86 kB
assets/commands-DgX9pWvG.js (new) 15.8 kB 🔴 +15.8 kB 🔴 +3.45 kB 🔴 +2.85 kB
assets/commands-DBqn--Z9.js (new) 15.8 kB 🔴 +15.8 kB 🔴 +3.35 kB 🔴 +2.76 kB
assets/commands-DLUZjDoW.js (removed) 15.8 kB 🟢 -15.8 kB 🟢 -3.35 kB 🟢 -2.76 kB
assets/commands-BrlWvwVz.js (new) 15.7 kB 🔴 +15.7 kB 🔴 +3.31 kB 🔴 +2.77 kB
assets/commands-rPqSC0M_.js (removed) 15.7 kB 🟢 -15.7 kB 🟢 -3.31 kB 🟢 -2.77 kB
assets/commands-BV_NDvWz.js (new) 15.5 kB 🔴 +15.5 kB 🔴 +3.58 kB 🔴 +2.81 kB
assets/commands-D2TwPxZf.js (removed) 15.5 kB 🟢 -15.5 kB 🟢 -3.58 kB 🟢 -2.81 kB
assets/commands-BmIbopvA.js (new) 14.9 kB 🔴 +14.9 kB 🔴 +3.5 kB 🔴 +2.65 kB
assets/commands-CCtTeOf1.js (removed) 14.9 kB 🟢 -14.9 kB 🟢 -3.5 kB 🟢 -2.65 kB
assets/load3d-B6em7IIk.js (removed) 14.8 kB 🟢 -14.8 kB 🟢 -4.2 kB 🟢 -3.65 kB
assets/commands-BVWTuswJ.js (removed) 14.7 kB 🟢 -14.7 kB 🟢 -3.47 kB 🟢 -2.58 kB
assets/commands-CSxUmE31.js (new) 14.7 kB 🔴 +14.7 kB 🔴 +3.47 kB 🔴 +2.58 kB
assets/load3d-DNAYTafQ.js (new) 14.7 kB 🔴 +14.7 kB 🔴 +4.18 kB 🔴 +3.62 kB
assets/LazyImage-C812ZTaN.js (new) 12.3 kB 🔴 +12.3 kB 🔴 +3.8 kB 🔴 +3.34 kB
assets/LazyImage-DiT6c_gA.js (removed) 12.3 kB 🟢 -12.3 kB 🟢 -3.8 kB 🟢 -3.34 kB
assets/WidgetInputNumber-CAw2XPXE.js (removed) 11.8 kB 🟢 -11.8 kB 🟢 -3.31 kB 🟢 -2.97 kB
assets/WidgetInputNumber-Dzkht6uB.js (new) 11.8 kB 🔴 +11.8 kB 🔴 +3.31 kB 🔴 +2.97 kB
assets/AudioPreviewPlayer-DrSjCWT2.js (removed) 10.9 kB 🟢 -10.9 kB 🟢 -3.21 kB 🟢 -2.88 kB
assets/AudioPreviewPlayer-BMZVlZSL.js (new) 10.8 kB 🔴 +10.8 kB 🔴 +3.18 kB 🔴 +2.84 kB
assets/NodeConflictDialogContent-DkOE35cB.js (removed) 10.5 kB 🟢 -10.5 kB 🟢 -2.37 kB 🟢 -2.07 kB
assets/changeTracker-CGlfE3GY.js (new) 9.38 kB 🔴 +9.38 kB 🔴 +2.89 kB 🔴 +2.54 kB
assets/changeTracker-GzCQGJ6h.js (removed) 9.38 kB 🟢 -9.38 kB 🟢 -2.89 kB 🟢 -2.55 kB
assets/nodeTemplates-lABX6uTH.js (removed) 9.35 kB 🟢 -9.35 kB 🟢 -3.27 kB 🟢 -2.87 kB
assets/nodeTemplates-ComC5-qj.js (new) 9.27 kB 🔴 +9.27 kB 🔴 +3.24 kB 🔴 +2.84 kB
assets/SelectValue-BLaUzhId.js (removed) 8.94 kB 🟢 -8.94 kB 🟢 -2.27 kB 🟢 -2.01 kB
assets/SelectValue-CKdTjksa.js (new) 8.94 kB 🔴 +8.94 kB 🔴 +2.27 kB 🔴 +2 kB
assets/MissingNodesFooter-BJ_0FWbE.js (removed) 7.54 kB 🟢 -7.54 kB 🟢 -2.47 kB 🟢 -2.19 kB
assets/InviteMemberDialogContent-akfTi-Mt.js (removed) 7.44 kB 🟢 -7.44 kB 🟢 -2.31 kB 🟢 -2.02 kB
assets/InviteMemberDialogContent-CdCvUh0p.js (new) 7.35 kB 🔴 +7.35 kB 🔴 +2.27 kB 🔴 +1.98 kB
assets/WidgetWithControl-Q8bdL3Kk.js (removed) 7.08 kB 🟢 -7.08 kB 🟢 -2.65 kB 🟢 -2.36 kB
assets/WidgetWithControl-BAJCZ16Z.js (new) 7.01 kB 🔴 +7.01 kB 🔴 +2.61 kB 🔴 +2.33 kB
assets/Load3DConfiguration-DEcCnMlr.js (removed) 6.27 kB 🟢 -6.27 kB 🟢 -1.91 kB 🟢 -1.68 kB
assets/Load3DConfiguration-uhYJ2rWZ.js (new) 6.27 kB 🔴 +6.27 kB 🔴 +1.91 kB 🔴 +1.68 kB
assets/CreateWorkspaceDialogContent-BehdXhGb.js (removed) 5.58 kB 🟢 -5.58 kB 🟢 -2.01 kB 🟢 -1.75 kB
assets/CreateWorkspaceDialogContent-DpaLXjnu.js (new) 5.5 kB 🔴 +5.5 kB 🔴 +1.97 kB 🔴 +1.71 kB
assets/EditWorkspaceDialogContent-Mr3L4GBV.js (removed) 5.38 kB 🟢 -5.38 kB 🟢 -1.96 kB 🟢 -1.72 kB
assets/EditWorkspaceDialogContent-wGRoD0be.js (new) 5.3 kB 🔴 +5.3 kB 🔴 +1.92 kB 🔴 +1.68 kB
assets/ValueControlPopover-BZ7cZ4cc.js (removed) 4.97 kB 🟢 -4.97 kB 🟢 -1.79 kB 🟢 -1.6 kB
assets/ValueControlPopover-Xf6gJmM6.js (new) 4.89 kB 🔴 +4.89 kB 🔴 +1.75 kB 🔴 +1.56 kB
assets/Preview3d-BdZFOCai.js (removed) 4.86 kB 🟢 -4.86 kB 🟢 -1.58 kB 🟢 -1.39 kB
assets/CancelSubscriptionDialogContent-DeX1Hmfe.js (removed) 4.85 kB 🟢 -4.85 kB 🟢 -1.8 kB 🟢 -1.58 kB
assets/Preview3d-Bo35xk8m.js (new) 4.78 kB 🔴 +4.78 kB 🔴 +1.54 kB 🔴 +1.35 kB
assets/CancelSubscriptionDialogContent-B_OXJYvt.js (new) 4.76 kB 🔴 +4.76 kB 🔴 +1.76 kB 🔴 +1.55 kB
assets/AnimationControls-BcW_luDp.js (removed) 4.61 kB 🟢 -4.61 kB 🟢 -1.6 kB 🟢 -1.41 kB
assets/AnimationControls-BzKwvrey.js (new) 4.61 kB 🔴 +4.61 kB 🔴 +1.6 kB 🔴 +1.4 kB
assets/DeleteWorkspaceDialogContent-DVfEFK9_.js (removed) 4.29 kB 🟢 -4.29 kB 🟢 -1.65 kB 🟢 -1.44 kB
assets/DeleteWorkspaceDialogContent-Dj8YKt4u.js (new) 4.2 kB 🔴 +4.2 kB 🔴 +1.61 kB 🔴 +1.4 kB
assets/LeaveWorkspaceDialogContent-BlVG9NNg.js (removed) 4.12 kB 🟢 -4.12 kB 🟢 -1.6 kB 🟢 -1.39 kB
assets/RemoveMemberDialogContent-BFgAoMQ1.js (removed) 4.1 kB 🟢 -4.1 kB 🟢 -1.55 kB 🟢 -1.35 kB
assets/LeaveWorkspaceDialogContent-EX27Y0Rd.js (new) 4.03 kB 🔴 +4.03 kB 🔴 +1.56 kB 🔴 +1.35 kB
assets/RemoveMemberDialogContent-BdqRML-9.js (new) 4.01 kB 🔴 +4.01 kB 🔴 +1.5 kB 🔴 +1.32 kB
assets/RevokeInviteDialogContent-B7ydy_mI.js (removed) 4.01 kB 🟢 -4.01 kB 🟢 -1.56 kB 🟢 -1.37 kB
assets/RevokeInviteDialogContent-BGDUTjz1.js (new) 3.92 kB 🔴 +3.92 kB 🔴 +1.52 kB 🔴 +1.34 kB
assets/InviteMemberUpsellDialogContent-BjijOvWL.js (removed) 3.88 kB 🟢 -3.88 kB 🟢 -1.42 kB 🟢 -1.25 kB
assets/InviteMemberUpsellDialogContent-DciHYlSZ.js (new) 3.79 kB 🔴 +3.79 kB 🔴 +1.38 kB 🔴 +1.22 kB
assets/WidgetGalleria-Bc-bWiT9.js (removed) 3.61 kB 🟢 -3.61 kB 🟢 -1.39 kB 🟢 -1.25 kB
assets/WidgetGalleria-Daz0soUA.js (new) 3.61 kB 🔴 +3.61 kB 🔴 +1.39 kB 🔴 +1.25 kB
assets/Slider-0H4iS-Qs.js (removed) 3.52 kB 🟢 -3.52 kB 🟢 -1.36 kB 🟢 -1.19 kB
assets/Slider-D_ngVjVT.js (new) 3.52 kB 🔴 +3.52 kB 🔴 +1.36 kB 🔴 +1.19 kB
assets/saveMesh-DtRM_EZr.js (removed) 3.43 kB 🟢 -3.43 kB 🟢 -1.47 kB 🟢 -1.32 kB
assets/saveMesh-BU_daEXV.js (new) 3.35 kB 🔴 +3.35 kB 🔴 +1.44 kB 🔴 +1.28 kB
assets/WidgetBoundingBox-CnfNlgwP.js (removed) 3.19 kB 🟢 -3.19 kB 🟢 -894 B 🟢 -779 B
assets/WidgetBoundingBox-CXf2UpG7.js (new) 3.19 kB 🔴 +3.19 kB 🔴 +895 B 🔴 +779 B
assets/WidgetTextarea-BCCY3me8.js (new) 3.18 kB 🔴 +3.18 kB 🔴 +1.3 kB 🔴 +1.14 kB
assets/WidgetTextarea-CYEi5L6X.js (removed) 3.18 kB 🟢 -3.18 kB 🟢 -1.31 kB 🟢 -1.16 kB
assets/cloudSessionCookie-BOjy-VJG.js (removed) 3.15 kB 🟢 -3.15 kB 🟢 -1.1 kB 🟢 -980 B
assets/WidgetImageCompare-0odWRM2K.js (removed) 3.1 kB 🟢 -3.1 kB 🟢 -1.15 kB 🟢 -992 B
assets/WidgetImageCompare-Ds3saEb3.js (new) 3.1 kB 🔴 +3.1 kB 🔴 +1.15 kB 🔴 +1.02 kB
assets/cloudSessionCookie-C4l9xKIj.js (new) 3.07 kB 🔴 +3.07 kB 🔴 +1.07 kB 🔴 +968 B
assets/GlobalToast-C36GbVQ0.js (new) 2.91 kB 🔴 +2.91 kB 🔴 +1.21 kB 🔴 +1.03 kB
assets/GlobalToast-g8T61xSv.js (removed) 2.91 kB 🟢 -2.91 kB 🟢 -1.21 kB 🟢 -1.03 kB
assets/WidgetColorPicker-DO1qllXc.js (removed) 2.9 kB 🟢 -2.9 kB 🟢 -1.23 kB 🟢 -1.11 kB
assets/WidgetColorPicker-LYMr5zb-.js (new) 2.9 kB 🔴 +2.9 kB 🔴 +1.23 kB 🔴 +1.11 kB
assets/WidgetMarkdown-C-zu7uox.js (removed) 2.88 kB 🟢 -2.88 kB 🟢 -1.22 kB 🟢 -1.06 kB
assets/WidgetMarkdown-CYq8CHI1.js (new) 2.88 kB 🔴 +2.88 kB 🔴 +1.22 kB 🔴 +1.06 kB
assets/ApiNodesSignInContent-CBHU06Vm.js (new) 2.69 kB 🔴 +2.69 kB 🔴 +1.05 kB 🔴 +922 B
assets/ApiNodesSignInContent-Cx0rXs8X.js (removed) 2.69 kB 🟢 -2.69 kB 🟢 -1.05 kB 🟢 -956 B
assets/WidgetToggleSwitch-Ba3ojFdL.js (removed) 2.5 kB 🟢 -2.5 kB 🟢 -1.09 kB 🟢 -970 B
assets/WidgetToggleSwitch-BfjjyC7J.js (new) 2.5 kB 🔴 +2.5 kB 🔴 +1.09 kB 🔴 +974 B
assets/ImportFailedNodeContent-DFoq6kti.js (removed) 2.48 kB 🟢 -2.48 kB 🟢 -969 B 🟢 -823 B
assets/NodeConflictFooter-B_9doK9f.js (removed) 2.37 kB 🟢 -2.37 kB 🟢 -1.03 kB 🟢 -916 B
assets/MediaVideoTop-_lQOgDGQ.js (new) 2.23 kB 🔴 +2.23 kB 🔴 +939 B 🔴 +800 B
assets/MediaVideoTop-CJFEgO5M.js (removed) 2.23 kB 🟢 -2.23 kB 🟢 -940 B 🟢 -800 B
assets/WidgetChart-B9WHn-7I.js (new) 2.21 kB 🔴 +2.21 kB 🔴 +954 B 🔴 +824 B
assets/WidgetChart-DYXOzgzf.js (removed) 2.21 kB 🟢 -2.21 kB 🟢 -954 B 🟢 -822 B
assets/SubscribeToRun-fxFVFmUj.js (new) 2.2 kB 🔴 +2.2 kB 🔴 +1.01 kB 🔴 +885 B
assets/SubscribeToRun-PATG0ZKB.js (removed) 2.2 kB 🟢 -2.2 kB 🟢 -1.01 kB 🟢 -894 B
assets/WidgetLayoutField-4U6mdeZs.js (removed) 1.95 kB 🟢 -1.95 kB 🟢 -879 B 🟢 -765 B
assets/WidgetLayoutField-CDiEG33G.js (new) 1.95 kB 🔴 +1.95 kB 🔴 +879 B 🔴 +762 B
assets/ImportFailedNodeFooter-Cdg8lY9-.js (removed) 1.88 kB 🟢 -1.88 kB 🟢 -867 B 🟢 -755 B
assets/WidgetInputText-DTX5OxDV.js (new) 1.86 kB 🔴 +1.86 kB 🔴 +874 B 🔴 +791 B
assets/WidgetInputText-Jqw1b8Rg.js (removed) 1.86 kB 🟢 -1.86 kB 🟢 -876 B 🟢 -786 B
assets/Media3DTop-B8swZVwo.js (removed) 1.82 kB 🟢 -1.82 kB 🟢 -899 B 🟢 -769 B
assets/Media3DTop-uVW6UxXn.js (new) 1.82 kB 🔴 +1.82 kB 🔴 +901 B 🔴 +768 B
assets/BaseViewTemplate-CBbgFv9j.js (removed) 1.78 kB 🟢 -1.78 kB 🟢 -927 B 🟢 -807 B
assets/BaseViewTemplate-CPWbq97h.js (new) 1.78 kB 🔴 +1.78 kB 🔴 +928 B 🔴 +806 B
assets/MediaImageTop-BWaFQR3Q.js (new) 1.75 kB 🔴 +1.75 kB 🔴 +880 B 🔴 +751 B
assets/MediaImageTop-DezJhpVh.js (removed) 1.75 kB 🟢 -1.75 kB 🟢 -879 B 🟢 -753 B
assets/CloudRunButtonWrapper-CK6IKf_w.js (removed) 1.72 kB 🟢 -1.72 kB 🟢 -806 B 🟢 -740 B
assets/auto-Bt3L7FBS.js (removed) 1.7 kB 🟢 -1.7 kB 🟢 -621 B 🟢 -551 B
assets/auto-P6cmVFBq.js (new) 1.7 kB 🔴 +1.7 kB 🔴 +620 B 🔴 +549 B
assets/CloudRunButtonWrapper-DOnOg4Lv.js (new) 1.65 kB 🔴 +1.65 kB 🔴 +766 B 🔴 +678 B
assets/signInSchema-DjV1jUPL.js (new) 1.53 kB 🔴 +1.53 kB 🔴 +563 B 🔴 +518 B
assets/signInSchema-DxIK0WZB.js (removed) 1.53 kB 🟢 -1.53 kB 🟢 -563 B 🟢 -517 B
assets/MediaAudioTop-Bo-yoCQs.js (new) 1.43 kB 🔴 +1.43 kB 🔴 +763 B 🔴 +634 B
assets/MediaAudioTop-nCx5pl8A.js (removed) 1.43 kB 🟢 -1.43 kB 🟢 -763 B 🟢 -636 B
assets/cloudBadges-CVdk2BCa.js (removed) 1.42 kB 🟢 -1.42 kB 🟢 -727 B 🟢 -630 B
assets/cloudSubscription-Ds-qo0DB.js (removed) 1.38 kB 🟢 -1.38 kB 🟢 -680 B 🟢 -587 B
assets/cloudBadges--avkvtaY.js (new) 1.34 kB 🔴 +1.34 kB 🔴 +685 B 🔴 +594 B
assets/cloudSubscription-CM5qavFg.js (new) 1.3 kB 🔴 +1.3 kB 🔴 +639 B 🔴 +555 B
assets/Load3D-DI1nLI6M.js (removed) 1.12 kB 🟢 -1.12 kB 🟢 -512 B 🟢 -459 B
assets/widgetPropFilter-BFdmuHeM.js (removed) 1.1 kB 🟢 -1.1 kB 🟢 -509 B 🟢 -430 B
assets/widgetPropFilter-DfMXJwGW.js (new) 1.1 kB 🔴 +1.1 kB 🔴 +509 B 🔴 +431 B
assets/MissingNodesHeader-ByWQy4iA.js (removed) 1.09 kB 🟢 -1.09 kB 🟢 -585 B 🟢 -504 B
assets/NodeConflictHeader-CEIGoZWL.js (removed) 1.09 kB 🟢 -1.09 kB 🟢 -569 B 🟢 -479 B
assets/ImportFailedNodeHeader-B1n-xqqB.js (removed) 1.08 kB 🟢 -1.08 kB 🟢 -552 B 🟢 -468 B
assets/nightlyBadges-CVk204-S.js (removed) 1.05 kB 🟢 -1.05 kB 🟢 -553 B 🟢 -488 B
assets/Load3dViewerContent-Cio7w1N-.js (removed) 1.04 kB 🟢 -1.04 kB 🟢 -485 B 🟢 -436 B
assets/Load3D-vgVAfe5U.js (new) 1.04 kB 🔴 +1.04 kB 🔴 +479 B 🔴 +430 B
assets/SubscriptionPanelContentWorkspace-54B_2Mpc.js (removed) 979 B 🟢 -979 B 🟢 -456 B 🟢 -396 B
assets/nightlyBadges-DU6yElOp.js (new) 971 B 🔴 +971 B 🔴 +514 B 🔴 +448 B
assets/Load3dViewerContent-CuYNHr3K.js (new) 963 B 🔴 +963 B 🔴 +450 B 🔴 +402 B
assets/ComfyOrgHeader-CR3OyyCW.js (new) 910 B 🔴 +910 B 🔴 +497 B 🔴 +462 B
assets/ComfyOrgHeader-CTdDIL79.js (removed) 910 B 🟢 -910 B 🟢 -498 B 🟢 -469 B
assets/SubscriptionPanelContentWorkspace-hZcCybRJ.js (new) 900 B 🔴 +900 B 🔴 +420 B 🔴 +367 B
assets/changeTracker-B8ig9O8x.js (removed) 806 B 🟢 -806 B 🟢 -404 B 🟢 -355 B
assets/WidgetLegacy-BEJB4I0L.js (removed) 794 B 🟢 -794 B 🟢 -403 B 🟢 -354 B
assets/graphHasMissingNodes-CAh9ZOiS.js (new) 761 B 🔴 +761 B 🔴 +374 B 🔴 +321 B
assets/graphHasMissingNodes-DpSH5z-h.js (removed) 761 B 🟢 -761 B 🟢 -372 B 🟢 -321 B
assets/changeTracker-CB1zsgSo.js (new) 727 B 🔴 +727 B 🔴 +366 B 🔴 +325 B
assets/WidgetLegacy-VshsIEQ4.js (new) 715 B 🔴 +715 B 🔴 +367 B 🔴 +322 B
assets/previousFullPath-CxcvRxyJ.js (new) 665 B 🔴 +665 B 🔴 +367 B 🔴 +304 B
assets/previousFullPath-DvPJbfbs.js (removed) 665 B 🟢 -665 B 🟢 -367 B 🟢 -311 B
assets/constants-BKU8e69-.js (new) 579 B 🔴 +579 B 🔴 +258 B 🔴 +213 B
assets/constants-KYihJEkp.js (removed) 579 B 🟢 -579 B 🟢 -256 B 🟢 -228 B
assets/WidgetInputNumber-B2moB8vk.js (new) 437 B 🔴 +437 B 🔴 +249 B 🔴 +214 B
assets/WidgetInputNumber-Cg3JeEZ5.js (removed) 437 B 🟢 -437 B 🟢 -249 B 🟢 -213 B
assets/widgetTypes-Cp8f93Pk.js (new) 393 B 🔴 +393 B 🔴 +259 B 🔴 +214 B
assets/widgetTypes-DhbPR9pT.js (removed) 393 B 🟢 -393 B 🟢 -259 B 🟢 -215 B
assets/WidgetBoundingBox-Br2Sa2_S.js (removed) 283 B 🟢 -283 B 🟢 -183 B 🟢 -159 B
assets/WidgetBoundingBox-DnTyITVB.js (new) 283 B 🔴 +283 B 🔴 +185 B 🔴 +166 B
assets/src-D5pbLGY2.js (removed) 251 B 🟢 -251 B 🟢 -215 B 🟢 -190 B
assets/src-hEkx01Ix.js (new) 251 B 🔴 +251 B 🔴 +212 B 🔴 +192 B
assets/i18n-C1I5x5JO.js (removed) 199 B 🟢 -199 B 🟢 -161 B 🟢 -139 B
assets/i18n-CiSGUfu7.js (new) 199 B 🔴 +199 B 🔴 +159 B 🔴 +137 B
assets/comfy-logo-single-B810ZRS_.js (removed) 198 B 🟢 -198 B 🟢 -162 B 🟢 -127 B
assets/comfy-logo-single-Bzuu84gN.js (new) 198 B 🔴 +198 B 🔴 +161 B 🔴 +127 B
assets/OBJLoader2WorkerModule-DTMpvldF.js 109 kB 109 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/rolldown-runtime-DLICfi3-.js 1.97 kB 1.97 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/telemetry-zZf2dHJ2.js 226 B 226 B ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/types-DT3N7am7.js 204 B 204 B ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/widget-DTUjK0ZE.js 445 B 445 B ⚪ 0 B ⚪ 0 B ⚪ 0 B

Status: 112 added / 122 removed

DrJKL
DrJKL previously approved these changes Feb 12, 2026
@DrJKL DrJKL assigned viva-jinyi and unassigned DrJKL Feb 12, 2026
@viva-jinyi viva-jinyi force-pushed the refactor/small-dialog-a branch from 217d3c4 to b3a10b6 Compare February 14, 2026 12:33
@viva-jinyi viva-jinyi added the New Browser Test Expectations New browser test screenshot should be set by github action label Feb 18, 2026
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

🧹 Nitpick comments (2)
src/composables/useHelpCenter.ts (1)

74-83: void is stale now that show() is synchronous.

show() from useNodeConflictDialog doesn't return a Promise, so void no longer serves its original no-floating-promises purpose and is misleading.

♻️ Proposed cleanup
  const showConflictModal = () => {
-   void showNodeConflictDialog({
+   showNodeConflictDialog({
      showAfterWhatsNew: true,
      dialogComponentProps: {
        onClose: () => {
          markConflictsAsSeen()
        }
      }
    })
  }
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@src/composables/useHelpCenter.ts` around lines 74 - 83, The showConflictModal
wrapper is using a now-stale leading void when calling showNodeConflictDialog
even though useNodeConflictDialog().show() is synchronous; remove the misleading
void and call showNodeConflictDialog(...) directly in showConflictModal (retain
the same options including showAfterWhatsNew and dialogComponentProps.onClose
calling markConflictsAsSeen) so the call reflects its synchronous nature.
src/services/dialogService.ts (1)

378-391: ! Tailwind important prefixes violate the coding guidelines.

The pt config contains !p-0, !m-0, !w-7, !h-7, !border-none, !outline-none, !p-2, and !m-1.5 — all using the !important prefix. The guidelines require finding and correcting the interfering PrimeVue base classes instead of overriding them here.

As per coding guidelines: "Never use !important or the ! important prefix for Tailwind classes; instead find and correct interfering existing !important classes."

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

In `@src/services/dialogService.ts` around lines 378 - 391, The pt configuration
is using Tailwind's `!` important prefix (e.g., in pt.root, pt.header,
pt.content, pt.footer, and pt.pcCloseButton.root class strings like '!p-0',
'!m-0', '!w-7', etc.), which violates guidelines; remove all `!` prefixes from
those class values and instead fix the underlying PrimeVue base-class conflict
by adjusting component-specific CSS or theme overrides (e.g., increase selector
specificity or target the PrimeVue wrapper/close-button classes in the
stylesheet) so the intended padding, margin, sizing and border/outline styles
apply without using `!important`. Ensure the keys referenced (pt, pt.root,
pt.header, pt.content, pt.footer, pt.pcCloseButton.root) retain the plain
Tailwind classes (no `!`) after you remove the prefixes and implement the CSS
override in the theme or component stylesheet.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@src/composables/useMissingModelsDialog.ts`:
- Around line 15-21: The show function in useMissingModelsDialog currently calls
dialogStore.showDialog directly so MissingModelsWarning won't get the unified
small-dialog pt styling; verify whether MissingModelsWarning intentionally
applies its own styles, otherwise change useMissingModelsDialog.show to call
useDialogService().showSmallLayoutDialog({ key: DIALOG_KEY, component:
MissingModelsWarning, props }) instead of dialogStore.showDialog(...) so the
shared bg-base-background/border-border-default and close-button styles are
applied; reference DIALOG_KEY, MissingModelsWarning, dialogStore.showDialog, and
useDialogService().showSmallLayoutDialog when making the change.

---

Nitpick comments:
In `@src/composables/useHelpCenter.ts`:
- Around line 74-83: The showConflictModal wrapper is using a now-stale leading
void when calling showNodeConflictDialog even though
useNodeConflictDialog().show() is synchronous; remove the misleading void and
call showNodeConflictDialog(...) directly in showConflictModal (retain the same
options including showAfterWhatsNew and dialogComponentProps.onClose calling
markConflictsAsSeen) so the call reflects its synchronous nature.

In `@src/services/dialogService.ts`:
- Around line 378-391: The pt configuration is using Tailwind's `!` important
prefix (e.g., in pt.root, pt.header, pt.content, pt.footer, and
pt.pcCloseButton.root class strings like '!p-0', '!m-0', '!w-7', etc.), which
violates guidelines; remove all `!` prefixes from those class values and instead
fix the underlying PrimeVue base-class conflict by adjusting component-specific
CSS or theme overrides (e.g., increase selector specificity or target the
PrimeVue wrapper/close-button classes in the stylesheet) so the intended
padding, margin, sizing and border/outline styles apply without using
`!important`. Ensure the keys referenced (pt, pt.root, pt.header, pt.content,
pt.footer, pt.pcCloseButton.root) retain the plain Tailwind classes (no `!`)
after you remove the prefixes and implement the CSS override in the theme or
component stylesheet.

@viva-jinyi viva-jinyi assigned DrJKL and unassigned viva-jinyi Feb 18, 2026
@dosubot dosubot bot added size:XL This PR changes 500-999 lines, ignoring generated files. and removed size:L This PR changes 100-499 lines, ignoring generated files. labels Feb 18, 2026
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

🧹 Nitpick comments (2)
src/workbench/extensions/manager/composables/useImportFailedDetection.test.ts (2)

40-40: Use the imported function reference as the describe label instead of a string literal.

useImportFailedDetection is already imported on line 6 and can be passed directly as the suite name.

-describe('useImportFailedDetection', () => {
+describe(useImportFailedDetection, () => {

Based on learnings: "follow the vitest/prefer-describe-function-title rule by using describe(ComponentOrFunction, ...) instead of a string literal description when naming test suites."

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

In
`@src/workbench/extensions/manager/composables/useImportFailedDetection.test.ts`
at line 40, Replace the string literal test suite label with the imported
function reference: change the describe call that currently uses the string
'useImportFailedDetection' to pass the imported symbol useImportFailedDetection
directly (e.g., describe(useImportFailedDetection, ...)), ensuring the existing
import on line 6 remains and the test suite name now references the actual
function.

8-29: Consider using vi.hoisted() for mock functions referenced in vi.mock() factories.

mockIsPackInstalled, mockGetConflictsForPackageByID, and mockShow are mutable module-level vi.fn() instances referenced inside vi.mock() factory closures. While this works in practice (factories execute lazily after variable initialization), the idiomatic Vitest pattern for this scenario is vi.hoisted(), which makes the initialization order explicit and safe.

♻️ Proposed refactor using vi.hoisted()
+const { mockIsPackInstalled, mockGetConflictsForPackageByID, mockShow } =
+  vi.hoisted(() => ({
+    mockIsPackInstalled: vi.fn(),
+    mockGetConflictsForPackageByID: vi.fn(),
+    mockShow: vi.fn()
+  }))
+
-const mockIsPackInstalled = vi.fn()
-const mockGetConflictsForPackageByID = vi.fn()
-const mockShow = vi.fn()

 vi.mock('@/workbench/extensions/manager/stores/comfyManagerStore', () => ({
   useComfyManagerStore: () => ({
     isPackInstalled: mockIsPackInstalled
   })
 }))
 vi.mock('@/workbench/extensions/manager/stores/conflictDetectionStore', () => ({
   useConflictDetectionStore: () => ({
     getConflictsForPackageByID: mockGetConflictsForPackageByID
   })
 }))
 vi.mock(
   '@/workbench/extensions/manager/composables/useImportFailedNodeDialog',
   () => ({
     useImportFailedNodeDialog: () => ({
       show: mockShow
     })
   })
 )

Based on learnings: "Keep module mocks contained; do not use global mutable state within test files; use vi.hoisted() if necessary for per-test Arrange phase manipulation."

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

In
`@src/workbench/extensions/manager/composables/useImportFailedDetection.test.ts`
around lines 8 - 29, The test uses module-level mutable vi.fn() instances
(mockIsPackInstalled, mockGetConflictsForPackageByID, mockShow) inside vi.mock()
factories; replace those vi.fn() initializations with hoisted mocks by creating
them via vi.hoisted(() => vi.fn()) so the mocks are initialized in a stable
order before the mock factories run, and keep the rest of the vi.mock(...)
factories referencing the same symbol names (mockIsPackInstalled,
mockGetConflictsForPackageByID, mockShow) so per-test manipulation still works.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@src/composables/useMissingModelsDialog.ts`:
- Line 18: The test mock for useDialogService is missing the
showSmallLayoutDialog function, causing TypeError when
missingModelsDialog.show() calls showSmallLayoutDialog; update the test mock in
workflowService.test.ts to include showSmallLayoutDialog: vi.fn() on the mocked
return of useDialogService(), or alternatively stub the composable directly by
mocking useMissingModelsDialog to provide a show() implementation—this ensures
missingModelsDialog.show() can destructure and call showSmallLayoutDialog
without throwing.

In `@src/platform/workflow/core/services/workflowService.ts`:
- Around line 462-469: Test failures are caused by missing mocks for the dialog
helper used by missingNodesDialog.show and missingModelsDialog.show; update the
test setup in workflowService.test.ts to mock useDialogService (or directly mock
useMissingModelsDialog) to provide a stub implementation of
showSmallLayoutDialog so those call sites succeed; specifically add a mock for
useDialogService that exports showSmallLayoutDialog (or adjust the existing
useMissingModelsDialog mock) and ensure missingNodesDialog.show and
missingModelsDialog.show will call the mocked showSmallLayoutDialog during
tests.

---

Duplicate comments:
In `@src/composables/useMissingModelsDialog.ts`:
- Around line 17-23: No change required—the show function correctly routes
through showSmallLayoutDialog now; keep the implementation in show(props:
ComponentAttrs<typeof MissingModelsWarning>) that calls showSmallLayoutDialog
with key DIALOG_KEY, component MissingModelsWarning, and props as-is to maintain
the unified small-layout pt behavior.

---

Nitpick comments:
In
`@src/workbench/extensions/manager/composables/useImportFailedDetection.test.ts`:
- Line 40: Replace the string literal test suite label with the imported
function reference: change the describe call that currently uses the string
'useImportFailedDetection' to pass the imported symbol useImportFailedDetection
directly (e.g., describe(useImportFailedDetection, ...)), ensuring the existing
import on line 6 remains and the test suite name now references the actual
function.
- Around line 8-29: The test uses module-level mutable vi.fn() instances
(mockIsPackInstalled, mockGetConflictsForPackageByID, mockShow) inside vi.mock()
factories; replace those vi.fn() initializations with hoisted mocks by creating
them via vi.hoisted(() => vi.fn()) so the mocks are initialized in a stable
order before the mock factories run, and keep the rest of the vi.mock(...)
factories referencing the same symbol names (mockIsPackInstalled,
mockGetConflictsForPackageByID, mockShow) so per-test manipulation still works.

Copy link
Contributor

Choose a reason for hiding this comment

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

Pretty sure we still need this.

Copy link
Contributor

Choose a reason for hiding this comment

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

Might need to pnpm i to update the Vite rolldown types.

Copy link
Contributor

Choose a reason for hiding this comment

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

We'll fix it again in another PR 😉

DrJKL
DrJKL previously approved these changes Feb 18, 2026
@DrJKL DrJKL assigned viva-jinyi and unassigned DrJKL Feb 18, 2026
@viva-jinyi viva-jinyi assigned DrJKL and unassigned viva-jinyi Feb 20, 2026
@viva-jinyi viva-jinyi added New Browser Test Expectations New browser test screenshot should be set by github action and removed New Browser Test Expectations New browser test screenshot should be set by github action labels Feb 20, 2026
@github-actions
Copy link

Updating Playwright Expectations

@github-actions github-actions bot removed the New Browser Test Expectations New browser test screenshot should be set by github action label Feb 20, 2026
@DrJKL DrJKL merged commit 44733f0 into main Feb 20, 2026
28 checks passed
@DrJKL DrJKL deleted the refactor/small-dialog-a branch February 20, 2026 04:59
christian-byrne added a commit that referenced this pull request Feb 21, 2026
Rolldown requires strictExecutionOrder to guarantee Storybook's internal
module globals (__STORYBOOK_MODULE_*) are defined before they are
referenced. Without it, Chromatic fails with:
  Error: __STORYBOOK_MODULE_CORE_EVENTS_PREVIEW_ERRORS__ is not defined

Accidentally removed in #8834 as a merge artifact.

Amp-Thread-ID: https://ampcode.com/threads/T-019c7dd0-e214-731a-b7de-ec7b524eb7fc
DrJKL pushed a commit that referenced this pull request Feb 21, 2026
## Summary

Restore `strictExecutionOrder: true` in `.storybook/main.ts`
rolldownOptions, accidentally removed in #8834 as a merge artifact.

## Problem

Chromatic visual regression tests fail on `version-bump-*` release
branches with:
```
Error: __STORYBOOK_MODULE_CORE_EVENTS_PREVIEW_ERRORS__ is not defined
```

Rolldown without `strictExecutionOrder` doesn't guarantee module
execution order. Storybook's internal module system defines
`__STORYBOOK_MODULE_*` globals during initialization — without strict
ordering, downstream code references them before they're defined.

Only `version-bump-*` branches are affected because the
`chromatic-deployment` CI job (which actually loads and extracts stories
at runtime) is gated to those branches.

## Changes

- Restore `strictExecutionOrder: true` in `.storybook/main.ts`
rolldownOptions output config

┆Issue is synchronized with this [Notion
page](https://www.notion.so/PR-9038-fix-restore-strictExecutionOrder-for-Storybook-Chromatic-builds-30e6d73d365081489c53cea131b97a2f)
by [Unito](https://www.unito.io)
huntcsg pushed a commit that referenced this pull request Feb 21, 2026
…#8834)

## Summary
Extract a shared `showSmallLayoutDialog` utility and move
dialog-specific logic into composables, unifying the duplicated `pt`
configurations across small modal dialogs.

## Changes
- **`showSmallLayoutDialog`**: Added to `dialogService.ts` with a single
unified `pt` config for all small modal dialogs (missing nodes, missing
models, import failed, node conflict)
- **Composables**: Extracted 4 dialog functions from `dialogService`
into dedicated composables following the `useSettingsDialog` /
`useModelSelectorDialog` pattern:
  - `useMissingNodesDialog`
  - `useMissingModelsDialog`
  - `useImportFailedNodeDialog`
  - `useNodeConflictDialog`
- Each composable uses direct imports, synchronous `show()`, `hide()`,
and a `DIALOG_KEY` constant
- Updated all call sites (`app.ts`, `useHelpCenter`, `PackEnableToggle`,
`PackInstallButton`, `useImportFailedDetection`)

## Review Focus
- Unified `pt` config removes minor style variations between dialogs —
intentional design unification

┆Issue is synchronized with this [Notion
page](https://www.notion.so/PR-8834-refactor-Unify-small-modal-dialog-styles-with-showSmallLayoutDialog-3056d73d365081b6963beffc0e5943bf)
by [Unito](https://www.unito.io)

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: github-actions <github-actions@github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area:ui General user interface and experience improvements enhancement New feature or request size:XL This PR changes 500-999 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants