Skip to content

feat: add display name mappings for Essentials tab nodes#9072

Merged
christian-byrne merged 7 commits intomainfrom
toolkit/add-display-name-mappings-for-essentials-tab
Feb 22, 2026
Merged

feat: add display name mappings for Essentials tab nodes#9072
christian-byrne merged 7 commits intomainfrom
toolkit/add-display-name-mappings-for-essentials-tab

Conversation

@christian-byrne
Copy link
Contributor

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

Summary

Add frontend-only display name mappings for nodes shown in the Essentials tab, plus parse the new essentials_category field from the backend.

Changes

  • What: Created src/constants/essentialsDisplayNames.ts with a static mapping of node names to user-friendly display names (e.g. CLIPTextEncode → "Text", ImageScale → "Resize Image"). Regular nodes use exact name matching; blueprint nodes use prefix matching since their filenames include model-specific suffixes. Integrated into NodeLibrarySidebarTab.vue's renderedRoot computed for leaf node labels with fallback to display_name. Added essentials_category (z.string().optional()) to the node def schema and ComfyNodeDefImpl to parse the field already sent by the backend (PR #12357).

Review Focus

Display names are resolved only in the Essentials tab tree view (NodeLibrarySidebarTab.vue), not globally, to avoid side effects on search, bookmarks, or other views. Blueprint prefix matching is ordered longest-first so more specific prefixes (e.g. image_inpainting_) match before shorter ones (e.g. image_edit).

┆Issue is synchronized with this Notion page by Unito

- Add essentials_category field to zComfyNodeDef schema and ComfyNodeDefImpl
- Create static display name mappings for Essentials tab nodes
- Integrate display name resolution into NodeLibrarySidebarTab
- Support exact name matching for regular nodes and prefix matching for blueprints

Amp-Thread-ID: https://ampcode.com/threads/T-019c8326-5356-7604-b9cd-34a6d08e157d
@christian-byrne christian-byrne added the enhancement New feature or request label Feb 22, 2026
@christian-byrne christian-byrne requested a review from a team as a code owner February 22, 2026 02:22
@christian-byrne christian-byrne self-assigned this Feb 22, 2026
@christian-byrne christian-byrne added the enhancement New feature or request label Feb 22, 2026
@dosubot dosubot bot added the size:L This PR changes 100-499 lines, ignoring generated files. label Feb 22, 2026
@dosubot
Copy link

dosubot bot commented Feb 22, 2026

Related Documentation

Checked 0 published document(s) in 1 knowledge base(s). No updates required.

How did I do? Any feedback?  Join Discord

@coderabbitai
Copy link
Contributor

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

Adds a centralized resolver for "essentials" node display names and updates sidebar components and an essential node card to prefer resolved labels; includes a new locale block and unit tests covering exact names, blueprint prefixes, and unmapped cases.

Changes

Cohort / File(s) Summary
Display Name Resolver
src/constants/essentialsDisplayNames.ts, src/constants/essentialsDisplayNames.test.ts
New module resolveEssentialsDisplayName() with EXACT_NAME_MAP and BLUEPRINT_PREFIX_MAP; test suite added to validate mappings, 3D alternatives, blueprint prefix matches, and unmapped returns.
Sidebar — Node Library
src/components/sidebar/tabs/NodeLibrarySidebarTab.vue, src/components/sidebar/tabs/NodeLibrarySidebarTabV2.vue
Both files import the resolver. V2 adds an options param (useEssentialsLabels) propagated to recursion and passes { useEssentialsLabels: true } for essentials roots; leaf label logic now prefers resolveEssentialsDisplayName(node.data) with fallback to node.data.display_name.
Essential Node Card
src/components/sidebar/tabs/nodeLibrary/EssentialNodeCard.vue, src/components/sidebar/tabs/nodeLibrary/EssentialNodeCard.test.ts
Component now uses node.label as the displayed name and data-node-name; test updated to construct mocks that reflect node.data.display_name-derived labels.
Localization
src/locales/en/main.json
Adds top-level essentials section with ~38 English translation keys used by the resolver/display names.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Poem

🐰 I hopped through maps and blueprint lines today,
I nudged node names so they find their way,
From resolver roots to the sidebar’s light,
Labels now gleam tidy and bright,
A tiny rabbit cheers: hooray! 🎉

🚥 Pre-merge checks | ✅ 2 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 33.33% 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 directly describes the main change: adding display name mappings for Essentials tab nodes, which is the core feature across all modified files.
Description check ✅ Passed The description includes a clear summary, detailed changes explaining the new mapping file and integration, and review focus on scope and prefix matching. All required sections are present and substantive.

✏️ 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 toolkit/add-display-name-mappings-for-essentials-tab

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

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

🤖 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/constants/essentialsDisplayNames.ts`:
- Around line 9-101: Replace hard-coded English strings used for UI display with
vue-i18n keys: move every user-facing value in EXACT_NAME_MAP and
BLUEPRINT_PREFIX_MAP into locale keys in src/locales/en/main.json, then change
resolveBlueprintDisplayName and resolveEssentialsDisplayName to return t('...')
(or call the i18n instance) for the matching key instead of the literal string;
ensure keys are unique and descriptive (e.g., essentials.loadImage,
essentials.image.inpaint) and update any callers of resolveEssentialsDisplayName
to receive localized strings.

@christian-byrne
Copy link
Contributor Author

Do not merge, tweaking some things

- Localize all display name strings via vue-i18n (essentials.* keys)
- Replace CLIPTextEncode with PrimitiveStringMultiline (per ComfyUI PR #12553)
- Replace deprecated ImageBatch with BatchImagesNode
- Fix 'image compare' node name to 'ImageCompare'
- Remove ImageBlur (should use subgraph blueprint)
- Replace GetVideoComponents with 'Video Slice' (correct node_id)
- Add 3D API node alternatives (Meshy, Tripo providers)
- Add KlingLipSyncTextToVideoNode alternative
- Remove emoji from code comments
- Add browser test for essentials display names

Amp-Thread-ID: https://ampcode.com/threads/T-019c8340-4da2-723b-a09f-83895c5bbda5
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.

🧹 Nitpick comments (1)
browser_tests/tests/sidebar/essentialsDisplayNames.spec.ts (1)

9-12: Consider validating response status for clearer failure diagnostics.

If /object_info fails or returns non-JSON, the test will fail with a confusing JSON parsing error rather than a clear HTTP status error.

💡 Optional improvement for clearer failures
     const objectInfo = await comfyPage.page.evaluate(async () => {
       const response = await fetch('/object_info')
+      if (!response.ok) {
+        throw new Error(`/object_info failed with status ${response.status}`)
+      }
       return response.json()
     })
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@browser_tests/tests/sidebar/essentialsDisplayNames.spec.ts` around lines 9 -
12, The fetch call inside comfyPage.page.evaluate that assigns objectInfo should
validate the HTTP response before parsing JSON: check response.ok (or
response.status) and, if not ok, throw or return a clear error containing
response.status and response.statusText so the test fails with an explicit HTTP
error rather than a JSON parse error; update the evaluate callback that calls
fetch('/object_info') to perform this check and surface the status in the
thrown/returned message so failures reference objectInfo fetching and the HTTP
status.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Nitpick comments:
In `@browser_tests/tests/sidebar/essentialsDisplayNames.spec.ts`:
- Around line 9-12: The fetch call inside comfyPage.page.evaluate that assigns
objectInfo should validate the HTTP response before parsing JSON: check
response.ok (or response.status) and, if not ok, throw or return a clear error
containing response.status and response.statusText so the test fails with an
explicit HTTP error rather than a JSON parse error; update the evaluate callback
that calls fetch('/object_info') to perform this check and surface the status in
the thrown/returned message so failures reference objectInfo fetching and the
HTTP status.

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.

🧹 Nitpick comments (1)
browser_tests/tests/sidebar/essentialsDisplayNames.spec.ts (1)

6-33: Deduplicate /object_info fetch logic with a helper.
The fetch + error handling is repeated in two tests; a small helper keeps the logic consistent and easier to update.

♻️ Proposed refactor
-import { expect } from '@playwright/test'
+import { expect } from '@playwright/test'
+import type { Page } from '@playwright/test'
 
 import { comfyPageFixture as test } from '../../fixtures/ComfyPage'
 
+async function fetchObjectInfo(page: Page) {
+  return page.evaluate(async () => {
+    const response = await fetch('/object_info')
+    if (!response.ok) {
+      throw new Error(`/object_info failed with status ${response.status}`)
+    }
+    return response.json()
+  })
+}
+
 test.describe('Essentials display names', () => {
   test('backend serves essentials_category on nodes via object_info', async ({
     comfyPage
   }) => {
-    const objectInfo = await comfyPage.page.evaluate(async () => {
-      const response = await fetch('/object_info')
-      if (!response.ok) {
-        throw new Error(`/object_info failed with status ${response.status}`)
-      }
-      return response.json()
-    })
+    const objectInfo = await fetchObjectInfo(comfyPage.page)
@@
   test('mapped nodes exist in object_info', async ({ comfyPage }) => {
-    const objectInfo = await comfyPage.page.evaluate(async () => {
-      const response = await fetch('/object_info')
-      if (!response.ok) {
-        throw new Error(`/object_info failed with status ${response.status}`)
-      }
-      return response.json()
-    })
+    const objectInfo = await fetchObjectInfo(comfyPage.page)
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@browser_tests/tests/sidebar/essentialsDisplayNames.spec.ts` around lines 6 -
33, Extract the repeated fetch + error handling into a shared helper (e.g.,
getObjectInfo or fetchObjectInfo) and use it in both tests ('backend serves
essentials_category on nodes via object_info' and 'mapped nodes exist in
object_info') to avoid duplication; the helper should call
comfyPage.page.evaluate, fetch('/object_info'), throw an Error when response.ok
is false, and return response.json(), then replace the inline
comfyPage.page.evaluate blocks in both tests with a call to this helper.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Nitpick comments:
In `@browser_tests/tests/sidebar/essentialsDisplayNames.spec.ts`:
- Around line 6-33: Extract the repeated fetch + error handling into a shared
helper (e.g., getObjectInfo or fetchObjectInfo) and use it in both tests
('backend serves essentials_category on nodes via object_info' and 'mapped nodes
exist in object_info') to avoid duplication; the helper should call
comfyPage.page.evaluate, fetch('/object_info'), throw an Error when response.ok
is false, and return response.json(), then replace the inline
comfyPage.page.evaluate blocks in both tests with a call to this helper.

…ame-mappings-for-essentials-tab

Amp-Thread-ID: https://ampcode.com/threads/T-019c835a-3490-7018-809e-a734bd0ddc67

# Conflicts:
#	src/schemas/nodeDefSchema.ts
#	src/stores/nodeDefStore.ts
@github-actions
Copy link

github-actions bot commented Feb 22, 2026

🎨 Storybook: ✅ Built — View Storybook

Details

⏰ Completed at: 02/22/2026, 07:03:18 AM UTC

Links

@github-actions
Copy link

github-actions bot commented Feb 22, 2026

🎭 Playwright: ✅ 533 passed, 0 failed · 1 flaky

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

@github-actions
Copy link

github-actions bot commented Feb 22, 2026

📦 Bundle: 4.37 MB gzip 🔴 +1.2 kB

Details

Summary

  • Raw size: 20.5 MB baseline 20.5 MB — 🔴 +3.81 kB
  • Gzip: 4.37 MB baseline 4.37 MB — 🔴 +1.2 kB
  • Brotli: 3.38 MB baseline 3.37 MB — 🔴 +1.03 kB
  • Bundles: 223 current • 223 baseline • 109 added / 109 removed

Category Glance
Data & Services 🔴 +2.6 kB (2.51 MB) · Other 🔴 +1.21 kB (7.6 MB) · Vendor & Third-Party ⚪ 0 B (8.83 MB) · Graph Workspace ⚪ 0 B (951 kB) · Panels & Settings ⚪ 0 B (436 kB) · Views & Navigation ⚪ 0 B (68.8 kB) · + 5 more

App Entry Points — 21.6 kB (baseline 21.6 kB) • ⚪ 0 B

Main entry bundles and manifests

File Before After Δ Raw Δ Gzip Δ Brotli
assets/index-Cr_hv8y1.js (new) 21.6 kB 🔴 +21.6 kB 🔴 +7.02 kB 🔴 +6.1 kB
assets/index-DuQd4asA.js (removed) 21.6 kB 🟢 -21.6 kB 🟢 -7.02 kB 🟢 -6.09 kB

Status: 1 added / 1 removed

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

Graph editor runtime, canvas, workflow orchestration

File Before After Δ Raw Δ Gzip Δ Brotli
assets/GraphView-CenWOeSK.js (new) 951 kB 🔴 +951 kB 🔴 +204 kB 🔴 +155 kB
assets/GraphView-Hv7cWIZ5.js (removed) 951 kB 🟢 -951 kB 🟢 -204 kB 🟢 -155 kB

Status: 1 added / 1 removed

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

Top-level views, pages, and routed surfaces

File Before After Δ Raw Δ Gzip Δ Brotli
assets/CloudSurveyView-BLUwQiLm.js (new) 15.5 kB 🔴 +15.5 kB 🔴 +3.32 kB 🔴 +2.82 kB
assets/CloudSurveyView-CJPN0X-f.js (removed) 15.5 kB 🟢 -15.5 kB 🟢 -3.32 kB 🟢 -2.83 kB
assets/CloudLoginView-B-SPyj_c.js (removed) 10 kB 🟢 -10 kB 🟢 -2.93 kB 🟢 -2.57 kB
assets/CloudLoginView-BXZbfik9.js (new) 10 kB 🔴 +10 kB 🔴 +2.93 kB 🔴 +2.56 kB
assets/UserCheckView-CAdfaDUZ.js (removed) 8.41 kB 🟢 -8.41 kB 🟢 -2.22 kB 🟢 -1.94 kB
assets/UserCheckView-taSfb2uK.js (new) 8.41 kB 🔴 +8.41 kB 🔴 +2.22 kB 🔴 +1.94 kB
assets/CloudSignupView-Bv_2XtTJ.js (new) 7.41 kB 🔴 +7.41 kB 🔴 +2.32 kB 🔴 +2.03 kB
assets/CloudSignupView-CMUjHd-Q.js (removed) 7.41 kB 🟢 -7.41 kB 🟢 -2.32 kB 🟢 -2.04 kB
assets/CloudLayoutView-BckcM83-.js (new) 6.43 kB 🔴 +6.43 kB 🔴 +2.1 kB 🔴 +1.84 kB
assets/CloudLayoutView-Dk9-JFZx.js (removed) 6.43 kB 🟢 -6.43 kB 🟢 -2.1 kB 🟢 -1.83 kB
assets/CloudForgotPasswordView-CVDvXQvm.js (new) 5.56 kB 🔴 +5.56 kB 🔴 +1.94 kB 🔴 +1.7 kB
assets/CloudForgotPasswordView-wjEbpY9B.js (removed) 5.56 kB 🟢 -5.56 kB 🟢 -1.93 kB 🟢 -1.7 kB
assets/CloudAuthTimeoutView-BeAqwfes.js (removed) 4.91 kB 🟢 -4.91 kB 🟢 -1.77 kB 🟢 -1.55 kB
assets/CloudAuthTimeoutView-CaUTwwdp.js (new) 4.91 kB 🔴 +4.91 kB 🔴 +1.77 kB 🔴 +1.55 kB
assets/CloudSubscriptionRedirectView-DFDQJkRi.js (new) 4.71 kB 🔴 +4.71 kB 🔴 +1.78 kB 🔴 +1.58 kB
assets/CloudSubscriptionRedirectView-Wi3G2p-p.js (removed) 4.71 kB 🟢 -4.71 kB 🟢 -1.78 kB 🟢 -1.58 kB
assets/UserSelectView-DS-atiwm.js (new) 4.5 kB 🔴 +4.5 kB 🔴 +1.64 kB 🔴 +1.47 kB
assets/UserSelectView-yb-i0L7E.js (removed) 4.5 kB 🟢 -4.5 kB 🟢 -1.64 kB 🟢 -1.47 kB
assets/CloudSorryContactSupportView-Bi8IsTTh.js 1.02 kB 1.02 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/layout-vBPh8yaQ.js 296 B 296 B ⚪ 0 B ⚪ 0 B ⚪ 0 B

Status: 9 added / 9 removed

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

Configuration panels, inspectors, and settings screens

File Before After Δ Raw Δ Gzip Δ Brotli
assets/SecretsPanel-5s9fkKEI.js (new) 21.5 kB 🔴 +21.5 kB 🔴 +5.3 kB 🔴 +4.66 kB
assets/SecretsPanel-ReP3dE3D.js (removed) 21.5 kB 🟢 -21.5 kB 🟢 -5.3 kB 🟢 -4.66 kB
assets/LegacyCreditsPanel-D6FVuv6R.js (removed) 20.6 kB 🟢 -20.6 kB 🟢 -5.57 kB 🟢 -4.89 kB
assets/LegacyCreditsPanel-DBf2krnw.js (new) 20.6 kB 🔴 +20.6 kB 🔴 +5.56 kB 🔴 +4.9 kB
assets/SubscriptionPanel-61RDxsFY.js (removed) 18.6 kB 🟢 -18.6 kB 🟢 -4.73 kB 🟢 -4.16 kB
assets/SubscriptionPanel-knKHol0v.js (new) 18.6 kB 🔴 +18.6 kB 🔴 +4.73 kB 🔴 +4.16 kB
assets/KeybindingPanel-CphSOtyN.js (removed) 12.3 kB 🟢 -12.3 kB 🟢 -3.57 kB 🟢 -3.17 kB
assets/KeybindingPanel-CtTCsbWj.js (new) 12.3 kB 🔴 +12.3 kB 🔴 +3.58 kB 🔴 +3.17 kB
assets/AboutPanel-CmgDH_JF.js (removed) 9.79 kB 🟢 -9.79 kB 🟢 -2.73 kB 🟢 -2.46 kB
assets/AboutPanel-Cw2BAoWa.js (new) 9.79 kB 🔴 +9.79 kB 🔴 +2.73 kB 🔴 +2.48 kB
assets/ExtensionPanel-BH06681p.js (new) 9.38 kB 🔴 +9.38 kB 🔴 +2.65 kB 🔴 +2.35 kB
assets/ExtensionPanel-DCD8txiP.js (removed) 9.38 kB 🟢 -9.38 kB 🟢 -2.65 kB 🟢 -2.35 kB
assets/ServerConfigPanel-BX8UeNw4.js (new) 6.44 kB 🔴 +6.44 kB 🔴 +2.13 kB 🔴 +1.9 kB
assets/ServerConfigPanel-DR2NWtVe.js (removed) 6.44 kB 🟢 -6.44 kB 🟢 -2.13 kB 🟢 -1.93 kB
assets/UserPanel-BP0v9nXo.js (new) 6.16 kB 🔴 +6.16 kB 🔴 +1.99 kB 🔴 +1.75 kB
assets/UserPanel-CApadsWG.js (removed) 6.16 kB 🟢 -6.16 kB 🟢 -1.99 kB 🟢 -1.75 kB
assets/cloudRemoteConfig-C0bUWZE8.js (new) 1.44 kB 🔴 +1.44 kB 🔴 +709 B 🔴 +607 B
assets/cloudRemoteConfig-Dij_P6ix.js (removed) 1.44 kB 🟢 -1.44 kB 🟢 -707 B 🟢 -614 B
assets/refreshRemoteConfig-BOhzzVej.js (removed) 1.14 kB 🟢 -1.14 kB 🟢 -521 B 🟢 -460 B
assets/refreshRemoteConfig-BtZg7sFy.js (new) 1.14 kB 🔴 +1.14 kB 🔴 +518 B 🔴 +458 B
assets/config-QxkqTZy6.js 996 B 996 B ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-3cK4vYSX.js 27.9 kB 27.9 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-AqJa7Oe1.js 28.7 kB 28.7 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-BOcWl0Qp.js 34.2 kB 34.2 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-BodhSOuG.js 30.5 kB 30.5 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-CCD8qxmc.js 27.8 kB 27.8 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-CVDNuOXV.js 23.9 kB 23.9 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-DLodCRRz.js 24.5 kB 24.5 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-DLqeCT09.js 38.5 kB 38.5 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-DP-OgTXN.js 29.9 kB 29.9 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-DRIXyZ_Z.js 28.8 kB 28.8 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-IRk9rDbu.js 32.4 kB 32.4 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B

Status: 10 added / 10 removed

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

Authentication, profile, and account management bundles

File Before After Δ Raw Δ Gzip Δ Brotli
assets/auth-BRdPVKuh.js (removed) 3.4 kB 🟢 -3.4 kB 🟢 -1.18 kB 🟢 -991 B
assets/auth-rewD_2-4.js (new) 3.4 kB 🔴 +3.4 kB 🔴 +1.18 kB 🔴 +990 B
assets/SignUpForm-Du9hsTHP.js (new) 3.01 kB 🔴 +3.01 kB 🔴 +1.23 kB 🔴 +1.09 kB
assets/SignUpForm-DXWBldN2.js (removed) 3.01 kB 🟢 -3.01 kB 🟢 -1.23 kB 🟢 -1.09 kB
assets/UpdatePasswordContent-DCQB5Aqc.js (new) 2.37 kB 🔴 +2.37 kB 🔴 +1.07 kB 🔴 +943 B
assets/UpdatePasswordContent-DxgxYZp1.js (removed) 2.37 kB 🟢 -2.37 kB 🟢 -1.07 kB 🟢 -947 B
assets/firebaseAuthStore-Bag5Sm-i.js (new) 790 B 🔴 +790 B 🔴 +388 B 🔴 +346 B
assets/firebaseAuthStore-v_D0Kt6U.js (removed) 790 B 🟢 -790 B 🟢 -387 B 🟢 -347 B
assets/auth-BQBqprfm.js (new) 357 B 🔴 +357 B 🔴 +225 B 🔴 +221 B
assets/auth-CMg_Ev8P.js (removed) 357 B 🟢 -357 B 🟢 -226 B 🟢 -197 B
assets/PasswordFields-koUYSkkX.js 4.51 kB 4.51 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WorkspaceProfilePic-BRX_wv6S.js 1.57 kB 1.57 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B

Status: 5 added / 5 removed

Editors & Dialogs — 738 B (baseline 738 B) • ⚪ 0 B

Modals, dialogs, drawers, and in-app editors

File Before After Δ Raw Δ Gzip Δ Brotli
assets/useSubscriptionDialog-CGLuT0Hw.js (removed) 738 B 🟢 -738 B 🟢 -374 B 🟢 -330 B
assets/useSubscriptionDialog-COVa2CBx.js (new) 738 B 🔴 +738 B 🔴 +379 B 🔴 +327 B

Status: 1 added / 1 removed

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

Reusable component library chunks

File Before After Δ Raw Δ Gzip Δ Brotli
assets/useTerminalTabs-BoG7rGsL.js (new) 9.85 kB 🔴 +9.85 kB 🔴 +3.4 kB 🔴 +3 kB
assets/useTerminalTabs-J6NpnXZH.js (removed) 9.85 kB 🟢 -9.85 kB 🟢 -3.4 kB 🟢 -3.01 kB
assets/ComfyQueueButton-B44u36Nw.js (removed) 8.02 kB 🟢 -8.02 kB 🟢 -2.49 kB 🟢 -2.23 kB
assets/ComfyQueueButton-Dss6cq79.js (new) 8.02 kB 🔴 +8.02 kB 🔴 +2.49 kB 🔴 +2.23 kB
assets/SubscribeButton-Bj1nqTOu.js (new) 2.35 kB 🔴 +2.35 kB 🔴 +1.02 kB 🔴 +887 B
assets/SubscribeButton-Dkk7Vemq.js (removed) 2.35 kB 🟢 -2.35 kB 🟢 -1.02 kB 🟢 -886 B
assets/cloudFeedbackTopbarButton-BaG6N3YI.js (removed) 1.6 kB 🟢 -1.6 kB 🟢 -855 B 🟢 -768 B
assets/cloudFeedbackTopbarButton-C7wcp62f.js (new) 1.6 kB 🔴 +1.6 kB 🔴 +857 B 🔴 +763 B
assets/ComfyQueueButton-C-Vwf3Gp.js (new) 795 B 🔴 +795 B 🔴 +395 B 🔴 +356 B
assets/ComfyQueueButton-D2LHWdS4.js (removed) 795 B 🟢 -795 B 🟢 -393 B 🟢 -350 B
assets/Button-DcjgQBBu.js 2.98 kB 2.98 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/CloudBadge-lmHOydPu.js 1.24 kB 1.24 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/FormSearchInput-Cu92TP21.js 3.73 kB 3.73 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/ScrubableNumberInput-D7H0v_Kw.js 5.94 kB 5.94 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/TopbarBadge-0OM2g_KN.js 7.45 kB 7.45 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/UserAvatar-DkTACzmk.js 1.17 kB 1.17 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetButton-DRxh3QrM.js 1.84 kB 1.84 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B

Status: 5 added / 5 removed

Data & Services — 2.51 MB (baseline 2.51 MB) • 🔴 +2.6 kB

Stores, services, APIs, and repositories

File Before After Δ Raw Δ Gzip Δ Brotli
assets/dialogService-CLmsez6F.js (new) 1.73 MB 🔴 +1.73 MB 🔴 +387 kB 🔴 +293 kB
assets/dialogService-ClU_Pn_n.js (removed) 1.73 MB 🟢 -1.73 MB 🟢 -386 kB 🟢 -292 kB
assets/api-DuTrCdaJ.js (new) 653 kB 🔴 +653 kB 🔴 +147 kB 🔴 +118 kB
assets/api-YoVYxoMv.js (removed) 653 kB 🟢 -653 kB 🟢 -147 kB 🟢 -118 kB
assets/load3dService-CuaYnYdp.js (removed) 91 kB 🟢 -91 kB 🟢 -19.1 kB 🟢 -16.4 kB
assets/load3dService-Cvm35QbD.js (new) 91 kB 🔴 +91 kB 🔴 +19.1 kB 🔴 +16.4 kB
assets/systemStatsStore-B7brXJhE.js (removed) 12.7 kB 🟢 -12.7 kB 🟢 -4.42 kB 🟢 -3.89 kB
assets/systemStatsStore-DVcksPEU.js (new) 12.7 kB 🔴 +12.7 kB 🔴 +4.42 kB 🔴 +3.88 kB
assets/releaseStore-BCAF2iGj.js (new) 7.96 kB 🔴 +7.96 kB 🔴 +2.22 kB 🔴 +1.95 kB
assets/releaseStore-VeDXVcIF.js (removed) 7.96 kB 🟢 -7.96 kB 🟢 -2.22 kB 🟢 -1.95 kB
assets/keybindingService-7BSiMs6-.js (removed) 6.52 kB 🟢 -6.52 kB 🟢 -1.71 kB 🟢 -1.48 kB
assets/keybindingService-D4IVrUCp.js (new) 6.52 kB 🔴 +6.52 kB 🔴 +1.71 kB 🔴 +1.48 kB
assets/bootstrapStore-BgzbODjf.js (removed) 2.08 kB 🟢 -2.08 kB 🟢 -872 B 🟢 -788 B
assets/bootstrapStore-DWqadEVs.js (new) 2.08 kB 🔴 +2.08 kB 🔴 +871 B 🔴 +790 B
assets/userStore-D2UhvNaX.js (new) 1.85 kB 🔴 +1.85 kB 🔴 +718 B 🔴 +676 B
assets/userStore-DeRRWOjY.js (removed) 1.85 kB 🟢 -1.85 kB 🟢 -719 B 🟢 -634 B
assets/audioService-CzN0Pg3B.js (removed) 1.73 kB 🟢 -1.73 kB 🟢 -848 B 🟢 -725 B
assets/audioService-DUovr-Et.js (new) 1.73 kB 🔴 +1.73 kB 🔴 +845 B 🔴 +727 B
assets/releaseStore-Bs4AbfGg.js (removed) 762 B 🟢 -762 B 🟢 -382 B 🟢 -342 B
assets/releaseStore-DHIQT4uh.js (new) 762 B 🔴 +762 B 🔴 +385 B 🔴 +341 B
assets/settingStore-BDgOLCBs.js (removed) 746 B 🟢 -746 B 🟢 -387 B 🟢 -343 B
assets/settingStore-C5QsNYuH.js (new) 746 B 🔴 +746 B 🔴 +388 B 🔴 +343 B
assets/workflowDraftStore-BgR3l334.js (new) 738 B 🔴 +738 B 🔴 +378 B 🔴 +332 B
assets/workflowDraftStore-D72EN0bW.js (removed) 738 B 🟢 -738 B 🟢 -374 B 🟢 -336 B
assets/dialogService-CDYUbQIH.js (removed) 727 B 🟢 -727 B 🟢 -366 B 🟢 -328 B
assets/dialogService-D8OcvgZX.js (new) 727 B 🔴 +727 B 🔴 +371 B 🔴 +330 B
assets/serverConfigStore-B17wcfZ1.js 2.32 kB 2.32 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B

Status: 13 added / 13 removed

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

Helpers, composables, and utility bundles

File Before After Δ Raw Δ Gzip Δ Brotli
assets/useLoad3d-BBbLvYXH.js (removed) 14.6 kB 🟢 -14.6 kB 🟢 -3.63 kB 🟢 -3.21 kB
assets/useLoad3d-BliOotlL.js (new) 14.6 kB 🔴 +14.6 kB 🔴 +3.63 kB 🔴 +3.21 kB
assets/useLoad3dViewer-0HuJ8yYL.js (new) 14.1 kB 🔴 +14.1 kB 🔴 +3.15 kB 🔴 +2.8 kB
assets/useLoad3dViewer-DzQrCESn.js (removed) 14.1 kB 🟢 -14.1 kB 🟢 -3.15 kB 🟢 -2.8 kB
assets/useFeatureFlags-i69pNeoM.js (new) 4.14 kB 🔴 +4.14 kB 🔴 +1.23 kB 🔴 +1.05 kB
assets/useFeatureFlags-pXcbAD73.js (removed) 4.14 kB 🟢 -4.14 kB 🟢 -1.23 kB 🟢 -1.05 kB
assets/useWorkspaceUI-C3F1LCQr.js (removed) 3 kB 🟢 -3 kB 🟢 -821 B 🟢 -702 B
assets/useWorkspaceUI-D-yEv2EH.js (new) 3 kB 🔴 +3 kB 🔴 +822 B 🔴 +704 B
assets/useSubscriptionCredits-Bhgjysu6.js (new) 2.75 kB 🔴 +2.75 kB 🔴 +1.03 kB 🔴 +904 B
assets/useSubscriptionCredits-gIk8Ato9.js (removed) 2.75 kB 🟢 -2.75 kB 🟢 -1.03 kB 🟢 -901 B
assets/subscriptionCheckoutUtil-Cl4xTxul.js (new) 2.53 kB 🔴 +2.53 kB 🔴 +1.06 kB 🔴 +954 B
assets/subscriptionCheckoutUtil-i5hDzPcx.js (removed) 2.53 kB 🟢 -2.53 kB 🟢 -1.06 kB 🟢 -958 B
assets/useExternalLink-Bll1Pq7u.js (removed) 1.66 kB 🟢 -1.66 kB 🟢 -772 B 🟢 -676 B
assets/useExternalLink-CP0EHGq7.js (new) 1.66 kB 🔴 +1.66 kB 🔴 +773 B 🔴 +677 B
assets/useErrorHandling-Crbwgcnh.js (removed) 1.5 kB 🟢 -1.5 kB 🟢 -628 B 🟢 -534 B
assets/useErrorHandling-DShqk1Zh.js (new) 1.5 kB 🔴 +1.5 kB 🔴 +630 B 🔴 +533 B
assets/useWorkspaceSwitch-C3juMy_d.js (new) 1.25 kB 🔴 +1.25 kB 🔴 +542 B 🔴 +487 B
assets/useWorkspaceSwitch-hUqnjdsA.js (removed) 1.25 kB 🟢 -1.25 kB 🟢 -541 B 🟢 -488 B
assets/useLoad3d-3Hymleiq.js (new) 861 B 🔴 +861 B 🔴 +423 B 🔴 +379 B
assets/useLoad3d-brctmv_0.js (removed) 861 B 🟢 -861 B 🟢 -425 B 🟢 -380 B
assets/audioUtils-B6MdY65C.js (new) 858 B 🔴 +858 B 🔴 +501 B 🔴 +402 B
assets/audioUtils-CyWw41Br.js (removed) 858 B 🟢 -858 B 🟢 -500 B 🟢 -402 B
assets/useLoad3dViewer-C13xC9OR.js (new) 840 B 🔴 +840 B 🔴 +410 B 🔴 +371 B
assets/useLoad3dViewer-D50ZzA-u.js (removed) 840 B 🟢 -840 B 🟢 -409 B 🟢 -373 B
assets/useCurrentUser-DVsZEoNc.js (new) 724 B 🔴 +724 B 🔴 +375 B 🔴 +331 B
assets/useCurrentUser-f2dW-sTO.js (removed) 724 B 🟢 -724 B 🟢 -369 B 🟢 -328 B
assets/_plugin-vue_export-helper-CY4XIWDa.js 315 B 315 B ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/colorUtil-m-0Os8lq.js 7 kB 7 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/envUtil-BQSmRN2Q.js 466 B 466 B ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/markdownRendererUtil-DOdPeMQc.js 1.56 kB 1.56 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/SkeletonUtils-BputJAFn.js 133 B 133 B ⚪ 0 B ⚪ 0 B ⚪ 0 B

Status: 13 added / 13 removed

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

External libraries and shared vendor chunks

File Before After Δ Raw Δ Gzip Δ Brotli
assets/vendor-axios-Cp6hch1I.js 70.7 kB 70.7 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-chart-BxkFiWzp.js 399 kB 399 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-DccD0mxo.js 133 kB 133 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-markdown-D5S6AC80.js 103 kB 103 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-other-BzNZEmD_.js 1.52 MB 1.52 MB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-primevue-Ca9moc73.js 1.73 MB 1.73 MB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-reka-ui-CWMIYdD2.js 379 kB 379 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-sentry-SQwstEKc.js 182 kB 182 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-three-LBLOE6BD.js 1.8 MB 1.8 MB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-tiptap-CHaNo_rA.js 634 kB 634 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-vue-core-CmHHRvL9.js 311 kB 311 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-vueuse-B4hGe0IQ.js 113 kB 113 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-xterm-vkxZGffR.js 374 kB 374 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
Other — 7.6 MB (baseline 7.6 MB) • 🔴 +1.21 kB

Bundles that do not match a named category

File Before After Δ Raw Δ Gzip Δ Brotli
assets/i18n-RaNKP_V2.js (new) 519 kB 🔴 +519 kB 🔴 +99.7 kB 🔴 +77.7 kB
assets/i18n-BnmlFAM4.js (removed) 518 kB 🟢 -518 kB 🟢 -99.3 kB 🟢 -77.3 kB
assets/core-D5b6YpkQ.js (new) 72.8 kB 🔴 +72.8 kB 🔴 +18.8 kB 🔴 +16.1 kB
assets/core-DCKgszgT.js (removed) 72.8 kB 🟢 -72.8 kB 🟢 -18.8 kB 🟢 -16.1 kB
assets/groupNode-DaFtRr88.js (new) 71.8 kB 🔴 +71.8 kB 🔴 +17.6 kB 🔴 +15.5 kB
assets/groupNode-S7mkle1h.js (removed) 71.8 kB 🟢 -71.8 kB 🟢 -17.6 kB 🟢 -15.5 kB
assets/WidgetSelect-_jdxBTcR.js (removed) 58.1 kB 🟢 -58.1 kB 🟢 -12.4 kB 🟢 -10.7 kB
assets/WidgetSelect-CJ_EF_oA.js (new) 58.1 kB 🔴 +58.1 kB 🔴 +12.4 kB 🔴 +10.7 kB
assets/SubscriptionRequiredDialogContentWorkspace-CKWBFpLs.js (new) 45.8 kB 🔴 +45.8 kB 🔴 +8.56 kB 🔴 +7.4 kB
assets/SubscriptionRequiredDialogContentWorkspace-D8fKqQkE.js (removed) 45.8 kB 🟢 -45.8 kB 🟢 -8.56 kB 🟢 -7.43 kB
assets/Load3DControls-CALAj6Q3.js (new) 30.9 kB 🔴 +30.9 kB 🔴 +5.34 kB 🔴 +4.64 kB
assets/Load3DControls-P4jKd_-Q.js (removed) 30.9 kB 🟢 -30.9 kB 🟢 -5.34 kB 🟢 -4.65 kB
assets/WorkspacePanelContent-B--5hAZ4.js (removed) 29.3 kB 🟢 -29.3 kB 🟢 -6.14 kB 🟢 -5.39 kB
assets/WorkspacePanelContent-P1SPRo6f.js (new) 29.3 kB 🔴 +29.3 kB 🔴 +6.14 kB 🔴 +5.4 kB
assets/SubscriptionRequiredDialogContent-DTjYeGGH.js (new) 26.2 kB 🔴 +26.2 kB 🔴 +6.57 kB 🔴 +5.78 kB
assets/SubscriptionRequiredDialogContent-U3FW9br3.js (removed) 26.2 kB 🟢 -26.2 kB 🟢 -6.56 kB 🟢 -5.77 kB
assets/Load3dViewerContent-BHEStxjT.js (new) 23 kB 🔴 +23 kB 🔴 +5.18 kB 🔴 +4.5 kB
assets/Load3dViewerContent-hLCzmQSh.js (removed) 23 kB 🟢 -23 kB 🟢 -5.18 kB 🟢 -4.49 kB
assets/WidgetImageCrop-DCqAmwOF.js (new) 22.1 kB 🔴 +22.1 kB 🔴 +5.51 kB 🔴 +4.85 kB
assets/WidgetImageCrop-DsHuWD5h.js (removed) 22.1 kB 🟢 -22.1 kB 🟢 -5.51 kB 🟢 -4.84 kB
assets/SubscriptionPanelContentWorkspace-CNMevbmJ.js (new) 21.6 kB 🔴 +21.6 kB 🔴 +5.02 kB 🔴 +4.42 kB
assets/SubscriptionPanelContentWorkspace-CTEIdxbR.js (removed) 21.6 kB 🟢 -21.6 kB 🟢 -5.02 kB 🟢 -4.43 kB
assets/CurrentUserPopoverWorkspace-CluO1Bi0.js (removed) 19.8 kB 🟢 -19.8 kB 🟢 -4.86 kB 🟢 -4.33 kB
assets/CurrentUserPopoverWorkspace-DomEG5us.js (new) 19.8 kB 🔴 +19.8 kB 🔴 +4.86 kB 🔴 +4.33 kB
assets/SignInContent-_61_R43P.js (new) 18.9 kB 🔴 +18.9 kB 🔴 +4.78 kB 🔴 +4.2 kB
assets/SignInContent-DE91Xakx.js (removed) 18.9 kB 🟢 -18.9 kB 🟢 -4.78 kB 🟢 -4.19 kB
assets/WidgetInputNumber-BrihxLPn.js (new) 18.6 kB 🔴 +18.6 kB 🔴 +4.71 kB 🔴 +4.18 kB
assets/WidgetInputNumber-CL7hJuoC.js (removed) 18.6 kB 🟢 -18.6 kB 🟢 -4.71 kB 🟢 -4.18 kB
assets/WidgetRecordAudio-DJqkC6Ad.js (removed) 17.3 kB 🟢 -17.3 kB 🟢 -4.94 kB 🟢 -4.42 kB
assets/WidgetRecordAudio-DUl5LqaU.js (new) 17.3 kB 🔴 +17.3 kB 🔴 +4.94 kB 🔴 +4.42 kB
assets/Load3D-CJ7k54vm.js (removed) 16.2 kB 🟢 -16.2 kB 🟢 -4.03 kB 🟢 -3.51 kB
assets/Load3D-Cmswx6_k.js (new) 16.2 kB 🔴 +16.2 kB 🔴 +4.02 kB 🔴 +3.52 kB
assets/load3d-Csa4lZp9.js (new) 14.7 kB 🔴 +14.7 kB 🔴 +4.19 kB 🔴 +3.64 kB
assets/load3d-Di5I5i0f.js (removed) 14.7 kB 🟢 -14.7 kB 🟢 -4.19 kB 🟢 -3.63 kB
assets/AudioPreviewPlayer-BjOgmyzJ.js (removed) 10.9 kB 🟢 -10.9 kB 🟢 -3.2 kB 🟢 -2.85 kB
assets/AudioPreviewPlayer-Z85mrC5_.js (new) 10.9 kB 🔴 +10.9 kB 🔴 +3.2 kB 🔴 +2.85 kB
assets/changeTracker-Bc54rHph.js (removed) 9.38 kB 🟢 -9.38 kB 🟢 -2.89 kB 🟢 -2.55 kB
assets/changeTracker-U2sKUOxO.js (new) 9.38 kB 🔴 +9.38 kB 🔴 +2.89 kB 🔴 +2.54 kB
assets/nodeTemplates-Ba-6NeIm.js (new) 9.3 kB 🔴 +9.3 kB 🔴 +3.26 kB 🔴 +2.86 kB
assets/nodeTemplates-DW5-kLWu.js (removed) 9.3 kB 🟢 -9.3 kB 🟢 -3.25 kB 🟢 -2.86 kB
assets/InviteMemberDialogContent-B4EhR6bS.js (removed) 7.38 kB 🟢 -7.38 kB 🟢 -2.29 kB 🟢 -2 kB
assets/InviteMemberDialogContent-C7FrWu2A.js (new) 7.38 kB 🔴 +7.38 kB 🔴 +2.29 kB 🔴 +2 kB
assets/Load3DConfiguration-BGRVX5lg.js (removed) 6.27 kB 🟢 -6.27 kB 🟢 -1.91 kB 🟢 -1.68 kB
assets/Load3DConfiguration-i6bpb1LB.js (new) 6.27 kB 🔴 +6.27 kB 🔴 +1.91 kB 🔴 +1.67 kB
assets/CreateWorkspaceDialogContent-Bppgcfmi.js (new) 5.53 kB 🔴 +5.53 kB 🔴 +1.99 kB 🔴 +1.74 kB
assets/CreateWorkspaceDialogContent-DVXLFZbo.js (removed) 5.53 kB 🟢 -5.53 kB 🟢 -1.99 kB 🟢 -1.74 kB
assets/EditWorkspaceDialogContent-CtSPvVAQ.js (removed) 5.33 kB 🟢 -5.33 kB 🟢 -1.94 kB 🟢 -1.7 kB
assets/EditWorkspaceDialogContent-D87mkLCJ.js (new) 5.33 kB 🔴 +5.33 kB 🔴 +1.95 kB 🔴 +1.7 kB
assets/ValueControlPopover-DHnxD_Yh.js (removed) 4.92 kB 🟢 -4.92 kB 🟢 -1.76 kB 🟢 -1.58 kB
assets/ValueControlPopover-DSeLJ1XW.js (new) 4.92 kB 🔴 +4.92 kB 🔴 +1.77 kB 🔴 +1.59 kB
assets/Preview3d-CNOR3dHV.js (removed) 4.82 kB 🟢 -4.82 kB 🟢 -1.56 kB 🟢 -1.37 kB
assets/Preview3d-DU7KWk-c.js (new) 4.82 kB 🔴 +4.82 kB 🔴 +1.57 kB 🔴 +1.37 kB
assets/CancelSubscriptionDialogContent-BKidT8sT.js (new) 4.79 kB 🔴 +4.79 kB 🔴 +1.78 kB 🔴 +1.56 kB
assets/CancelSubscriptionDialogContent-DwWAFNbq.js (removed) 4.79 kB 🟢 -4.79 kB 🟢 -1.78 kB 🟢 -1.56 kB
assets/DeleteWorkspaceDialogContent-BxiImtGk.js (removed) 4.23 kB 🟢 -4.23 kB 🟢 -1.63 kB 🟢 -1.42 kB
assets/DeleteWorkspaceDialogContent-CyweXFab.js (new) 4.23 kB 🔴 +4.23 kB 🔴 +1.63 kB 🔴 +1.43 kB
assets/WidgetWithControl-CiVXKsr5.js (new) 4.11 kB 🔴 +4.11 kB 🔴 +1.78 kB 🔴 +1.61 kB
assets/WidgetWithControl-DcRwRABB.js (removed) 4.11 kB 🟢 -4.11 kB 🟢 -1.78 kB 🟢 -1.6 kB
assets/LeaveWorkspaceDialogContent-BhwOe_vE.js (new) 4.06 kB 🔴 +4.06 kB 🔴 +1.58 kB 🔴 +1.37 kB
assets/LeaveWorkspaceDialogContent-CZr4d_2l.js (removed) 4.06 kB 🟢 -4.06 kB 🟢 -1.58 kB 🟢 -1.38 kB
assets/RemoveMemberDialogContent-BcMFEzyf.js (new) 4.04 kB 🔴 +4.04 kB 🔴 +1.53 kB 🔴 +1.33 kB
assets/RemoveMemberDialogContent-XOFxKQdw.js (removed) 4.04 kB 🟢 -4.04 kB 🟢 -1.52 kB 🟢 -1.34 kB
assets/RevokeInviteDialogContent-DVSCcyeH.js (new) 3.96 kB 🔴 +3.96 kB 🔴 +1.54 kB 🔴 +1.36 kB
assets/RevokeInviteDialogContent-XXNJABu8.js (removed) 3.96 kB 🟢 -3.96 kB 🟢 -1.54 kB 🟢 -1.36 kB
assets/InviteMemberUpsellDialogContent-BaZ6nBnn.js (removed) 3.83 kB 🟢 -3.83 kB 🟢 -1.4 kB 🟢 -1.23 kB
assets/InviteMemberUpsellDialogContent-BwpSmiLh.js (new) 3.83 kB 🔴 +3.83 kB 🔴 +1.4 kB 🔴 +1.23 kB
assets/saveMesh-B1OUOeiO.js (removed) 3.38 kB 🟢 -3.38 kB 🟢 -1.46 kB 🟢 -1.29 kB
assets/saveMesh-BYHwFncF.js (new) 3.38 kB 🔴 +3.38 kB 🔴 +1.46 kB 🔴 +1.3 kB
assets/cloudSessionCookie-Caykwojm.js (new) 3.1 kB 🔴 +3.1 kB 🔴 +1.09 kB 🔴 +967 B
assets/cloudSessionCookie-E2MlV_F8.js (removed) 3.1 kB 🟢 -3.1 kB 🟢 -1.09 kB 🟢 -987 B
assets/GlobalToast-CyMqzHeT.js (new) 2.91 kB 🔴 +2.91 kB 🔴 +1.21 kB 🔴 +1.06 kB
assets/GlobalToast-DsZ6JREh.js (removed) 2.91 kB 🟢 -2.91 kB 🟢 -1.21 kB 🟢 -1.07 kB
assets/ApiNodesSignInContent-DBe67K-w.js (new) 2.69 kB 🔴 +2.69 kB 🔴 +1.05 kB 🔴 +922 B
assets/ApiNodesSignInContent-DoDpFrqq.js (removed) 2.69 kB 🟢 -2.69 kB 🟢 -1.05 kB 🟢 -955 B
assets/SubscribeToRun-CL5Cwt0J.js (new) 2.2 kB 🔴 +2.2 kB 🔴 +1.01 kB 🔴 +871 B
assets/SubscribeToRun-D52bIFp1.js (removed) 2.2 kB 🟢 -2.2 kB 🟢 -1.01 kB 🟢 -874 B
assets/CloudRunButtonWrapper-Cd6LgPiW.js (removed) 1.68 kB 🟢 -1.68 kB 🟢 -785 B 🟢 -717 B
assets/CloudRunButtonWrapper-CTQehSHL.js (new) 1.68 kB 🔴 +1.68 kB 🔴 +783 B 🔴 +718 B
assets/signInSchema-CznxoPrm.js (new) 1.53 kB 🔴 +1.53 kB 🔴 +561 B 🔴 +515 B
assets/signInSchema-DKaRYNlG.js (removed) 1.53 kB 🟢 -1.53 kB 🟢 -564 B 🟢 -518 B
assets/cloudBadges-BIMQ3QzW.js (removed) 1.37 kB 🟢 -1.37 kB 🟢 -704 B 🟢 -610 B
assets/cloudBadges-QDOOWdSE.js (new) 1.37 kB 🔴 +1.37 kB 🔴 +706 B 🔴 +612 B
assets/cloudSubscription-BbbOPo8m.js (new) 1.33 kB 🔴 +1.33 kB 🔴 +659 B 🔴 +571 B
assets/cloudSubscription-C-1I2HuW.js (removed) 1.33 kB 🟢 -1.33 kB 🟢 -657 B 🟢 -569 B
assets/Load3D-CC42liTg.js (removed) 1.07 kB 🟢 -1.07 kB 🟢 -497 B 🟢 -446 B
assets/Load3D-ChdKD1rH.js (new) 1.07 kB 🔴 +1.07 kB 🔴 +498 B 🔴 +444 B
assets/nightlyBadges-B8VZ2LQN.js (removed) 1 kB 🟢 -1 kB 🟢 -533 B 🟢 -478 B
assets/nightlyBadges-Di1DLvcn.js (new) 1 kB 🔴 +1 kB 🔴 +534 B 🔴 +471 B
assets/Load3dViewerContent-BzNg_6wb.js (new) 995 B 🔴 +995 B 🔴 +468 B 🔴 +414 B
assets/Load3dViewerContent-DVTGuGvt.js (removed) 995 B 🟢 -995 B 🟢 -467 B 🟢 -412 B
assets/SubscriptionPanelContentWorkspace-CzsU41ON.js (new) 932 B 🔴 +932 B 🔴 +437 B 🔴 +381 B
assets/SubscriptionPanelContentWorkspace-kckX_NGR.js (removed) 932 B 🟢 -932 B 🟢 -438 B 🟢 -383 B
assets/graphHasMissingNodes-BlHWbkBA.js (new) 761 B 🔴 +761 B 🔴 +372 B 🔴 +322 B
assets/graphHasMissingNodes-Drg-2sTk.js (removed) 761 B 🟢 -761 B 🟢 -372 B 🟢 -322 B
assets/changeTracker-C48hhDoU.js (removed) 759 B 🟢 -759 B 🟢 -384 B 🟢 -338 B
assets/changeTracker-Cu3mD72Z.js (new) 759 B 🔴 +759 B 🔴 +385 B 🔴 +338 B
assets/WidgetLegacy-0YIXH134.js (removed) 747 B 🟢 -747 B 🟢 -384 B 🟢 -336 B
assets/WidgetLegacy-BB97Z-MA.js (new) 747 B 🔴 +747 B 🔴 +385 B 🔴 +335 B
assets/WidgetInputNumber-BMlbJFSe.js (new) 469 B 🔴 +469 B 🔴 +263 B 🔴 +228 B
assets/WidgetInputNumber-ggak8qZa.js (removed) 469 B 🟢 -469 B 🟢 -263 B 🟢 -228 B
assets/i18n-CcNGzwbS.js (removed) 199 B 🟢 -199 B 🟢 -159 B 🟢 -140 B
assets/i18n-CeP1anEP.js (new) 199 B 🔴 +199 B 🔴 +161 B 🔴 +139 B
assets/AnimationControls-BuN89WBW.js 4.61 kB 4.61 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/auto-BTnZwrs2.js 1.7 kB 1.7 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/BaseViewTemplate-sbUO3_hD.js 1.78 kB 1.78 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/comfy-logo-single-DhnNuB-i.js 198 B 198 B ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/ComfyOrgHeader-CKD9vwNi.js 910 B 910 B ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-BIWmUVEc.js 16.9 kB 16.9 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-BOt38VCw.js 16.1 kB 16.1 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-C0NcxRH3.js 18.8 kB 18.8 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-C2xuXGb5.js 17.5 kB 17.5 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-CmiKIQwc.js 16.1 kB 16.1 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-DMwP8S5e.js 16.7 kB 16.7 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-DwBt3HhT.js 15.9 kB 15.9 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-JX559A2n.js 15.1 kB 15.1 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-n_2KJWcD.js 15.2 kB 15.2 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-OO-8nFm9.js 16.1 kB 16.1 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-wq2Y-YKn.js 17.5 kB 17.5 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/constants-BIWjk1ar.js 579 B 579 B ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-BA2V8d-C.js 139 kB 139 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-BccLgA47.js 168 kB 168 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-C-ZfUqj4.js 194 kB 194 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-C1DJg0HU.js 123 kB 123 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-CjFsXT_Y.js 160 kB 160 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-CNIsXuKE.js 147 kB 147 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-CqcSAz7B.js 144 kB 144 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-DDxNg4P1.js 174 kB 174 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-DQHvUyvV.js 139 kB 139 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-Dr-RBucI.js 122 kB 122 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-Gap3UP2p.js 142 kB 142 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/Media3DTop-D3QRJ6eZ.js 1.82 kB 1.82 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/MediaAudioTop-vXuump5i.js 1.43 kB 1.43 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/MediaImageTop-XsW6Reb5.js 1.75 kB 1.75 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/MediaOtherTop-Crhpst_D.js 1.02 kB 1.02 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/MediaTextTop-DLkC3BlW.js 1.01 kB 1.01 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/MediaVideoTop-Dxvkupp8.js 2.77 kB 2.77 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-2U4KtUml.js 360 kB 360 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-5rcOJVex.js 391 kB 391 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-BTBSP0IQ.js 480 kB 480 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-BZEpP7w6.js 383 kB 383 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-C-Tw-7I_.js 407 kB 407 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-C76rbmLh.js 441 kB 441 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-CxxD1ymF.js 395 kB 395 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-DciNsuYe.js 392 kB 392 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-G7wcMpUD.js 356 kB 356 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-nGdg-hIO.js 388 kB 388 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-xiPSrG6S.js 440 kB 440 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/OBJLoader2WorkerModule-DTMpvldF.js 109 kB 109 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/Popover-BFioAN8e.js 3.65 kB 3.65 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/previousFullPath-DeIFnh1k.js 665 B 665 B ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/rolldown-runtime-DLICfi3-.js 1.97 kB 1.97 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/SelectValue-bibvA8E3.js 8.94 kB 8.94 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/Slider-DdhXSGsd.js 3.52 kB 3.52 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/src-1EXhnvTZ.js 251 B 251 B ⚪ 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/VideoPlayOverlay-vVfixIxQ.js 1.35 kB 1.35 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/widget-DTUjK0ZE.js 445 B 445 B ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetBoundingBox-BPh1lTyF.js 283 B 283 B ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetBoundingBox-xcXafMSV.js 3.19 kB 3.19 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetChart-tDqjft7_.js 2.21 kB 2.21 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetColorPicker-cmpN9z2D.js 2.9 kB 2.9 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetGalleria-BaSczjNZ.js 3.61 kB 3.61 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetImageCompare-BV2GfN2g.js 3.1 kB 3.1 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetInputText-Cu2WRFHM.js 1.86 kB 1.86 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetLayoutField-1Fl4ror4.js 1.95 kB 1.95 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetMarkdown-DbQVdecX.js 2.93 kB 2.93 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/widgetPropFilter-COB1L9Pj.js 1.1 kB 1.1 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetTextarea-GA6E8XqZ.js 3.96 kB 3.96 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetToggleSwitch-VrAZFEEv.js 6.8 kB 6.8 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/widgetTypes-BtuQMzwn.js 393 B 393 B ⚪ 0 B ⚪ 0 B ⚪ 0 B

Status: 51 added / 51 removed

- Add resolveEssentialsDisplayName to NodeLibrarySidebarTabV2's fillNodeInfo
- Update EssentialNodeCard to use node.label (set by fillNodeInfo)
- Remove E2E tests (CI backend lacks essentials_category, V1 fixture
  incompatible with V2 default)

Amp-Thread-ID: https://ampcode.com/threads/T-019c835a-3490-7018-809e-a734bd0ddc67
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

🤖 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/components/sidebar/tabs/NodeLibrarySidebarTabV2.vue`:
- Line 115: The essentials display-name mapping is being applied globally
because fillNodeInfo is used by all tabs; restrict it to the Essentials tab by
adding an explicit flag (e.g., isEssentialsTab) to fillNodeInfo's signature and
call sites in NodeLibrarySidebarTabV2 so mapping via
resolveEssentialsDisplayName only runs when isEssentialsTab is true; also ensure
fillNodeInfo safely falls back if node.data is missing (use a default label or
node.name) to avoid runtime errors when resolveEssentialsDisplayName expects
node.data (apply the same guarded change where similar logic exists around the
lines referencing resolveEssentialsDisplayName).

@christian-byrne christian-byrne marked this pull request as ready for review February 22, 2026 05:45
@christian-byrne christian-byrne requested a review from a team as a code owner February 22, 2026 05:45
@christian-byrne christian-byrne merged commit 54f1393 into main Feb 22, 2026
29 checks passed
@christian-byrne christian-byrne deleted the toolkit/add-display-name-mappings-for-essentials-tab branch February 22, 2026 09:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request size:L This PR changes 100-499 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants