Skip to content

Conversation

@christian-byrne
Copy link
Contributor

@christian-byrne christian-byrne commented Feb 3, 2026

Summary

Fixes reroute node styling in Vue Nodes 2.0 by hiding slot labels when slot names are intentionally empty.

Before After
image image

Problem

Reroute nodes displayed unwanted fallback labels ("Input 0", "Output 0") instead of appearing as minimal connection-only nodes. This happened because:

  • Reroute nodes intentionally use empty string ("") for slot names
  • Slot components used || operator for fallback labels, treating '' as falsy

Solution

  • Add hasNoLabel computed property to detect when all label sources (label, localized_name, name) are empty/falsy
  • Derive dotOnly from either the existing prop OR hasNoLabel being true
  • When dotOnly is true: label text is hidden, padding removed (lg-slot--dot-only class), only connection dot visible

Combined with existing NO_TITLE support from #7589, reroutes now display as minimal nodes with just connection dots—matching classic reroute appearance.

Summary by CodeRabbit

Release Notes

  • Bug Fixes
    • Enhanced input and output slot label handling to automatically conceal labels when unavailable
    • Improved fallback display names for slots with more reliable naming logic

┆Issue is synchronized with this Notion page by Unito

Reroute nodes use empty string slot names to intentionally display
as minimal connection-only nodes. The slot components incorrectly
used || operator for fallback labels, treating '' as falsy.

Add hasNoLabel computed to detect when all label sources are empty,
and derive dotOnly from either the prop OR hasNoLabel being true.
This hides labels and removes padding for reroute-style slots.

Amp-Thread-ID: https://ampcode.com/threads/T-019c21e5-e0f2-72fe-9e5e-84825e364e02
@christian-byrne christian-byrne requested a review from a team as a code owner February 3, 2026 05:08
@dosubot dosubot bot added the size:S This PR changes 10-29 lines, ignoring generated files. label Feb 3, 2026
@github-actions
Copy link

github-actions bot commented Feb 3, 2026

🎭 Playwright Tests: ✅ Passed

Results: 508 passed, 0 failed, 0 flaky, 8 skipped (Total: 516)

📊 Browser Reports
  • chromium: View Report (✅ 496 / ❌ 0 / ⚠️ 0 / ⏭️ 8)
  • 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)

@github-actions
Copy link

github-actions bot commented Feb 3, 2026

🎨 Storybook Build Status

Build completed successfully!

⏰ Completed at: 02/03/2026, 05:09:23 AM UTC

🔗 Links


🎉 Your Storybook is ready for review!

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Feb 3, 2026

📝 Walkthrough

Walkthrough

Both InputSlot and OutputSlot Vue components now auto-detect when slots lack labels and automatically enable "dot-only" rendering mode through new computed properties, eliminating the need for explicit manual configuration while maintaining consistent label-visibility logic across both components.

Changes

Cohort / File(s) Summary
Slot Label Auto-Detection
src/renderer/extensions/vueNodes/components/InputSlot.vue, src/renderer/extensions/vueNodes/components/OutputSlot.vue
Both components introduce hasNoLabel and dotOnly computed properties to auto-detect missing labels and dynamically enable dot-only rendering. Replaces direct prop access with computed state in templates and updates slot name fallback to use nullish coalescing operator (??) instead of logical OR (||).

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~12 minutes

Possibly related PRs

  • Fix slot renaming in vue #7748 — Modifies InputSlot.vue's label-rendering logic with overlapping concerns regarding slot label display prioritization.

Suggested labels

core/1.35

Suggested reviewers

  • DrJKL
  • AustinMroz

Poem

🐰 Slots without names now hide with grace,
Computed dots fill the empty space,
No labels shown, just dots so neat,
Input and Output logic, complete!

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Title check ✅ Passed The title accurately and concisely summarizes the main change: fixing reroute node styling by hiding slot labels for empty names. It clearly reflects the primary objective of the pull request.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Description check ✅ Passed The pull request description comprehensively covers all required sections: summary, changes (with before/after comparison), problem statement, and solution details.

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

✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch fix/vue-nodes/reroute-styling

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

@github-actions
Copy link

github-actions bot commented Feb 3, 2026

Bundle Size Report

Summary

  • Raw size: 20.1 MB baseline 20.1 MB — 🔴 +409 B
  • Gzip: 4.3 MB baseline 4.3 MB — 🟢 -50 B
  • Brotli: 3.32 MB baseline 3.32 MB — 🔴 +11 B
  • Bundles: 233 current • 233 baseline • 106 added / 106 removed

Category Glance
Data & Services 🔴 +409 B (2.1 MB) · Vendor & Third-Party ⚪ 0 B (9.37 MB) · Other ⚪ 0 B (6.99 MB) · Graph Workspace ⚪ 0 B (835 kB) · Panels & Settings ⚪ 0 B (446 kB) · Utilities & Hooks ⚪ 0 B (234 kB) · + 5 more

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

Main entry bundles and manifests

File Before After Δ Raw Δ Gzip Δ Brotli
assets/index-Csc0OfES.js (removed) 22.7 kB 🟢 -22.7 kB 🟢 -7.24 kB 🟢 -6.29 kB
assets/index-I91qApMY.js (new) 22.7 kB 🔴 +22.7 kB 🔴 +7.25 kB 🔴 +6.29 kB

Status: 1 added / 1 removed

Graph Workspace — 835 kB (baseline 835 kB) • ⚪ 0 B

Graph editor runtime, canvas, workflow orchestration

File Before After Δ Raw Δ Gzip Δ Brotli
assets/GraphView-CaU-3w27.js (removed) 835 kB 🟢 -835 kB 🟢 -179 kB 🟢 -137 kB
assets/GraphView-CvOMwFPf.js (new) 835 kB 🔴 +835 kB 🔴 +179 kB 🔴 +137 kB

Status: 1 added / 1 removed

Views & Navigation — 69.2 kB (baseline 69.2 kB) • ⚪ 0 B

Top-level views, pages, and routed surfaces

File Before After Δ Raw Δ Gzip Δ Brotli
assets/CloudSurveyView-DgAPn8BO.js (removed) 15.8 kB 🟢 -15.8 kB 🟢 -3.48 kB 🟢 -2.96 kB
assets/CloudSurveyView-wS5cETHC.js (new) 15.8 kB 🔴 +15.8 kB 🔴 +3.48 kB 🔴 +2.95 kB
assets/CloudLoginView-BhXvBjGQ.js (removed) 10.1 kB 🟢 -10.1 kB 🟢 -2.95 kB 🟢 -2.58 kB
assets/CloudLoginView-BugGxfTR.js (new) 10.1 kB 🔴 +10.1 kB 🔴 +2.95 kB 🔴 +2.58 kB
assets/UserCheckView-DYIHuFhj.js (removed) 8.39 kB 🟢 -8.39 kB 🟢 -2.23 kB 🟢 -1.94 kB
assets/UserCheckView-qhvWnPaP.js (new) 8.39 kB 🔴 +8.39 kB 🔴 +2.23 kB 🔴 +1.94 kB
assets/CloudSignupView-CcwnLsGD.js (removed) 7.42 kB 🟢 -7.42 kB 🟢 -2.33 kB 🟢 -2.04 kB
assets/CloudSignupView-H_bJAJTS.js (new) 7.42 kB 🔴 +7.42 kB 🔴 +2.33 kB 🔴 +2.04 kB
assets/CloudLayoutView-D2H1R5LR.js (removed) 6.47 kB 🟢 -6.47 kB 🟢 -2.13 kB 🟢 -1.85 kB
assets/CloudLayoutView-wpaQVUbL.js (new) 6.47 kB 🔴 +6.47 kB 🔴 +2.13 kB 🔴 +1.84 kB
assets/CloudForgotPasswordView-BBnExXgf.js (removed) 5.59 kB 🟢 -5.59 kB 🟢 -1.95 kB 🟢 -1.73 kB
assets/CloudForgotPasswordView-CqUDRaaU.js (new) 5.59 kB 🔴 +5.59 kB 🔴 +1.95 kB 🔴 +1.71 kB
assets/CloudAuthTimeoutView-D0dsBLIl.js (new) 4.95 kB 🔴 +4.95 kB 🔴 +1.79 kB 🔴 +1.56 kB
assets/CloudAuthTimeoutView-XUv42T-U.js (removed) 4.95 kB 🟢 -4.95 kB 🟢 -1.79 kB 🟢 -1.56 kB
assets/CloudSubscriptionRedirectView-CaBZCAz6.js (removed) 4.74 kB 🟢 -4.74 kB 🟢 -1.79 kB 🟢 -1.58 kB
assets/CloudSubscriptionRedirectView-rGO1snlO.js (new) 4.74 kB 🔴 +4.74 kB 🔴 +1.79 kB 🔴 +1.58 kB
assets/UserSelectView-BgUT3_zE.js (new) 4.49 kB 🔴 +4.49 kB 🔴 +1.64 kB 🔴 +1.46 kB
assets/UserSelectView-DudsXJu2.js (removed) 4.49 kB 🟢 -4.49 kB 🟢 -1.64 kB 🟢 -1.47 kB
assets/CloudSorryContactSupportView-BPXBOTez.js 1.02 kB 1.02 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/layout-Dkpg9fZy.js 296 B 296 B ⚪ 0 B ⚪ 0 B ⚪ 0 B

Status: 9 added / 9 removed

Panels & Settings — 446 kB (baseline 446 kB) • ⚪ 0 B

Configuration panels, inspectors, and settings screens

File Before After Δ Raw Δ Gzip Δ Brotli
assets/WorkspacePanel-C8l1drcP.js (new) 27 kB 🔴 +27 kB 🔴 +5.68 kB 🔴 +4.99 kB
assets/WorkspacePanel-C8qQyvDE.js (removed) 27 kB 🟢 -27 kB 🟢 -5.68 kB 🟢 -4.99 kB
assets/SecretsPanel-B07HV0_m.js (removed) 21.5 kB 🟢 -21.5 kB 🟢 -5.28 kB 🟢 -4.63 kB
assets/SecretsPanel-m1hhdQqA.js (new) 21.5 kB 🔴 +21.5 kB 🔴 +5.28 kB 🔴 +4.63 kB
assets/LegacyCreditsPanel-BCoEFdcF.js (new) 20.9 kB 🔴 +20.9 kB 🔴 +5.63 kB 🔴 +4.94 kB
assets/LegacyCreditsPanel-CFLr2hnk.js (removed) 20.9 kB 🟢 -20.9 kB 🟢 -5.64 kB 🟢 -4.95 kB
assets/SubscriptionPanel-CweI7J_r.js (new) 18.9 kB 🔴 +18.9 kB 🔴 +4.81 kB 🔴 +4.22 kB
assets/SubscriptionPanel-MC8hvflW.js (removed) 18.9 kB 🟢 -18.9 kB 🟢 -4.81 kB 🟢 -4.25 kB
assets/KeybindingPanel-Dz38gPyz.js (new) 12.6 kB 🔴 +12.6 kB 🔴 +3.63 kB 🔴 +3.21 kB
assets/KeybindingPanel-SmHHJUFI.js (removed) 12.6 kB 🟢 -12.6 kB 🟢 -3.63 kB 🟢 -3.22 kB
assets/ExtensionPanel-C9Dk-kXE.js (new) 9.5 kB 🔴 +9.5 kB 🔴 +2.7 kB 🔴 +2.39 kB
assets/ExtensionPanel-CqRYYxQb.js (removed) 9.5 kB 🟢 -9.5 kB 🟢 -2.7 kB 🟢 -2.39 kB
assets/AboutPanel-c7abMmdK.js (removed) 8.59 kB 🟢 -8.59 kB 🟢 -2.44 kB 🟢 -2.2 kB
assets/AboutPanel-DaKmkeEM.js (new) 8.59 kB 🔴 +8.59 kB 🔴 +2.44 kB 🔴 +2.2 kB
assets/ServerConfigPanel-DpYtuaXS.js (removed) 6.67 kB 🟢 -6.67 kB 🟢 -2.17 kB 🟢 -1.94 kB
assets/ServerConfigPanel-LqR2yzJt.js (new) 6.67 kB 🔴 +6.67 kB 🔴 +2.17 kB 🔴 +1.97 kB
assets/UserPanel-4hknysfQ.js (removed) 6.32 kB 🟢 -6.32 kB 🟢 -2.04 kB 🟢 -1.79 kB
assets/UserPanel-CxmaBI7_.js (new) 6.32 kB 🔴 +6.32 kB 🔴 +2.04 kB 🔴 +1.79 kB
assets/cloudRemoteConfig-DOgtZqcY.js (removed) 1.47 kB 🟢 -1.47 kB 🟢 -709 B 🟢 -620 B
assets/cloudRemoteConfig-DvRbRb-h.js (new) 1.47 kB 🔴 +1.47 kB 🔴 +711 B 🔴 +620 B
assets/refreshRemoteConfig-ceXwoRyt.js (removed) 1.13 kB 🟢 -1.13 kB 🟢 -511 B 🟢 -442 B
assets/refreshRemoteConfig-CLPLMOdf.js (new) 1.13 kB 🔴 +1.13 kB 🔴 +511 B 🔴 +447 B
assets/refreshRemoteConfig-DjyEg2B5.js (new) 345 B 🔴 +345 B 🔴 +204 B 🔴 +200 B
assets/refreshRemoteConfig-qPD4941r.js (removed) 345 B 🟢 -345 B 🟢 -202 B 🟢 -201 B
assets/config-HAvaVehF.js 1.01 kB 1.01 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/remoteConfig-CUBB_j_I.js 581 B 581 B ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-6hs8XKh-.js 27.3 kB 27.3 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-BjdlD31f.js 26.4 kB 26.4 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-brD4EDY3.js 26.6 kB 26.6 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-BxFKdi98.js 36.5 kB 36.5 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-COBzPrlr.js 30 kB 30 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-CtCbfR-e.js 22.8 kB 22.8 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-D3JwDEwu.js 29 kB 29 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-DT9m3J57.js 32.3 kB 32.3 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-DzprV-N9.js 28.3 kB 28.3 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-syv1T4fS.js 27.4 kB 27.4 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-Z1s0lmEj.js 23.5 kB 23.5 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B

Status: 12 added / 12 removed

User & Accounts — 16.1 kB (baseline 16.1 kB) • ⚪ 0 B

Authentication, profile, and account management bundles

File Before After Δ Raw Δ Gzip Δ Brotli
assets/auth-BUAHUmNQ.js (removed) 3.4 kB 🟢 -3.4 kB 🟢 -1.18 kB 🟢 -996 B
assets/auth-DS1wCOKd.js (new) 3.4 kB 🔴 +3.4 kB 🔴 +1.18 kB 🔴 +992 B
assets/SignUpForm-Bwp-aoLr.js (removed) 3.01 kB 🟢 -3.01 kB 🟢 -1.23 kB 🟢 -1.09 kB
assets/SignUpForm-Ch7SiIGP.js (new) 3.01 kB 🔴 +3.01 kB 🔴 +1.24 kB 🔴 +1.09 kB
assets/UpdatePasswordContent-CAKX6dXq.js (removed) 2.41 kB 🟢 -2.41 kB 🟢 -1.09 kB 🟢 -960 B
assets/UpdatePasswordContent-rct1dm4Q.js (new) 2.41 kB 🔴 +2.41 kB 🔴 +1.09 kB 🔴 +956 B
assets/firebaseAuthStore-D9bH69aW.js (new) 827 B 🔴 +827 B 🔴 +404 B 🔴 +357 B
assets/firebaseAuthStore-DCIMTdy1.js (removed) 827 B 🟢 -827 B 🟢 -405 B 🟢 -362 B
assets/auth-DCVSfsAO.js (new) 347 B 🔴 +347 B 🔴 +222 B 🔴 +210 B
assets/auth-DNtouUSP.js (removed) 347 B 🟢 -347 B 🟢 -223 B 🟢 -189 B
assets/PasswordFields-C1t2-JAV.js 4.51 kB 4.51 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WorkspaceProfilePic-DoXGTZeH.js 1.57 kB 1.57 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B

Status: 5 added / 5 removed

Editors & Dialogs — 3.57 kB (baseline 3.57 kB) • ⚪ 0 B

Modals, dialogs, drawers, and in-app editors

File Before After Δ Raw Δ Gzip Δ Brotli
assets/useSubscriptionDialog-n36IIDZl.js (new) 2.75 kB 🔴 +2.75 kB 🔴 +1.35 kB 🔴 +1.19 kB
assets/useSubscriptionDialog-osFPiC2f.js (removed) 2.75 kB 🟢 -2.75 kB 🟢 -1.35 kB 🟢 -1.18 kB
assets/useSubscriptionDialog-D_beH5LK.js (removed) 820 B 🟢 -820 B 🟢 -402 B 🟢 -357 B
assets/useSubscriptionDialog-DKLzLvqv.js (new) 820 B 🔴 +820 B 🔴 +400 B 🔴 +356 B

Status: 2 added / 2 removed

UI Components — 28 kB (baseline 28 kB) • ⚪ 0 B

Reusable component library chunks

File Before After Δ Raw Δ Gzip Δ Brotli
assets/ComfyQueueButton-04HAcZgX.js (new) 7.13 kB 🔴 +7.13 kB 🔴 +2.31 kB 🔴 +2.06 kB
assets/ComfyQueueButton-zzPOQg8f.js (removed) 7.13 kB 🟢 -7.13 kB 🟢 -2.31 kB 🟢 -2.06 kB
assets/SubscribeButton--P7HUaO1.js (removed) 3.68 kB 🟢 -3.68 kB 🟢 -1.39 kB 🟢 -1.25 kB
assets/SubscribeButton-DV9HJO7Z.js (new) 3.68 kB 🔴 +3.68 kB 🔴 +1.39 kB 🔴 +1.25 kB
assets/cloudFeedbackTopbarButton-BYx9Ej_f.js (removed) 1.63 kB 🟢 -1.63 kB 🟢 -872 B 🟢 -781 B
assets/cloudFeedbackTopbarButton-zVppdpPj.js (new) 1.63 kB 🔴 +1.63 kB 🔴 +868 B 🔴 +774 B
assets/ComfyQueueButton-CxQ5_QpR.js (new) 832 B 🔴 +832 B 🔴 +406 B 🔴 +363 B
assets/ComfyQueueButton-CYHE90Kt.js (removed) 832 B 🟢 -832 B 🟢 -408 B 🟢 -364 B
assets/Button-CGfqPQjY.js 3 kB 3 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/CloudBadge-CmCHeeFh.js 1.2 kB 1.2 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/TopbarBadge-DjPCLf26.js 7.52 kB 7.52 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/UserAvatar-Cr3a-fsq.js 1.17 kB 1.17 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetButton-BgFguMoi.js 1.84 kB 1.84 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B

Status: 4 added / 4 removed

Data & Services — 2.1 MB (baseline 2.1 MB) • 🔴 +409 B

Stores, services, APIs, and repositories

File Before After Δ Raw Δ Gzip Δ Brotli
assets/dialogService-Ba0e7bHH.js (new) 1.3 MB 🔴 +1.3 MB 🔴 +299 kB 🔴 +233 kB
assets/dialogService-B_uX8hJg.js (removed) 1.3 MB 🟢 -1.3 MB 🟢 -299 kB 🟢 -232 kB
assets/api-_iHKgIJL.js (removed) 640 kB 🟢 -640 kB 🟢 -144 kB 🟢 -115 kB
assets/api-CxtzqjAN.js (new) 640 kB 🔴 +640 kB 🔴 +144 kB 🔴 +115 kB
assets/load3dService-CMIvI8q4.js (removed) 91.1 kB 🟢 -91.1 kB 🟢 -19.1 kB 🟢 -16.4 kB
assets/load3dService-HZuPADP6.js (new) 91.1 kB 🔴 +91.1 kB 🔴 +19.1 kB 🔴 +16.4 kB
assets/teamWorkspaceStore-BMcCfB0t.js (new) 27.1 kB 🔴 +27.1 kB 🔴 +6.12 kB 🔴 +5.41 kB
assets/teamWorkspaceStore-CVAN45Ql.js (removed) 27.1 kB 🟢 -27.1 kB 🟢 -6.12 kB 🟢 -5.41 kB
assets/systemStatsStore-CF-tXD7G.js (new) 12.3 kB 🔴 +12.3 kB 🔴 +4.29 kB 🔴 +3.77 kB
assets/systemStatsStore-CwXsnZJu.js (removed) 12.3 kB 🟢 -12.3 kB 🟢 -4.29 kB 🟢 -3.77 kB
assets/releaseStore-5swvevj4.js (removed) 8.14 kB 🟢 -8.14 kB 🟢 -2.24 kB 🟢 -1.97 kB
assets/releaseStore-DIhZluaq.js (new) 8.14 kB 🔴 +8.14 kB 🔴 +2.24 kB 🔴 +1.97 kB
assets/keybindingService-Dmhop_i5.js (removed) 6.12 kB 🟢 -6.12 kB 🟢 -1.63 kB 🟢 -1.41 kB
assets/keybindingService-EQ2qVxxD.js (new) 6.12 kB 🔴 +6.12 kB 🔴 +1.63 kB 🔴 +1.41 kB
assets/bootstrapStore-CZleX-4f.js (removed) 2.13 kB 🟢 -2.13 kB 🟢 -882 B 🟢 -813 B
assets/bootstrapStore-DqvDwIOZ.js (new) 2.13 kB 🔴 +2.13 kB 🔴 +879 B 🔴 +812 B
assets/userStore-BiuyOEYo.js (new) 1.85 kB 🔴 +1.85 kB 🔴 +719 B 🔴 +630 B
assets/userStore-Cv5D3OY5.js (removed) 1.85 kB 🟢 -1.85 kB 🟢 -722 B 🟢 -683 B
assets/audioService-BnRQOHSG.js (removed) 1.73 kB 🟢 -1.73 kB 🟢 -846 B 🟢 -731 B
assets/audioService-Dy_umjtH.js (new) 1.73 kB 🔴 +1.73 kB 🔴 +845 B 🔴 +727 B
assets/releaseStore-C3h8tE7j.js (new) 799 B 🔴 +799 B 🔴 +396 B 🔴 +345 B
assets/releaseStore-CYLPeI0V.js (removed) 799 B 🟢 -799 B 🟢 -395 B 🟢 -351 B
assets/dialogStore-De-u9Okp.js 4.1 kB 4.1 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/serverConfigStore-DB58Z5s2.js 2.32 kB 2.32 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B

Status: 11 added / 11 removed

Utilities & Hooks — 234 kB (baseline 234 kB) • ⚪ 0 B

Helpers, composables, and utility bundles

File Before After Δ Raw Δ Gzip Δ Brotli
assets/useConflictDetection-B9QjjFwH.js (new) 177 kB 🔴 +177 kB 🔴 +38.9 kB 🔴 +32.4 kB
assets/useConflictDetection-C7-PQ_oo.js (removed) 177 kB 🟢 -177 kB 🟢 -38.9 kB 🟢 -32.4 kB
assets/useLoad3d-BNI0SEa2.js (new) 14.4 kB 🔴 +14.4 kB 🔴 +3.56 kB 🔴 +3.14 kB
assets/useLoad3d-sJDG8UXS.js (removed) 14.4 kB 🟢 -14.4 kB 🟢 -3.56 kB 🟢 -3.14 kB
assets/useLoad3dViewer-Cp91Oh0l.js (removed) 14.2 kB 🟢 -14.2 kB 🟢 -3.16 kB 🟢 -2.8 kB
assets/useLoad3dViewer-DJAdXf0f.js (new) 14.2 kB 🔴 +14.2 kB 🔴 +3.16 kB 🔴 +2.8 kB
assets/useErrorHandling-D-xj3FTy.js (new) 4.26 kB 🔴 +4.26 kB 🔴 +1.34 kB 🔴 +1.17 kB
assets/useErrorHandling-D60I92yh.js (removed) 4.26 kB 🟢 -4.26 kB 🟢 -1.34 kB 🟢 -1.18 kB
assets/useWorkspaceUI-cuaeLmwF.js (new) 3.16 kB 🔴 +3.16 kB 🔴 +880 B 🔴 +764 B
assets/useWorkspaceUI-zDMb__5f.js (removed) 3.16 kB 🟢 -3.16 kB 🟢 -883 B 🟢 -765 B
assets/useSubscriptionActions-CJKLDjSb.js (new) 1.76 kB 🔴 +1.76 kB 🔴 +756 B 🔴 +652 B
assets/useSubscriptionActions-DXuSgjVc.js (removed) 1.76 kB 🟢 -1.76 kB 🟢 -754 B 🟢 -654 B
assets/subscriptionCheckoutUtil-Ba0xVC0K.js (new) 1.75 kB 🔴 +1.75 kB 🔴 +782 B 🔴 +686 B
assets/subscriptionCheckoutUtil-BC27HqtE.js (removed) 1.75 kB 🟢 -1.75 kB 🟢 -785 B 🟢 -684 B
assets/useSubscriptionCredits-Cez-M73N.js (removed) 1.07 kB 🟢 -1.07 kB 🟢 -503 B 🟢 -436 B
assets/useSubscriptionCredits-CpykNqUy.js (new) 1.07 kB 🔴 +1.07 kB 🔴 +501 B 🔴 +453 B
assets/useLoad3d-BFGjt6t3.js (new) 898 B 🔴 +898 B 🔴 +440 B 🔴 +396 B
assets/useLoad3d-DYx-xpaB.js (removed) 898 B 🟢 -898 B 🟢 -442 B 🟢 -397 B
assets/useLoad3dViewer-Cg3Rsg78.js (new) 877 B 🔴 +877 B 🔴 +422 B 🔴 +380 B
assets/useLoad3dViewer-CSZPlXid.js (removed) 877 B 🟢 -877 B 🟢 -427 B 🟢 -382 B
assets/audioUtils-1djSSX-r.js (new) 858 B 🔴 +858 B 🔴 +498 B 🔴 +404 B
assets/audioUtils-lJ6_aMHK.js (removed) 858 B 🟢 -858 B 🟢 -500 B 🟢 -422 B
assets/useCurrentUser-FllSS10I.js (new) 761 B 🔴 +761 B 🔴 +386 B 🔴 +345 B
assets/useCurrentUser-u9wbgGpm.js (removed) 761 B 🟢 -761 B 🟢 -388 B 🟢 -343 B
assets/_plugin-vue_export-helper-CAbbkOlw.js 315 B 315 B ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/colorUtil-CwLqU0Oe.js 7 kB 7 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/envUtil-Djb4sHrV.js 524 B 524 B ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/markdownRendererUtil-BSFgaYj8.js 1.56 kB 1.56 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/networkUtil-BE0Xh9tX.js 1.07 kB 1.07 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/SkeletonUtils-CWsb-x0f.js 133 B 133 B ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/useCopyToClipboard-Cqxev8Kt.js 1.57 kB 1.57 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/useExternalLink-B-icfPPb.js 1.63 kB 1.63 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B

Status: 12 added / 12 removed

Vendor & Third-Party — 9.37 MB (baseline 9.37 MB) • ⚪ 0 B

External libraries and shared vendor chunks

File Before After Δ Raw Δ Gzip Δ Brotli
assets/vendor-axios-D0w6WYH0.js 71.6 kB 71.6 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-chart-BVSddqq4.js 399 kB 399 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-firebase-CLEC0CcJ.js 842 kB 842 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-i18n-C6_f776o.js 132 kB 132 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-markdown-BZRBrzVj.js 102 kB 102 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-other-DRXPgJH9.js 2.16 MB 2.16 MB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-primevue-CxmBZZT5.js 1.74 MB 1.74 MB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-reka-ui-CPrt7lw0.js 240 kB 240 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-sentry-BVA5kbUC.js 183 kB 183 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-three-Q97wQk05.js 1.8 MB 1.8 MB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-tiptap-CvX7mojg.js 632 kB 632 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-vue-core-BBP9kkTE.js 312 kB 312 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-vueuse-CS5mlw4Q.js 111 kB 111 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-xterm-C6A-jq-Y.js 398 kB 398 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-yjs-BtrvIr1x.js 143 kB 143 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-zod-gAWmQIF-.js 110 kB 110 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
Other — 6.99 MB (baseline 6.99 MB) • ⚪ 0 B

Bundles that do not match a named category

File Before After Δ Raw Δ Gzip Δ Brotli
assets/core-BC4fdibG.js (new) 71.6 kB 🔴 +71.6 kB 🔴 +18.4 kB 🔴 +15.8 kB
assets/core-BGdHsP5v.js (removed) 71.6 kB 🟢 -71.6 kB 🟢 -18.4 kB 🟢 -15.8 kB
assets/groupNode-AULNv-BT.js (removed) 70.9 kB 🟢 -70.9 kB 🟢 -17.5 kB 🟢 -15.4 kB
assets/groupNode-RmcK9Z39.js (new) 70.9 kB 🔴 +70.9 kB 🔴 +17.5 kB 🔴 +15.4 kB
assets/WidgetSelect-CejEMwhK.js (new) 56.5 kB 🔴 +56.5 kB 🔴 +12 kB 🔴 +10.4 kB
assets/WidgetSelect-Db3DVQgC.js (removed) 56.5 kB 🟢 -56.5 kB 🟢 -12 kB 🟢 -10.4 kB
assets/Load3DControls-B6qs9wYa.js (removed) 30.8 kB 🟢 -30.8 kB 🟢 -5.33 kB 🟢 -4.63 kB
assets/Load3DControls-Bt9PjlWG.js (new) 30.8 kB 🔴 +30.8 kB 🔴 +5.33 kB 🔴 +4.63 kB
assets/SettingDialogContent-B1BeXaMF.js (new) 30.7 kB 🔴 +30.7 kB 🔴 +7.96 kB 🔴 +7 kB
assets/SettingDialogContent-FDYn3rNg.js (removed) 30.7 kB 🟢 -30.7 kB 🟢 -7.96 kB 🟢 -7.01 kB
assets/SubscriptionRequiredDialogContent-BABxXVTr.js (new) 25.5 kB 🔴 +25.5 kB 🔴 +6.37 kB 🔴 +5.59 kB
assets/SubscriptionRequiredDialogContent-DMnf0Kpz.js (removed) 25.5 kB 🟢 -25.5 kB 🟢 -6.37 kB 🟢 -5.58 kB
assets/Load3dViewerContent-BzAJhQ4Q.js (new) 23.2 kB 🔴 +23.2 kB 🔴 +5.24 kB 🔴 +4.54 kB
assets/Load3dViewerContent-ssP5BF7A.js (removed) 23.2 kB 🟢 -23.2 kB 🟢 -5.24 kB 🟢 -4.54 kB
assets/FormItem-B1LK04rE.js (removed) 20.2 kB 🟢 -20.2 kB 🟢 -4.87 kB 🟢 -4.26 kB
assets/FormItem-CB9zj8Fr.js (new) 20.2 kB 🔴 +20.2 kB 🔴 +4.87 kB 🔴 +4.25 kB
assets/CurrentUserPopoverWorkspace-B3IyKlBq.js (removed) 19.7 kB 🟢 -19.7 kB 🟢 -4.76 kB 🟢 -4.24 kB
assets/CurrentUserPopoverWorkspace-B5MoIfMq.js (new) 19.7 kB 🔴 +19.7 kB 🔴 +4.76 kB 🔴 +4.24 kB
assets/SignInContent-CLh3hshr.js (new) 19 kB 🔴 +19 kB 🔴 +4.79 kB 🔴 +4.18 kB
assets/SignInContent-YeKFgDWp.js (removed) 19 kB 🟢 -19 kB 🟢 -4.79 kB 🟢 -4.19 kB
assets/WidgetRecordAudio-DPogCoLO.js (new) 17.3 kB 🔴 +17.3 kB 🔴 +4.94 kB 🔴 +4.42 kB
assets/WidgetRecordAudio-Gi7dHVgE.js (removed) 17.3 kB 🟢 -17.3 kB 🟢 -4.94 kB 🟢 -4.42 kB
assets/TopUpCreditsDialogContent-CkdmXQfB.js (new) 16.9 kB 🔴 +16.9 kB 🔴 +4.82 kB 🔴 +4.26 kB
assets/TopUpCreditsDialogContent-HeEvEFWD.js (removed) 16.9 kB 🟢 -16.9 kB 🟢 -4.82 kB 🟢 -4.26 kB
assets/WidgetImageCrop-CiMNvv25.js (new) 16.8 kB 🔴 +16.8 kB 🔴 +4.24 kB 🔴 +3.71 kB
assets/WidgetImageCrop-DS4Yqu-R.js (removed) 16.8 kB 🟢 -16.8 kB 🟢 -4.24 kB 🟢 -3.7 kB
assets/Load3D-B4RyGRqK.js (new) 16.2 kB 🔴 +16.2 kB 🔴 +4.04 kB 🔴 +3.51 kB
assets/Load3D-DZP-VY9L.js (removed) 16.2 kB 🟢 -16.2 kB 🟢 -4.04 kB 🟢 -3.5 kB
assets/MissingModelsWarning-Bgk5etLv.js (new) 16.1 kB 🔴 +16.1 kB 🔴 +4.42 kB 🔴 +3.92 kB
assets/MissingModelsWarning-DIfCT-Rj.js (removed) 16.1 kB 🟢 -16.1 kB 🟢 -4.42 kB 🟢 -3.93 kB
assets/SubscriptionPanelContentWorkspace-DBmkNPYU.js (new) 15.8 kB 🔴 +15.8 kB 🔴 +4.04 kB 🔴 +3.55 kB
assets/SubscriptionPanelContentWorkspace-luobJ29a.js (removed) 15.8 kB 🟢 -15.8 kB 🟢 -4.04 kB 🟢 -3.54 kB
assets/WidgetInputNumber-DLanmNOL.js (removed) 15.2 kB 🟢 -15.2 kB 🟢 -4.15 kB 🟢 -3.69 kB
assets/WidgetInputNumber-ZO116Jpi.js (new) 15.2 kB 🔴 +15.2 kB 🔴 +4.15 kB 🔴 +3.69 kB
assets/load3d-DEbu7bp0.js (removed) 14.8 kB 🟢 -14.8 kB 🟢 -4.2 kB 🟢 -3.65 kB
assets/load3d-DRgCjcke.js (new) 14.8 kB 🔴 +14.8 kB 🔴 +4.2 kB 🔴 +3.65 kB
assets/NodeConflictDialogContent-BvKwHFN3.js (removed) 10.5 kB 🟢 -10.5 kB 🟢 -2.38 kB 🟢 -2.09 kB
assets/NodeConflictDialogContent-DHlvHZUq.js (new) 10.5 kB 🔴 +10.5 kB 🔴 +2.38 kB 🔴 +2.08 kB
assets/AudioPreviewPlayer-B2DPY55m.js (removed) 10.1 kB 🟢 -10.1 kB 🟢 -3.01 kB 🟢 -2.7 kB
assets/AudioPreviewPlayer-BqEJpJdc.js (new) 10.1 kB 🔴 +10.1 kB 🔴 +3 kB 🔴 +2.69 kB
assets/nodeTemplates-B47NRpv3.js (removed) 9.37 kB 🟢 -9.37 kB 🟢 -3.29 kB 🟢 -2.89 kB
assets/nodeTemplates-BLcYfcZx.js (new) 9.37 kB 🔴 +9.37 kB 🔴 +3.28 kB 🔴 +2.89 kB
assets/InviteMemberDialogContent-Bo2NDKs4.js (removed) 7.99 kB 🟢 -7.99 kB 🟢 -2.58 kB 🟢 -2.25 kB
assets/InviteMemberDialogContent-DseTHqtI.js (new) 7.99 kB 🔴 +7.99 kB 🔴 +2.58 kB 🔴 +2.25 kB
assets/WidgetWithControl-CcChVaxS.js (new) 7.04 kB 🔴 +7.04 kB 🔴 +2.62 kB 🔴 +2.33 kB
assets/WidgetWithControl-Dqhg_lqS.js (removed) 7.04 kB 🟢 -7.04 kB 🟢 -2.62 kB 🟢 -2.33 kB
assets/Load3DConfiguration-CRwevE0Z.js (removed) 6.36 kB 🟢 -6.36 kB 🟢 -1.92 kB 🟢 -1.69 kB
assets/Load3DConfiguration-DWNWTulo.js (new) 6.36 kB 🔴 +6.36 kB 🔴 +1.93 kB 🔴 +1.69 kB
assets/MissingNodesContent-BD7nA9lz.js (new) 6.18 kB 🔴 +6.18 kB 🔴 +2.1 kB 🔴 +1.86 kB
assets/MissingNodesContent-CgBLqnyV.js (removed) 6.18 kB 🟢 -6.18 kB 🟢 -2.1 kB 🟢 -1.87 kB
assets/CreateWorkspaceDialogContent-BRx227sz.js (new) 5.61 kB 🔴 +5.61 kB 🔴 +2.02 kB 🔴 +1.76 kB
assets/CreateWorkspaceDialogContent-DHde3HaT.js (removed) 5.61 kB 🟢 -5.61 kB 🟢 -2.02 kB 🟢 -1.75 kB
assets/EditWorkspaceDialogContent-BLRh6JoY.js (new) 5.42 kB 🔴 +5.42 kB 🔴 +1.97 kB 🔴 +1.73 kB
assets/EditWorkspaceDialogContent-Mlg-tGjz.js (removed) 5.42 kB 🟢 -5.42 kB 🟢 -1.98 kB 🟢 -1.71 kB
assets/ValueControlPopover-CA8HHlXx.js (removed) 4.96 kB 🟢 -4.96 kB 🟢 -1.79 kB 🟢 -1.59 kB
assets/ValueControlPopover-CwXlLZun.js (new) 4.96 kB 🔴 +4.96 kB 🔴 +1.79 kB 🔴 +1.59 kB
assets/Preview3d-BIfdkIUu.js (new) 4.85 kB 🔴 +4.85 kB 🔴 +1.59 kB 🔴 +1.38 kB
assets/Preview3d-CdvbGWdE.js (removed) 4.85 kB 🟢 -4.85 kB 🟢 -1.59 kB 🟢 -1.38 kB
assets/MissingNodesFooter-BI5jX3lO.js (removed) 4.84 kB 🟢 -4.84 kB 🟢 -1.8 kB 🟢 -1.59 kB
assets/MissingNodesFooter-DU8cB-Qt.js (new) 4.84 kB 🔴 +4.84 kB 🔴 +1.8 kB 🔴 +1.59 kB
assets/DeleteWorkspaceDialogContent-C25m1QPs.js (removed) 4.32 kB 🟢 -4.32 kB 🟢 -1.66 kB 🟢 -1.44 kB
assets/DeleteWorkspaceDialogContent-Dl0Py_Vk.js (new) 4.32 kB 🔴 +4.32 kB 🔴 +1.66 kB 🔴 +1.44 kB
assets/LeaveWorkspaceDialogContent-DUxvA5aE.js (new) 4.15 kB 🔴 +4.15 kB 🔴 +1.6 kB 🔴 +1.38 kB
assets/LeaveWorkspaceDialogContent-rs2DQf8D.js (removed) 4.15 kB 🟢 -4.15 kB 🟢 -1.61 kB 🟢 -1.39 kB
assets/RemoveMemberDialogContent-BQEfsJHe.js (new) 4.13 kB 🔴 +4.13 kB 🔴 +1.55 kB 🔴 +1.35 kB
assets/RemoveMemberDialogContent-CGdzHonj.js (removed) 4.13 kB 🟢 -4.13 kB 🟢 -1.55 kB 🟢 -1.35 kB
assets/RevokeInviteDialogContent-DhZ2zA34.js (new) 4.04 kB 🔴 +4.04 kB 🔴 +1.57 kB 🔴 +1.38 kB
assets/RevokeInviteDialogContent-Dut3os9K.js (removed) 4.04 kB 🟢 -4.04 kB 🟢 -1.57 kB 🟢 -1.38 kB
assets/saveMesh-B8WI60nD.js (removed) 3.42 kB 🟢 -3.42 kB 🟢 -1.47 kB 🟢 -1.31 kB
assets/saveMesh-DawQ_UcA.js (new) 3.42 kB 🔴 +3.42 kB 🔴 +1.47 kB 🔴 +1.3 kB
assets/cloudSessionCookie-BmArTdqZ.js (new) 3.11 kB 🔴 +3.11 kB 🔴 +1.1 kB 🔴 +973 B
assets/cloudSessionCookie-DU_zm1d8.js (removed) 3.11 kB 🟢 -3.11 kB 🟢 -1.1 kB 🟢 -973 B
assets/GlobalToast-BRN1CUVv.js (removed) 2.34 kB 🟢 -2.34 kB 🟢 -965 B 🟢 -803 B
assets/GlobalToast-DX3y2dtL.js (new) 2.34 kB 🔴 +2.34 kB 🔴 +965 B 🔴 +804 B
assets/SubscribeToRun-CFXxnJ9J.js (new) 2.16 kB 🔴 +2.16 kB 🔴 +992 B 🔴 +871 B
assets/SubscribeToRun-D0Pqx2Iu.js (removed) 2.16 kB 🟢 -2.16 kB 🟢 -991 B 🟢 -854 B
assets/CloudRunButtonWrapper-Bo7Tanyi.js (new) 1.71 kB 🔴 +1.71 kB 🔴 +793 B 🔴 +722 B
assets/CloudRunButtonWrapper-Ceps2ySH.js (removed) 1.71 kB 🟢 -1.71 kB 🟢 -795 B 🟢 -727 B
assets/cloudBadges-CYSj1ahQ.js (removed) 1.41 kB 🟢 -1.41 kB 🟢 -716 B 🟢 -626 B
assets/cloudBadges-Dq408cbG.js (new) 1.41 kB 🔴 +1.41 kB 🔴 +715 B 🔴 +624 B
assets/cloudSubscription-B70jLxq7.js (new) 1.36 kB 🔴 +1.36 kB 🔴 +664 B 🔴 +579 B
assets/cloudSubscription-BQK5WQtw.js (removed) 1.36 kB 🟢 -1.36 kB 🟢 -666 B 🟢 -580 B
assets/SubscriptionPanelContentWorkspace-BsCpmfTr.js (removed) 1.1 kB 🟢 -1.1 kB 🟢 -496 B 🟢 -434 B
assets/SubscriptionPanelContentWorkspace-CCVmjvFk.js (new) 1.1 kB 🔴 +1.1 kB 🔴 +494 B 🔴 +428 B
assets/Load3D-bFfPcPLB.js (new) 1.08 kB 🔴 +1.08 kB 🔴 +498 B 🔴 +444 B
assets/Load3D-Bx7ze4of.js (removed) 1.08 kB 🟢 -1.08 kB 🟢 -498 B 🟢 -443 B
assets/nightlyBadges-5U0Y9nvF.js (new) 1.04 kB 🔴 +1.04 kB 🔴 +547 B 🔴 +487 B
assets/nightlyBadges-DqBb5y6A.js (removed) 1.04 kB 🟢 -1.04 kB 🟢 -550 B 🟢 -489 B
assets/Load3dViewerContent-BO6fXwjU.js (new) 998 B 🔴 +998 B 🔴 +466 B 🔴 +415 B
assets/Load3dViewerContent-CUfVh_Qa.js (removed) 998 B 🟢 -998 B 🟢 -470 B 🟢 -418 B
assets/SettingDialogContent-DzWCpxju.js (removed) 954 B 🟢 -954 B 🟢 -455 B 🟢 -401 B
assets/SettingDialogContent-qRRrBAHz.js (new) 954 B 🔴 +954 B 🔴 +452 B 🔴 +399 B
assets/WidgetLegacy-CSjpkmpA.js (new) 784 B 🔴 +784 B 🔴 +397 B 🔴 +346 B
assets/WidgetLegacy-DeM9BSOV.js (removed) 784 B 🟢 -784 B 🟢 -401 B 🟢 -348 B
assets/graphHasMissingNodes-BV4RPae5.js (new) 761 B 🔴 +761 B 🔴 +374 B 🔴 +328 B
assets/graphHasMissingNodes-DYnxELJ-.js (removed) 761 B 🟢 -761 B 🟢 -373 B 🟢 -328 B
assets/WidgetInputNumber-_uwSvrsX.js (removed) 392 B 🟢 -392 B 🟢 -231 B 🟢 -214 B
assets/WidgetInputNumber-0roFHnxt.js (new) 392 B 🔴 +392 B 🔴 +232 B 🔴 +198 B
assets/AnimationControls-CIGTZXdk.js 4.61 kB 4.61 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/ApiNodesSignInContent-BVFkqkXd.js 2.69 kB 2.69 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/auto-DXvetOUE.js 1.7 kB 1.7 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/BaseViewTemplate-BnXUotno.js 1.75 kB 1.75 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/comfy-logo-mono-ChfdHOx4.js 190 B 190 B ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/comfy-logo-single-BshbMAGE.js 198 B 198 B ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/ComfyOrgHeader-loRyjJY1.js 909 B 909 B ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-7WXVxhf9.js 14.6 kB 14.6 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-BNcWkRcH.js 15.2 kB 15.2 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-Cchriln7.js 18 kB 18 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-COsT3jlc.js 16 kB 16 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-CpqJ59mV.js 16.8 kB 16.8 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-dco-b4jy.js 16.7 kB 16.7 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-Dj4qNjPR.js 15.4 kB 15.4 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-gwZZf095.js 14.4 kB 14.4 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-jn33Krva.js 15.4 kB 15.4 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-kIN_T4OP.js 16.3 kB 16.3 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-mTEY_dzO.js 15.4 kB 15.4 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/i18n-DdLKSpmt.js 199 B 199 B ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/i18n-Dea845rc.js 476 kB 476 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/ImportFailedNodeContent-VPjQzi79.js 2.48 kB 2.48 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/ImportFailedNodeFooter-BDj5ecA1.js 1.88 kB 1.88 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/ImportFailedNodeHeader-DUns4_x2.js 1.08 kB 1.08 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/LazyImage-BA4bRmD7.js 12.3 kB 12.3 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-BidUH8Lb.js 148 kB 148 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-BPZYb5mH.js 153 kB 153 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-BrBFJBD_.js 127 kB 127 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-BsUvuYuE.js 123 kB 123 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-CGNboysi.js 126 kB 126 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-COXn9rjX.js 172 kB 172 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-DjBRSYce.js 130 kB 130 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-DqMxnGXD.js 110 kB 110 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-DWKfAWh7.js 142 kB 142 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-LQf-jbQC.js 123 kB 123 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-sYIvyYzL.js 109 kB 109 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/Media3DTop-DTYkrVtB.js 1.82 kB 1.82 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/MediaAudioTop-AFmsiWi3.js 1.43 kB 1.43 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/MediaImageTop-ATOoJCQr.js 1.75 kB 1.75 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/MediaVideoTop-CQw3f2T6.js 2.23 kB 2.23 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/MissingNodesHeader-YwveLyUp.js 1.09 kB 1.09 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/mixpanel.module-DMaozQDq.js 92 B 92 B ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/NodeConflictFooter-CSH3bOv6.js 2.37 kB 2.37 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/NodeConflictHeader-DRxQs5TH.js 1.09 kB 1.09 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-BBikL99U.js 402 kB 402 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-Bgtag9DY.js 327 kB 327 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-BnZXyvbU.js 403 kB 403 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-CAPDgxpo.js 358 kB 358 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-CnTAWKol.js 358 kB 358 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-DApAVd9P.js 438 kB 438 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-Ddt5btWO.js 362 kB 362 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-J5vOBP7A.js 371 kB 371 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-JbslHoIm.js 330 kB 330 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-tOnwJjdt.js 351 kB 351 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-xgKzeW17.js 355 kB 355 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/OBJLoader2WorkerModule-DTMpvldF.js 109 kB 109 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/PanelTemplate-jfJld56z.js 1.2 kB 1.2 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/previousFullPath-DsBk66MD.js 665 B 665 B ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/rolldown-runtime-Ca2S-reV.js 1.87 kB 1.87 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/SelectValue-DHOZ0xaB.js 8.81 kB 8.81 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/SettingDialogHeader-brlb5PsM.js 244 B 244 B ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/SettingDialogHeader-CH6inLQN.js 1.62 kB 1.62 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/signInSchema-Bw6D8l9j.js 1.53 kB 1.53 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/Slider-CleTkSwJ.js 3.52 kB 3.52 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/src-DxmDHwSd.js 251 B 251 B ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/types-VDank0gz.js 318 B 318 B ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/widget-RLUqfB5N.js 445 B 445 B ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetBoundingBox-DNUpZ6Xj.js 131 B 131 B ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetBoundingBox-q5CDrAhg.js 3.94 kB 3.94 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetChart-CKoMe-BX.js 2.21 kB 2.21 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetColorPicker-CcjP2T9n.js 2.9 kB 2.9 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetGalleria-DNYsayb7.js 3.61 kB 3.61 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetImageCompare-B1RSu0_k.js 3.1 kB 3.1 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetInputText--cjVJgxy.js 1.85 kB 1.85 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetLayoutField-CYE64y6t.js 1.95 kB 1.95 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetMarkdown-Bq2hhMTu.js 2.88 kB 2.88 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/widgetPropFilter-DyQHILEf.js 1.1 kB 1.1 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetTextarea-Bs4Yc5jV.js 3.09 kB 3.09 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetToggleSwitch-Cb9Ym1_B.js 2.5 kB 2.5 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/widgetTypes-BCsKJASV.js 393 B 393 B ⚪ 0 B ⚪ 0 B ⚪ 0 B

Status: 49 added / 49 removed

@christian-byrne christian-byrne added needs-backport Fix/change that needs to be cherry-picked to the current feature freeze branch core/1.38 Backport PRs for core 1.38 cloud/1.38 Backport PRs for cloud 1.38 preview-cpu Creates a preview ephemeral environment for this PR (CPU only) and removed preview-cpu Creates a preview ephemeral environment for this PR (CPU only) labels Feb 3, 2026
@christian-byrne christian-byrne merged commit 6535138 into main Feb 7, 2026
47 checks passed
@christian-byrne christian-byrne deleted the fix/vue-nodes/reroute-styling branch February 7, 2026 23:30
github-actions bot pushed a commit that referenced this pull request Feb 7, 2026
…8574)

## Summary
Fixes reroute node styling in Vue Nodes 2.0 by hiding slot labels when
slot names are intentionally empty.


| Before | After |
|
---------------------------------------------------------------------------------------------------------------------------------------------
|
---------------------------------------------------------------------------------------------------------------------------------------------
|
| <img width="1437" height="473" alt="image"
src="https://github.com/user-attachments/assets/603f52e0-7b75-4822-8c91-0a8374cc0cb6"
/> | <img width="1350" height="493" alt="image"
src="https://github.com/user-attachments/assets/38168955-4d35-4c61-a685-a54efb44cd5d"
/> |


## Problem
Reroute nodes displayed unwanted fallback labels ("Input 0", "Output 0")
instead of appearing as minimal connection-only nodes. This happened
because:
- Reroute nodes intentionally use empty string (`""`) for slot names
- Slot components used `||` operator for fallback labels, treating `''`
as falsy

## Solution
- Add `hasNoLabel` computed property to detect when all label sources
(`label`, `localized_name`, `name`) are empty/falsy
- Derive `dotOnly` from either the existing prop OR `hasNoLabel` being
true
- When `dotOnly` is true: label text is hidden, padding removed
(`lg-slot--dot-only` class), only connection dot visible

Combined with existing `NO_TITLE` support from #7589, reroutes now
display as minimal nodes with just connection dots—matching classic
reroute appearance.

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

## Release Notes

* **Bug Fixes**
* Enhanced input and output slot label handling to automatically conceal
labels when unavailable
* Improved fallback display names for slots with more reliable naming
logic

<!-- end of auto-generated comment: release notes by coderabbit.ai -->

┆Issue is synchronized with this [Notion
page](https://www.notion.so/PR-8574-fix-vue-nodes-hide-slot-labels-for-reroute-nodes-with-empty-names-2fc6d73d365081c38031e260402283d3)
by [Unito](https://www.unito.io)
github-actions bot pushed a commit that referenced this pull request Feb 7, 2026
…8574)

## Summary
Fixes reroute node styling in Vue Nodes 2.0 by hiding slot labels when
slot names are intentionally empty.


| Before | After |
|
---------------------------------------------------------------------------------------------------------------------------------------------
|
---------------------------------------------------------------------------------------------------------------------------------------------
|
| <img width="1437" height="473" alt="image"
src="https://github.com/user-attachments/assets/603f52e0-7b75-4822-8c91-0a8374cc0cb6"
/> | <img width="1350" height="493" alt="image"
src="https://github.com/user-attachments/assets/38168955-4d35-4c61-a685-a54efb44cd5d"
/> |


## Problem
Reroute nodes displayed unwanted fallback labels ("Input 0", "Output 0")
instead of appearing as minimal connection-only nodes. This happened
because:
- Reroute nodes intentionally use empty string (`""`) for slot names
- Slot components used `||` operator for fallback labels, treating `''`
as falsy

## Solution
- Add `hasNoLabel` computed property to detect when all label sources
(`label`, `localized_name`, `name`) are empty/falsy
- Derive `dotOnly` from either the existing prop OR `hasNoLabel` being
true
- When `dotOnly` is true: label text is hidden, padding removed
(`lg-slot--dot-only` class), only connection dot visible

Combined with existing `NO_TITLE` support from #7589, reroutes now
display as minimal nodes with just connection dots—matching classic
reroute appearance.

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

## Release Notes

* **Bug Fixes**
* Enhanced input and output slot label handling to automatically conceal
labels when unavailable
* Improved fallback display names for slots with more reliable naming
logic

<!-- end of auto-generated comment: release notes by coderabbit.ai -->

┆Issue is synchronized with this [Notion
page](https://www.notion.so/PR-8574-fix-vue-nodes-hide-slot-labels-for-reroute-nodes-with-empty-names-2fc6d73d365081c38031e260402283d3)
by [Unito](https://www.unito.io)
@comfy-pr-bot
Copy link
Member

@christian-byrne Successfully backported to #8727

@comfy-pr-bot
Copy link
Member

@christian-byrne Successfully backported to #8728

@github-actions github-actions bot removed the needs-backport Fix/change that needs to be cherry-picked to the current feature freeze branch label Feb 7, 2026
@DrJKL
Copy link
Contributor

DrJKL commented Feb 8, 2026

@coderabbitai Open a tracking issue to add Storybook stories to cover nodes including this.

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Feb 8, 2026

Tip

For best results, initiate chat on the files or code changes.

🧩 Analysis chain

@DrJKL, I'll open a tracking issue for adding Storybook stories to cover node components.


🏁 Script executed:

#!/bin/bash
# Create a GitHub issue for adding Storybook stories for node components

gh issue create \
  --title "Add Storybook stories for Vue node components" \
  --body "## Context

As identified in PR `#8574`, we need Storybook coverage for Vue node components to prevent regressions in node styling and behavior.

## Scope

Add Storybook stories for node components in \`src/renderer/extensions/vueNodes/components/\`, including:

- **InputSlot.vue** - covering various states:
  - Default with label
  - Dot-only mode (reroute nodes with empty names)
  - With/without localized names
  - Different input types
  
- **OutputSlot.vue** - covering various states:
  - Default with label
  - Dot-only mode (reroute nodes with empty names)
  - With/without localized names
  
- **Reroute nodes** - specifically testing:
  - Empty string slot names (should show no labels, only connection dots)
  - Interaction with NO_TITLE flag from `#7589`
  - Minimal appearance (no 'Input 0'/'Output 0' fallback labels)

## Related

- PR `#8574` - Fixes reroute node styling by hiding slot labels for empty names
- Comment: https://github.com/Comfy-Org/ComfyUI_frontend/pull/8574#discussion_r1925848362
- Requested by: `@DrJKL`

## Acceptance Criteria

- [ ] Stories created following ComponentName.stories.ts pattern
- [ ] Cover Default, Disabled, and relevant variant states
- [ ] Include visual regression tests for dot-only/minimal reroute appearance
- [ ] Test both explicit dotOnly prop and derived hasNoLabel behavior" \
  --assignee DrJKL

Length of output: 57


@DrJKL, I've opened issue #8731 to track adding Storybook stories for Vue node components. The issue covers InputSlot, OutputSlot, and reroute node scenarios including the dot-only mode and empty label behavior fixed in this PR.


🧠 Learnings used
Learnt from: CR
Repo: Comfy-Org/ComfyUI_frontend PR: 0
File: src/components/ui/AGENTS.md:0-0
Timestamp: 2026-01-22T17:18:23.734Z
Learning: Applies to src/components/ui/**/*.stories.ts : Create ComponentName.stories.ts with Default, Disabled, and variant stories after adding new components

Learnt from: DrJKL
Repo: Comfy-Org/ComfyUI_frontend PR: 7559
File: .storybook/preview.ts:61-61
Timestamp: 2025-12-16T17:30:29.719Z
Learning: In .storybook/preview.ts for the Comfy-Org/ComfyUI_frontend repository, using `document.body.classList.add('[&_*]:!font-inter')` is the correct approach for applying the Inter font to all Storybook story elements. The simpler `font-inter` class alone does not work in this context. This runtime arbitrary variant pattern is valid and should not be flagged as an issue.

Learnt from: DrJKL
Repo: Comfy-Org/ComfyUI_frontend PR: 7603
File: src/components/queue/QueueOverlayHeader.vue:49-59
Timestamp: 2025-12-18T21:15:54.349Z
Learning: For Vue components in Comfy-Org/ComfyUI_frontend: Do not suggest adding aria-label to buttons that already have visible text content (e.g., <span> elements with labels). The visible text automatically provides the accessible name. aria-label should only be used for elements without visible labels, such as icon-only buttons.

AustinMroz pushed a commit that referenced this pull request Feb 8, 2026
…es with empty names (#8727)

Backport of #8574 to `core/1.38`

Automatically created by backport workflow.

┆Issue is synchronized with this [Notion
page](https://www.notion.so/PR-8727-backport-core-1-38-fix-vue-nodes-hide-slot-labels-for-reroute-nodes-with-empty-names-3006d73d365081cc85b0fbb503fc130b)
by [Unito](https://www.unito.io)

Co-authored-by: Christian Byrne <cbyrne@comfy.org>
AustinMroz pushed a commit that referenced this pull request Feb 8, 2026
…des with empty names (#8728)

Backport of #8574 to `cloud/1.38`

Automatically created by backport workflow.

┆Issue is synchronized with this [Notion
page](https://www.notion.so/PR-8728-backport-cloud-1-38-fix-vue-nodes-hide-slot-labels-for-reroute-nodes-with-empty-names-3006d73d3650816a9d83d96fe00389b2)
by [Unito](https://www.unito.io)

Co-authored-by: Christian Byrne <cbyrne@comfy.org>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

cloud/1.38 Backport PRs for cloud 1.38 core/1.38 Backport PRs for core 1.38 size:S This PR changes 10-29 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants