Skip to content

Conversation

@christian-byrne
Copy link
Contributor

@christian-byrne christian-byrne commented Jan 30, 2026

Summary

On Comfy Cloud, PrimitiveNode now creates asset widgets (opening Asset Browser) instead of combo widgets for model-eligible inputs like checkpoints, LoRAs, etc.

Changes

  • Add cloud asset widget creation in _createWidget() using isAssetBrowserEligible()
  • Extract shared createAssetWidget factory to src/platform/assets/utils/
  • Refactor useComboWidget.ts to use the shared factory
  • Add _finalizeWidget() helper to DRY up widget sizing/callback setup
  • Pass target node's comfyClass to Asset Browser for correct model filtering
  • Check Comfy.Assets.UseAssetAPI setting (matches useComboWidget.ts behavior)
  • Sync existing target widget value to asset widget

┆Issue is synchronized with this Notion page by Unito

Summary by CodeRabbit

  • Bug Fixes

    • Fixed preload error reporting in Sentry for cloud distribution.
    • Improved download button labeling and prompt text consistency.
    • Enhanced error handling in keybinding and settings management.
  • Documentation

    • Updated Playwright testing guidance for window globals and type assertions.
    • Added TypeScript assertion hierarchy and public API contract documentation.
  • Tests

    • Expanded browser test coverage and infrastructure.
    • Added unit tests for asset sidebar and logo overlay components.
    • Validated store testing setup with Pinia.
  • Chores

    • Updated GitHub Actions workflow versions and action pins.
    • Bumped dependency versions (@playwright/test, @vueuse packages).
    • Internal refactoring of composables and test utilities for improved maintainability.

christian-byrne and others added 4 commits January 29, 2026 18:02
On Comfy Cloud, PrimitiveNode now creates asset widgets (opening Asset Browser)
instead of combo widgets for model-eligible inputs like checkpoints, LoRAs, etc.

- Add cloud asset widget creation in #createWidget() using isAssetBrowserEligible()
- Add #createAssetWidget() helper following useComboWidget.ts pattern
- Add #finalizeWidget() helper to DRY up widget sizing/callback setup
- Pass target node's comfyClass to Asset Browser for correct model filtering

Amp-Thread-ID: https://ampcode.com/threads/T-019c0839-bbdc-754a-9d3b-151417058ded
Co-authored-by: Amp <amp@ampcode.com>
- Extract createAssetWidget factory to src/platform/assets/utils/
- Refactor useComboWidget.ts to use the shared factory
- Simplify PrimitiveNode to use shared factory
- Convert JS # privates to underscore convention
- Add knip ignore for isAssetWidget (litegraph public API)

Amp-Thread-ID: https://ampcode.com/threads/T-019c0839-bbdc-754a-9d3b-151417058ded
Co-authored-by: Amp <amp@ampcode.com>
- Add Comfy.Assets.UseAssetAPI toggle check (matches useComboWidget behavior)
- Sync existing target widget value to asset widget (fixes placeholder issue)

Amp-Thread-ID: https://ampcode.com/threads/T-019c0839-bbdc-754a-9d3b-151417058ded
Co-authored-by: Amp <amp@ampcode.com>
…odo.md

- Add toast notifications for asset validation errors (surfacing to user)
- Add i18n translations for invalidAsset and invalidFilename errors
- Remove todo.md that was accidentally committed

Amp-Thread-ID: https://ampcode.com/threads/T-019c0c78-3249-72eb-9c45-0db1bf7067d6
Co-authored-by: Amp <amp@ampcode.com>
@christian-byrne christian-byrne requested review from a team as code owners January 30, 2026 02:03
@dosubot dosubot bot added the size:L This PR changes 100-499 lines, ignoring generated files. label Jan 30, 2026
@coderabbitai
Copy link
Contributor

coderabbitai bot commented Jan 30, 2026

Caution

Review failed

The pull request is closed.

📝 Walkthrough

Walkthrough

Reorganizes and expands browser E2E test infrastructure into namespaced ComfyPage helpers, adds many Playwright helper classes and types, tightens TypeScript typings across components/composables, updates numerous GitHub Actions (version bumps and pinning), introduces CI validation tooling, and adjusts docs and package metadata.

Changes

Cohort / File(s) Summary
GitHub Actions & Workflows
.github/workflows/*.yaml, .github/actions/*.yaml, .github/actions/comment-release-links/action.yaml
Bumped many action versions (checkout, setup-python/node, pnpm/action-setup) and replaced some actions with pinned commit SHAs; updated artifact actions and a few container tags; minor workflow text/step alignment.
CI Validation & Repo Config
.pinact.yaml, .coderabbit.yaml, .gitattributes, .yamllint, .oxlintrc.json
Added Pinact config for validating action SHAs, CodeRabbit config, unified gitattributes LF rule, YAML lint spacing rule, and stricter oxlint overrides for browser_tests.
Browser test infra — fixtures, helpers, types
browser_tests/fixtures/*, browser_tests/fixtures/helpers/*, browser_tests/fixtures/components/*, browser_tests/fixtures/constants/*, browser_tests/types/*.d.ts, browser_tests/fixtures/selectors.ts
Introduces many new Playwright page-object helpers and components (CanvasHelper, NodeOperationsHelper, CommandHelper, DebugHelper, DragDropHelper, KeyboardHelper, ClipboardHelper, WorkflowHelper, ToastHelper, SubgraphHelper, ContextMenu, BottomPanel, BaseDialog, etc.), TestIds centralized selectors, default position constants, and test typings/globals.
Browser tests — test files
browser_tests/tests/**/*.spec.ts, browser_tests/globalSetup.ts, browser_tests/globalTeardown.ts
Massive refactor of ~80+ tests to use new ComfyPage namespace surface (settings, workflow, nodeOps, canvasOps, command, clipboard, dragDrop, contextMenu, toast), added test tags/metadata, moved from bracket-style window access to window.app non-null assertions, and adjusted many selectors to TestIds.
Browser test config & tooling
browser_tests/tsconfig.json, .github/workflows/ci-validate-action-pins.yaml, package.json (scripts)
Added vite client types, expanded includes for browser tests, new CI workflow to validate action pins, and package script typecheck:browser.
Source — component typings & small UI changes
src/components/common/*.vue, src/components/dialog/**, src/components/rightSidePanel/**, many src/components/*
Tightened prop/parameter types (replacing many any with specific types/generics), added data-testid attributes in multiple components, removed delete-account flow, added emits contracts for widget updates and proxy-widgets, and minor UI/behavior tweaks (e.g., WidgetImageCrop ratio UI, LogoOverlay component).
Source — new/changed components
src/components/templates/thumbnails/LogoOverlay.vue, related test
Adds new LogoOverlay component with multi-provider logo handling plus unit tests.
Composables & logic
src/composables/**
Added/removed feature-flag getters (userSecretsEnabled, linearToggle override), moved several APIs (selection helpers, frame nodes menu item), removed deleteAccount flows, converted some exports to function declarations, and adjusted selection/subgraph propagation behavior.
Assets, sidebar & asset selection
src/components/sidebar/tabs/*, src/platform/assets/composables/*
Enhanced assets sidebar to support output stacks, added Queue Panel V2 gating, introduced reconcileSelection and output stacks wiring, and updated list/grid view props and emits.
Documentation & scripts
docs/guidance/*, docs/testing/*, AGENTS.md, browser_tests/AGENTS.md, pnpm-workspace.yaml
Expanded Playwright guidance (window globals/type-assertions), TypeScript guidance, updated test commands (pnpm test:browser -> test:browser:local), updated package versions in workspace catalog.
Package/version bump
package.json, pnpm-workspace.yaml
Bumped package version 1.39.0 → 1.39.5, added browser typecheck script, updated playwright and vueuse dependency versions.

Notes for reviewers: focus on browser_tests fixtures/helpers (new public test API surface), tests using those APIs, CI/workflow pinning, LogoOverlay and its tests, and composable feature-flag changes.

Sequence Diagram(s)

mermaid
sequenceDiagram
participant Test Runner
participant ComfyPage (fixture)
participant Helpers (nodeOps/canvasOps/command/dragDrop/clipboard)
participant Browser Page (Playwright)
participant App (window.app)
Test Runner->>ComfyPage: test invokes namespaced helper (e.g., comfyPage.nodeOps.getNodeRefById)
ComfyPage->>Helpers: delegate to specific helper (nodeOps / canvasOps / etc.)
Helpers->>Browser Page: locator actions / page.evaluate / dispatch events
Browser Page->>App: in-page evaluations (window.app!, graph ops)
App-->>Browser Page: state updates / UI changes
Browser Page-->>Helpers: resolve locators / return state
Helpers-->>ComfyPage: return results
ComfyPage-->>Test Runner: test assertions proceed

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~60 minutes

Possibly related PRs

Poem

🐰
I hopped through tests and tidied trails,
Namespaced pulls and helper tales,
Types trimmed fuzzy, selectors set,
Actions pinned — no loose vignette,
A carrot-cheer for cleaner rails.

✨ 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 cloud/model-selection-primitive-v5

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

@github-actions
Copy link

github-actions bot commented Jan 30, 2026

🎨 Storybook Build Status

Build completed successfully!

⏰ Completed at: 01/30/2026, 02:04:39 AM UTC

🔗 Links


🎉 Your Storybook is ready for review!

@github-actions
Copy link

github-actions bot commented Jan 30, 2026

🎭 Playwright Tests: ⚠️ Passed with flaky tests

Results: 499 passed, 0 failed, 4 flaky, 8 skipped (Total: 511)

❌ Failed Tests

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

Bundle Size Report

Summary

  • Raw size: 22.1 MB baseline 22.1 MB — 🔴 +2.03 kB
  • Gzip: 4.61 MB baseline 4.61 MB — 🔴 +424 B
  • Brotli: 3.42 MB baseline 3.42 MB — 🔴 +458 B
  • Bundles: 173 current • 173 baseline • 84 added / 84 removed

Category Glance
Other 🔴 +1.39 kB (7.1 MB) · Data & Services 🔴 +657 B (2.71 MB) · Panels & Settings 🟢 -8 B (471 kB) · Graph Workspace 🟢 -1 B (974 kB) · Vendor & Third-Party ⚪ 0 B (10.7 MB) · Views & Navigation ⚪ 0 B (80.7 kB) · + 5 more

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

Main entry bundles and manifests

File Before After Δ Raw Δ Gzip Δ Brotli
assets/index-7hlGjovs.js (new) 26 kB 🔴 +26 kB 🔴 +7.51 kB 🔴 +6.61 kB
assets/index-B8BoGvvV.js (removed) 26 kB 🟢 -26 kB 🟢 -7.51 kB 🟢 -6.61 kB

Status: 1 added / 1 removed

Graph Workspace — 974 kB (baseline 974 kB) • 🟢 -1 B

Graph editor runtime, canvas, workflow orchestration

File Before After Δ Raw Δ Gzip Δ Brotli
assets/GraphView-OqG5I-Q1.js (removed) 974 kB 🟢 -974 kB 🟢 -197 kB 🟢 -149 kB
assets/GraphView-CZYvLNKa.js (new) 974 kB 🔴 +974 kB 🔴 +197 kB 🔴 +149 kB

Status: 1 added / 1 removed

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

Top-level views, pages, and routed surfaces

File Before After Δ Raw Δ Gzip Δ Brotli
assets/CloudSurveyView-C5yeTJsB.js (new) 17.1 kB 🔴 +17.1 kB 🔴 +3.6 kB 🔴 +3.05 kB
assets/CloudSurveyView-DLbX7w_v.js (removed) 17.1 kB 🟢 -17.1 kB 🟢 -3.6 kB 🟢 -3.05 kB
assets/CloudLoginView-BPP6Razq.js (removed) 11.8 kB 🟢 -11.8 kB 🟢 -3.09 kB 🟢 -2.71 kB
assets/CloudLoginView-snQfhk_k.js (new) 11.8 kB 🔴 +11.8 kB 🔴 +3.09 kB 🔴 +2.71 kB
assets/UserCheckView-BTON-BWk.js (new) 10.5 kB 🔴 +10.5 kB 🔴 +2.45 kB 🔴 +2.13 kB
assets/UserCheckView-DceH8OCs.js (removed) 10.5 kB 🟢 -10.5 kB 🟢 -2.44 kB 🟢 -2.13 kB
assets/CloudLayoutView-BJtba192.js (removed) 8.54 kB 🟢 -8.54 kB 🟢 -2.24 kB 🟢 -1.96 kB
assets/CloudLayoutView-bxIWAR3G.js (new) 8.54 kB 🔴 +8.54 kB 🔴 +2.24 kB 🔴 +1.95 kB
assets/CloudSignupView-BasV8LH9.js (new) 8.18 kB 🔴 +8.18 kB 🔴 +2.33 kB 🔴 +2.02 kB
assets/CloudSignupView-yq1ESUXW.js (removed) 8.18 kB 🟢 -8.18 kB 🟢 -2.33 kB 🟢 -2.02 kB
assets/CloudForgotPasswordView-B1aE4j0o.js (new) 6.26 kB 🔴 +6.26 kB 🔴 +1.92 kB 🔴 +1.69 kB
assets/CloudForgotPasswordView-BFOnmsSp.js (removed) 6.26 kB 🟢 -6.26 kB 🟢 -1.93 kB 🟢 -1.69 kB
assets/UserSelectView-BVXiNB63.js (removed) 5.28 kB 🟢 -5.28 kB 🟢 -1.76 kB 🟢 -1.58 kB
assets/UserSelectView-CfxUnwha.js (new) 5.28 kB 🔴 +5.28 kB 🔴 +1.76 kB 🔴 +1.57 kB
assets/CloudSubscriptionRedirectView-C_RhR6Fq.js (removed) 5.27 kB 🟢 -5.27 kB 🟢 -1.73 kB 🟢 -1.55 kB
assets/CloudSubscriptionRedirectView-iR-2xwq4.js (new) 5.27 kB 🔴 +5.27 kB 🔴 +1.74 kB 🔴 +1.54 kB
assets/CloudAuthTimeoutView-BWKjYVGF.js (removed) 5.24 kB 🟢 -5.24 kB 🟢 -1.71 kB 🟢 -1.48 kB
assets/CloudAuthTimeoutView-CvfMP4m1.js (new) 5.24 kB 🔴 +5.24 kB 🔴 +1.7 kB 🔴 +1.49 kB
assets/CloudSorryContactSupportView-n5f-fGMz.js 1.97 kB 1.97 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/layout-V93lMUpe.js 500 B 500 B ⚪ 0 B ⚪ 0 B ⚪ 0 B

Status: 9 added / 9 removed

Panels & Settings — 471 kB (baseline 471 kB) • 🟢 -8 B

Configuration panels, inspectors, and settings screens

File Before After Δ Raw Δ Gzip Δ Brotli
assets/WorkspacePanel-cSBGDuKt.js (removed) 29.8 kB 🟢 -29.8 kB 🟢 -5.89 kB 🟢 -5.14 kB
assets/WorkspacePanel-Iy0i8kVL.js (new) 29.8 kB 🔴 +29.8 kB 🔴 +5.89 kB 🔴 +5.13 kB
assets/LegacyCreditsPanel-BoMPQ5gv.js (new) 23.8 kB 🔴 +23.8 kB 🔴 +5.94 kB 🔴 +5.22 kB
assets/LegacyCreditsPanel-CurmF-C8.js (removed) 23.8 kB 🟢 -23.8 kB 🟢 -5.94 kB 🟢 -5.22 kB
assets/SubscriptionPanel-BfT4O7Pw.js (removed) 21 kB 🟢 -21 kB 🟢 -5.04 kB 🟢 -4.44 kB
assets/SubscriptionPanel-COCzsH2W.js (new) 21 kB 🔴 +21 kB 🔴 +5.04 kB 🔴 +4.45 kB
assets/KeybindingPanel-C6QWM5xk.js (removed) 14.3 kB 🟢 -14.3 kB 🟢 -3.74 kB 🟢 -3.32 kB
assets/KeybindingPanel-DfvHdrrE.js (new) 14.3 kB 🔴 +14.3 kB 🔴 +3.74 kB 🔴 +3.33 kB
assets/AboutPanel-CeDSEULG.js (new) 10.8 kB 🔴 +10.8 kB 🔴 +2.68 kB 🔴 +2.42 kB
assets/AboutPanel-LhHAHRfK.js (removed) 10.8 kB 🟢 -10.8 kB 🟢 -2.68 kB 🟢 -2.43 kB
assets/ExtensionPanel-CXDUXQkw.js (removed) 10.2 kB 🟢 -10.2 kB 🟢 -2.71 kB 🟢 -2.4 kB
assets/ExtensionPanel-lz_BsEL4.js (new) 10.2 kB 🔴 +10.2 kB 🔴 +2.71 kB 🔴 +2.4 kB
assets/ServerConfigPanel-C-bOT2GK.js (new) 7.23 kB 🔴 +7.23 kB 🔴 +2.17 kB 🔴 +1.94 kB
assets/ServerConfigPanel-C7eJPLUf.js (removed) 7.23 kB 🟢 -7.23 kB 🟢 -2.17 kB 🟢 -1.94 kB
assets/UserPanel-BQBZVJe3.js (new) 6.58 kB 🔴 +6.58 kB 🔴 +1.9 kB 🔴 +1.68 kB
assets/UserPanel-ZuECulXk.js (removed) 6.58 kB 🟢 -6.58 kB 🟢 -1.9 kB 🟢 -1.67 kB
assets/refreshRemoteConfig-9IE36XS8.js (removed) 1.31 kB 🟢 -1.31 kB 🟢 -574 B 🟢 -499 B
assets/refreshRemoteConfig-BPqJzB5n.js (new) 1.31 kB 🔴 +1.31 kB 🔴 +572 B 🔴 +497 B
assets/config-CY8nFoyq.js (removed) 1.16 kB 🟢 -1.16 kB 🟢 -611 B 🟢 -543 B
assets/config-CpFlz5AZ.js (new) 1.15 kB 🔴 +1.15 kB 🔴 +604 B 🔴 +532 B
assets/cloudRemoteConfig-CZEw3NCY.js (removed) 1.11 kB 🟢 -1.11 kB 🟢 -512 B 🟢 -450 B
assets/cloudRemoteConfig-DQSc5SXf.js (new) 1.11 kB 🔴 +1.11 kB 🔴 +511 B 🔴 +446 B
assets/refreshRemoteConfig-4adiIRNm.js (new) 169 B 🔴 +169 B 🔴 +108 B 🔴 +106 B
assets/refreshRemoteConfig-ByZfZbWo.js (removed) 169 B 🟢 -169 B 🟢 -108 B 🟢 -102 B
assets/remoteConfig-B0mlVvm7.js 788 B 788 B ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-2UNjEj6k.js 32.9 kB 32.9 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-B2OMGvh7.js 31.2 kB 31.2 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-BcujOfpn.js 29.6 kB 29.6 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-BI09_t23.js 29.4 kB 29.4 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-BKamuseh.js 25.8 kB 25.8 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-BlTun9tZ.js 26.4 kB 26.4 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-CZ62uO3e.js 30.2 kB 30.2 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-DaK-NByz.js 35.2 kB 35.2 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-DaS3cSXp.js 39.4 kB 39.4 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-DWbMuaAa.js 32 kB 32 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-S7pA60Hj.js 30.4 kB 30.4 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B

Status: 12 added / 12 removed

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

Authentication, profile, and account management bundles

File Before After Δ Raw Δ Gzip Δ Brotli
assets/auth-BKE521rz.js (new) 3.54 kB 🔴 +3.54 kB 🔴 +1.24 kB 🔴 +1.05 kB
assets/auth-DXIjklI5.js (removed) 3.54 kB 🟢 -3.54 kB 🟢 -1.24 kB 🟢 -1.07 kB
assets/firebaseAuthStore-BAGxD41o.js (removed) 217 B 🟢 -217 B 🟢 -138 B 🟢 -117 B
assets/firebaseAuthStore-BSYbb_zX.js (new) 217 B 🔴 +217 B 🔴 +138 B 🔴 +120 B
assets/auth-CUd7ZyQX.js (new) 178 B 🔴 +178 B 🔴 +142 B 🔴 +130 B
assets/auth-xtrHtn6I.js (removed) 178 B 🟢 -178 B 🟢 -142 B 🟢 -144 B

Status: 3 added / 3 removed

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

Modals, dialogs, drawers, and in-app editors

File Before After Δ Raw Δ Gzip Δ Brotli
assets/useSubscriptionDialog-Chzg7_Ef.js (removed) 2.71 kB 🟢 -2.71 kB 🟢 -1.29 kB 🟢 -1.13 kB
assets/useSubscriptionDialog-Cjsi50dm.js (new) 2.71 kB 🔴 +2.71 kB 🔴 +1.29 kB 🔴 +1.14 kB
assets/useSubscriptionDialog-B7WaTQMA.js (removed) 179 B 🟢 -179 B 🟢 -110 B 🟢 -95 B
assets/useSubscriptionDialog-DxOqgAtN.js (new) 179 B 🔴 +179 B 🔴 +110 B 🔴 +97 B

Status: 2 added / 2 removed

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

Reusable component library chunks

File Before After Δ Raw Δ Gzip Δ Brotli
assets/ComfyQueueButton-MPAF7aDT.js (removed) 9.52 kB 🟢 -9.52 kB 🟢 -2.69 kB 🟢 -2.41 kB
assets/ComfyQueueButton-QCaNhRQI.js (new) 9.52 kB 🔴 +9.52 kB 🔴 +2.68 kB 🔴 +2.41 kB
assets/SubscribeButton-CzS501JY.js (new) 4.63 kB 🔴 +4.63 kB 🔴 +1.57 kB 🔴 +1.39 kB
assets/SubscribeButton-u1adibXa.js (removed) 4.63 kB 🟢 -4.63 kB 🟢 -1.57 kB 🟢 -1.39 kB
assets/CloudBadge-CcCX2htY.js (new) 1.85 kB 🔴 +1.85 kB 🔴 +720 B 🔴 +643 B
assets/CloudBadge-CzKMhVcP.js (removed) 1.85 kB 🟢 -1.85 kB 🟢 -720 B 🟢 -643 B
assets/cloudFeedbackTopbarButton-DccvfEDa.js (removed) 1.24 kB 🟢 -1.24 kB 🟢 -674 B 🟢 -571 B
assets/cloudFeedbackTopbarButton-og11A3mw.js (new) 1.24 kB 🔴 +1.24 kB 🔴 +674 B 🔴 +574 B
assets/ComfyQueueButton-ca_JsvaS.js (new) 181 B 🔴 +181 B 🔴 +118 B 🔴 +121 B
assets/ComfyQueueButton-Wim-ibl_.js (removed) 181 B 🟢 -181 B 🟢 -118 B 🟢 -114 B
assets/Button-Bb_i0j7c.js 3.82 kB 3.82 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/TopbarBadge-qACg_vGT.js 8.36 kB 8.36 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/UserAvatar-D80lITos.js 1.73 kB 1.73 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetButton-DSv9NFvF.js 2.41 kB 2.41 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B

Status: 5 added / 5 removed

Data & Services — 2.71 MB (baseline 2.71 MB) • 🔴 +657 B

Stores, services, APIs, and repositories

File Before After Δ Raw Δ Gzip Δ Brotli
assets/dialogService-DBp9c3cI.js (new) 2.01 MB 🔴 +2.01 MB 🔴 +425 kB 🔴 +324 kB
assets/dialogService-C23fG8O6.js (removed) 2.01 MB 🟢 -2.01 MB 🟢 -424 kB 🟢 -324 kB
assets/api-CWzHVoQl.js (removed) 674 kB 🟢 -674 kB 🟢 -149 kB 🟢 -118 kB
assets/api-D4OSKrN7.js (new) 674 kB 🔴 +674 kB 🔴 +149 kB 🔴 +118 kB
assets/releaseStore-Cej56d4C.js (new) 8.91 kB 🔴 +8.91 kB 🔴 +2.4 kB 🔴 +2.12 kB
assets/releaseStore-Cn4Qv9nd.js (removed) 8.91 kB 🟢 -8.91 kB 🟢 -2.4 kB 🟢 -2.12 kB
assets/keybindingService-BPrGma2p.js (new) 6.78 kB 🔴 +6.78 kB 🔴 +1.74 kB 🔴 +1.52 kB
assets/keybindingService-zmPfrxnY.js (removed) 6.78 kB 🟢 -6.78 kB 🟢 -1.75 kB 🟢 -1.51 kB
assets/bootstrapStore-BWHx6cZW.js (removed) 2.69 kB 🟢 -2.69 kB 🟢 -1.03 kB 🟢 -967 B
assets/bootstrapStore-C4D0v55c.js (new) 2.69 kB 🔴 +2.69 kB 🔴 +1.03 kB 🔴 +969 B
assets/userStore-BePFrLvJ.js (removed) 2.16 kB 🟢 -2.16 kB 🟢 -811 B 🟢 -723 B
assets/userStore-cukMf2F1.js (new) 2.16 kB 🔴 +2.16 kB 🔴 +811 B 🔴 +727 B
assets/audioService-C_4Apm7z.js (new) 2.03 kB 🔴 +2.03 kB 🔴 +930 B 🔴 +817 B
assets/audioService-dRCkKY2j.js (removed) 2.03 kB 🟢 -2.03 kB 🟢 -932 B 🟢 -812 B
assets/releaseStore-bcyVkMT2.js (removed) 140 B 🟢 -140 B 🟢 -106 B 🟢 -106 B
assets/releaseStore-D7TnBN31.js (new) 140 B 🔴 +140 B 🔴 +106 B 🔴 +112 B
assets/serverConfigStore-DOoqLe5c.js 2.64 kB 2.64 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B

Status: 8 added / 8 removed

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

Helpers, composables, and utility bundles

File Before After Δ Raw Δ Gzip Δ Brotli
assets/useErrorHandling-Cv0hm5AV.js (removed) 5.21 kB 🟢 -5.21 kB 🟢 -1.53 kB 🟢 -1.35 kB
assets/useErrorHandling-CZZUY01z.js (new) 5.21 kB 🔴 +5.21 kB 🔴 +1.54 kB 🔴 +1.34 kB
assets/useWorkspaceUI-B8oeeVss.js (removed) 3.42 kB 🟢 -3.42 kB 🟢 -976 B 🟢 -834 B
assets/useWorkspaceUI-OPnW5t_B.js (new) 3.42 kB 🔴 +3.42 kB 🔴 +976 B 🔴 +843 B
assets/useSubscriptionActions-Cup6icZ1.js (new) 2.22 kB 🔴 +2.22 kB 🔴 +871 B 🔴 +766 B
assets/useSubscriptionActions-Dy4r1xGb.js (removed) 2.22 kB 🟢 -2.22 kB 🟢 -873 B 🟢 -764 B
assets/subscriptionCheckoutUtil-BxKTV29A.js (removed) 2.03 kB 🟢 -2.03 kB 🟢 -873 B 🟢 -761 B
assets/subscriptionCheckoutUtil-C-JmDFLX.js (new) 2.03 kB 🔴 +2.03 kB 🔴 +872 B 🔴 +771 B
assets/useSubscriptionCredits-BIt8I8s9.js (removed) 1.39 kB 🟢 -1.39 kB 🟢 -595 B 🟢 -517 B
assets/useSubscriptionCredits-DVt7ltRW.js (new) 1.39 kB 🔴 +1.39 kB 🔴 +598 B 🔴 +525 B
assets/audioUtils-ChUXAmP7.js (new) 970 B 🔴 +970 B 🔴 +548 B 🔴 +461 B
assets/audioUtils-DPF2qhnH.js (removed) 970 B 🟢 -970 B 🟢 -548 B 🟢 -458 B
assets/useCurrentUser-BRyZCKR3.js (new) 145 B 🔴 +145 B 🔴 +114 B 🔴 +110 B
assets/useCurrentUser-Cfl6GyhN.js (removed) 145 B 🟢 -145 B 🟢 -114 B 🟢 -98 B
assets/_plugin-vue_export-helper-DuK_Fly3.js 467 B 467 B ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/colorUtil-GMAsfHxw.js 7.2 kB 7.2 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/markdownRendererUtil-ivqHoiOs.js 1.78 kB 1.78 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/tailwindUtil-CJjrIEVR.js 488 B 488 B ⚪ 0 B ⚪ 0 B ⚪ 0 B

Status: 7 added / 7 removed

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

External libraries and shared vendor chunks

File Before After Δ Raw Δ Gzip Δ Brotli
assets/vendor-chart-DHGfk3hn.js 408 kB 408 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-other-jpGqhHNG.js 4.1 MB 4.1 MB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-primevue-4Jj8eU28.js 3.04 MB 3.04 MB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-reka-ui-aCG649nF.js 263 kB 263 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-three-CERwhPwK.js 1.83 MB 1.83 MB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-tiptap-BxrEVL6s.js 650 kB 650 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-vue-Dwii0E-t.js 13.6 kB 13.6 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-xterm-IX6P8SWv.js 398 kB 398 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
Other — 7.1 MB (baseline 7.1 MB) • 🔴 +1.39 kB

Bundles that do not match a named category

File Before After Δ Raw Δ Gzip Δ Brotli
assets/i18n-DZFyAUrh.js (new) 500 kB 🔴 +500 kB 🔴 +96.6 kB 🔴 +71.8 kB
assets/i18n-BlyhGDPa.js (removed) 500 kB 🟢 -500 kB 🟢 -96.5 kB 🟢 -71.8 kB
assets/core-B3rmqaEB.js (new) 181 kB 🔴 +181 kB 🔴 +43.6 kB 🔴 +36.4 kB
assets/core-BZ9tDby6.js (removed) 180 kB 🟢 -180 kB 🟢 -43.3 kB 🟢 -36.2 kB
assets/WidgetSelect-CTvO_aUT.js (removed) 52.2 kB 🟢 -52.2 kB 🟢 -11.5 kB 🟢 -10 kB
assets/WidgetSelect-DmtJoMUR.js (new) 52.2 kB 🔴 +52.2 kB 🔴 +11.5 kB 🔴 +10 kB
assets/Load3DControls-Col4SX6H.js (removed) 35.9 kB 🟢 -35.9 kB 🟢 -5.87 kB 🟢 -5.08 kB
assets/Load3DControls-n93T0Lln.js (new) 35.9 kB 🔴 +35.9 kB 🔴 +5.87 kB 🔴 +5.08 kB
assets/SubscriptionRequiredDialogContent-BX68m4Ix.js (new) 28.7 kB 🔴 +28.7 kB 🔴 +6.79 kB 🔴 +5.93 kB
assets/SubscriptionRequiredDialogContent-DkBMOxyk.js (removed) 28.7 kB 🟢 -28.7 kB 🟢 -6.78 kB 🟢 -5.92 kB
assets/CurrentUserPopoverWorkspace-00GbN1aB.js (removed) 22.2 kB 🟢 -22.2 kB 🟢 -4.99 kB 🟢 -4.42 kB
assets/CurrentUserPopoverWorkspace-BaBGKDBE.js (new) 22.2 kB 🔴 +22.2 kB 🔴 +4.99 kB 🔴 +4.43 kB
assets/Load3D-CIZeyVVm.js (removed) 19.2 kB 🟢 -19.2 kB 🟢 -4.37 kB 🟢 -3.85 kB
assets/Load3D-DIOCxMxe.js (new) 19.2 kB 🔴 +19.2 kB 🔴 +4.37 kB 🔴 +3.84 kB
assets/WidgetInputNumber-DTpL_F1m.js (new) 18.3 kB 🔴 +18.3 kB 🔴 +4.53 kB 🔴 +4.03 kB
assets/WidgetInputNumber-fTgEogks.js (removed) 18.3 kB 🟢 -18.3 kB 🟢 -4.52 kB 🟢 -4.03 kB
assets/WidgetRecordAudio-7qM3Qk2T.js (new) 18.3 kB 🔴 +18.3 kB 🔴 +4.97 kB 🔴 +4.44 kB
assets/WidgetRecordAudio-czXF6Bbu.js (removed) 18.3 kB 🟢 -18.3 kB 🟢 -4.97 kB 🟢 -4.44 kB
assets/SubscriptionPanelContentWorkspace-CJNHr6C9.js (removed) 18.2 kB 🟢 -18.2 kB 🟢 -4.47 kB 🟢 -3.9 kB
assets/SubscriptionPanelContentWorkspace-pQiRJ2RK.js (new) 18.2 kB 🔴 +18.2 kB 🔴 +4.47 kB 🔴 +3.9 kB
assets/WidgetImageCrop-C_n49czp.js (removed) 17.1 kB 🟢 -17.1 kB 🟢 -4.14 kB 🟢 -3.63 kB
assets/WidgetImageCrop-CmsZDLHE.js (new) 17.1 kB 🔴 +17.1 kB 🔴 +4.14 kB 🔴 +3.63 kB
assets/PanelTemplate-BrOxrYMA.js (new) 16.2 kB 🔴 +16.2 kB 🔴 +5.46 kB 🔴 +4.8 kB
assets/PanelTemplate-C75prV7c.js (removed) 16.2 kB 🟢 -16.2 kB 🟢 -5.45 kB 🟢 -4.8 kB
assets/AudioPreviewPlayer-Bo_BtpPC.js (removed) 10.8 kB 🟢 -10.8 kB 🟢 -2.97 kB 🟢 -2.65 kB
assets/AudioPreviewPlayer-CDlZhXLe.js (new) 10.8 kB 🔴 +10.8 kB 🔴 +2.98 kB 🔴 +2.65 kB
assets/InviteMemberDialogContent-CHnZnM-Q.js (removed) 8.36 kB 🟢 -8.36 kB 🟢 -2.5 kB 🟢 -2.17 kB
assets/InviteMemberDialogContent-SQSANCVr.js (new) 8.36 kB 🔴 +8.36 kB 🔴 +2.51 kB 🔴 +2.17 kB
assets/WidgetWithControl-Dli597-o.js (new) 8.07 kB 🔴 +8.07 kB 🔴 +2.68 kB 🔴 +2.41 kB
assets/WidgetWithControl-Duvr_QlF.js (removed) 8.07 kB 🟢 -8.07 kB 🟢 -2.68 kB 🟢 -2.41 kB
assets/CreateWorkspaceDialogContent-BozaRjxS.js (new) 5.93 kB 🔴 +5.93 kB 🔴 +1.93 kB 🔴 +1.68 kB
assets/CreateWorkspaceDialogContent-DdH3l3R9.js (removed) 5.93 kB 🟢 -5.93 kB 🟢 -1.93 kB 🟢 -1.68 kB
assets/EditWorkspaceDialogContent-BJ88g_UY.js (new) 5.7 kB 🔴 +5.7 kB 🔴 +1.88 kB 🔴 +1.65 kB
assets/EditWorkspaceDialogContent-D4-RuFvO.js (removed) 5.7 kB 🟢 -5.7 kB 🟢 -1.88 kB 🟢 -1.64 kB
assets/ValueControlPopover-C6CoiGIw.js (new) 5.17 kB 🔴 +5.17 kB 🔴 +1.69 kB 🔴 +1.5 kB
assets/ValueControlPopover-C7CzlL9n.js (removed) 5.17 kB 🟢 -5.17 kB 🟢 -1.68 kB 🟢 -1.49 kB
assets/DeleteWorkspaceDialogContent-2f9_QSf_.js (new) 4.59 kB 🔴 +4.59 kB 🔴 +1.56 kB 🔴 +1.35 kB
assets/DeleteWorkspaceDialogContent-Cnkxe0_T.js (removed) 4.59 kB 🟢 -4.59 kB 🟢 -1.56 kB 🟢 -1.35 kB
assets/LeaveWorkspaceDialogContent-9YlV2HtF.js (new) 4.41 kB 🔴 +4.41 kB 🔴 +1.51 kB 🔴 +1.3 kB
assets/LeaveWorkspaceDialogContent-CkMRezIY.js (removed) 4.41 kB 🟢 -4.41 kB 🟢 -1.5 kB 🟢 -1.3 kB
assets/RemoveMemberDialogContent-Caf4tL1_.js (removed) 4.38 kB 🟢 -4.38 kB 🟢 -1.45 kB 🟢 -1.27 kB
assets/RemoveMemberDialogContent-CobhhC5V.js (new) 4.38 kB 🔴 +4.38 kB 🔴 +1.45 kB 🔴 +1.27 kB
assets/RevokeInviteDialogContent-Cv6z6cJF.js (removed) 4.29 kB 🟢 -4.29 kB 🟢 -1.47 kB 🟢 -1.29 kB
assets/RevokeInviteDialogContent-rQ7lCGUH.js (new) 4.29 kB 🔴 +4.29 kB 🔴 +1.47 kB 🔴 +1.29 kB
assets/GlobalToast-DfmV2ARq.js (removed) 3.05 kB 🟢 -3.05 kB 🟢 -1.1 kB 🟢 -945 B
assets/GlobalToast-DqhU2xbV.js (new) 3.05 kB 🔴 +3.05 kB 🔴 +1.1 kB 🔴 +942 B
assets/SubscribeToRun-BylxyrMF.js (new) 2.96 kB 🔴 +2.96 kB 🔴 +1.15 kB 🔴 +1.01 kB
assets/SubscribeToRun-D3o893lu.js (removed) 2.96 kB 🟢 -2.96 kB 🟢 -1.16 kB 🟢 -1.01 kB
assets/cloudSessionCookie-7FABp-oW.js (removed) 2.94 kB 🟢 -2.94 kB 🟢 -929 B 🟢 -802 B
assets/cloudSessionCookie-BjwW0QHf.js (new) 2.94 kB 🔴 +2.94 kB 🔴 +939 B 🔴 +808 B
assets/BaseViewTemplate-ClnG7rCK.js (new) 2.42 kB 🔴 +2.42 kB 🔴 +1.04 kB 🔴 +947 B
assets/BaseViewTemplate-Dyiv9Vp_.js (removed) 2.42 kB 🟢 -2.42 kB 🟢 -1.04 kB 🟢 -941 B
assets/CloudRunButtonWrapper-D5vO5YVt.js (removed) 1.79 kB 🟢 -1.79 kB 🟢 -647 B 🟢 -563 B
assets/CloudRunButtonWrapper-DaMrH13u.js (new) 1.79 kB 🔴 +1.79 kB 🔴 +642 B 🔴 +562 B
assets/cloudBadges-Cme8i71Z.js (new) 1.08 kB 🔴 +1.08 kB 🔴 +536 B 🔴 +479 B
assets/cloudBadges-DQsArL7q.js (removed) 1.08 kB 🟢 -1.08 kB 🟢 -538 B 🟢 -498 B
assets/graphHasMissingNodes-CprLdtpo.js (new) 1.06 kB 🔴 +1.06 kB 🔴 +461 B 🔴 +409 B
assets/graphHasMissingNodes-W0T4o18_.js (removed) 1.06 kB 🟢 -1.06 kB 🟢 -462 B 🟢 -418 B
assets/cloudSubscription-Az_B5Pb_.js (removed) 976 B 🟢 -976 B 🟢 -466 B 🟢 -399 B
assets/cloudSubscription-CEW11wtT.js (new) 976 B 🔴 +976 B 🔴 +462 B 🔴 +400 B
assets/nightlyBadges-B6aNYDXi.js (removed) 595 B 🟢 -595 B 🟢 -356 B 🟢 -310 B
assets/nightlyBadges-DNGyLVV1.js (new) 595 B 🔴 +595 B 🔴 +356 B 🔴 +308 B
assets/SubscriptionPanelContentWorkspace-B2CuBS2U.js (new) 266 B 🔴 +266 B 🔴 +136 B 🔴 +119 B
assets/SubscriptionPanelContentWorkspace-Bk-TWVyy.js (removed) 266 B 🟢 -266 B 🟢 -136 B 🟢 -125 B
assets/i18n-byadgsvD.js (removed) 188 B 🟢 -188 B 🟢 -151 B 🟢 -129 B
assets/i18n-DXTr3RTS.js (new) 188 B 🔴 +188 B 🔴 +152 B 🔴 +132 B
assets/WidgetInputNumber-DySEGYac.js (new) 186 B 🔴 +186 B 🔴 +119 B 🔴 +123 B
assets/WidgetInputNumber-N-9uf4J6.js (removed) 186 B 🟢 -186 B 🟢 -119 B 🟢 -115 B
assets/WidgetLegacy-B1He9ARl.js (new) 164 B 🔴 +164 B 🔴 +125 B 🔴 +113 B
assets/WidgetLegacy-TZAEbz-e.js (removed) 164 B 🟢 -164 B 🟢 -125 B 🟢 -111 B
assets/Load3D-Bxnln7SX.js (removed) 131 B 🟢 -131 B 🟢 -107 B 🟢 -107 B
assets/Load3D-D0LHh311.js (new) 131 B 🔴 +131 B 🔴 +107 B 🔴 +105 B
assets/auto-DWs2ctGL.js 1.73 kB 1.73 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-BEw5ErI4.js 18.5 kB 18.5 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-BGeHkplA.js 17.9 kB 17.9 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-BV0l36Iz.js 17.2 kB 17.2 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-C_Y3D6Cn.js 17.8 kB 17.8 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-C6piRza5.js 19.3 kB 19.3 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-Cf8Zq1td.js 18.8 kB 18.8 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-CiziP3Xs.js 18 kB 18 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-D1595tOr.js 19.3 kB 19.3 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-DXauvccL.js 20.6 kB 20.6 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-P5QCEfZc.js 18 kB 18 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-WbYP_D61.js 17 kB 17 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/LazyImage-DHwPdKGO.js 14.1 kB 14.1 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-BHtk4Fg_.js 174 kB 174 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-BMSlgLcp.js 155 kB 155 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-BQCWi9e4.js 112 kB 112 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-CJicmTR7.js 113 kB 113 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-CNOkBy-u.js 126 kB 126 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-CySb1R5_.js 151 kB 151 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-D0g10ZKf.js 131 kB 131 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-DMUPIFMF.js 133 kB 133 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-DpsGU4si.js 126 kB 126 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-Dz6IPJXM.js 144 kB 144 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-lrEzMywH.js 128 kB 128 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/Media3DTop-DUmUhXD6.js 2.38 kB 2.38 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/MediaAudioTop-CD66_Mw_.js 2 kB 2 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/MediaImageTop-Bqe7yvm_.js 2.34 kB 2.34 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/MediaVideoTop-De3MzVmp.js 2.82 kB 2.82 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/mixpanel.module-CC2-PIpB.js 143 B 143 B ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-A7pvB7zM.js 370 kB 370 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-BIVjUijC.js 345 kB 345 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-Chkn0HaI.js 343 kB 343 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-CK_6GHao.js 452 kB 452 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-CToVAwnT.js 373 kB 373 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-DDabdWgx.js 417 kB 417 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-DgvJyE3d.js 386 kB 386 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-DjxaeFt_.js 416 kB 416 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-DslnWEGg.js 377 kB 377 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-EPAM3kwk.js 373 kB 373 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-NrulhNyH.js 366 kB 366 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/OBJLoader2WorkerModule-DTMpvldF.js 109 kB 109 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/previousFullPath-CmezY7As.js 838 B 838 B ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/rolldown-runtime-cVp-94Rc.js 1.96 kB 1.96 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/Slider-D4lsf6Ob.js 4.21 kB 4.21 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/widget-BJiJuR5i.js 518 B 518 B ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetBoundingBox-CUtab2CB.js 4.71 kB 4.71 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetBoundingBox-D79nBMxa.js 186 B 186 B ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetChart-CiXfBVBH.js 2.79 kB 2.79 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetColorPicker-BxNqMlFv.js 3.71 kB 3.71 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetGalleria-DDD96zwa.js 4.57 kB 4.57 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetImageCompare-A6pZMGtc.js 3.79 kB 3.79 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetInputText-DSMUKRnt.js 2.58 kB 2.58 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetLayoutField-MDImyvc3.js 2.7 kB 2.7 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetMarkdown-a8bZhyc5.js 3.49 kB 3.49 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/widgetPropFilter-ERx8czR8.js 1.31 kB 1.31 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetTextarea-CV3BoahN.js 3.87 kB 3.87 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetToggleSwitch-ZdaYkxkD.js 3.26 kB 3.26 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/widgetTypes-KPj-zM0O.js 573 B 573 B ⚪ 0 B ⚪ 0 B ⚪ 0 B

Status: 36 added / 36 removed

interface CreateAssetWidgetParams {
/** The node to add the widget to */
node: LGraphNode
/** The widget name */
Copy link
Contributor

Choose a reason for hiding this comment

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

Nit: Are these comments adding context?

Copy link
Contributor Author

@christian-byrne christian-byrne Jan 30, 2026

Choose a reason for hiding this comment

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

The first one probably yes. In general we should trim down these comments unless they are adding critical context that is not expressed in the code.


export { isComboWidget, isAssetWidget } from './widgets/widgetMap'
export { isComboWidget } from './widgets/widgetMap'
/** @knipIgnoreUnusedButUsedByCustomNodes */
Copy link
Contributor

Choose a reason for hiding this comment

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

Really?

Copy link
Contributor Author

@christian-byrne christian-byrne Jan 30, 2026

Choose a reason for hiding this comment

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

Almost definitely not, how did it end up like this.

Confirmed no: https://cs.comfy.org/search?q=context:global+isAssetWidget&patternType=keyword&sm=0 (although the asset widgets APIs are being used generally).

We can remove the export, changes to knip config, and the knip ignore.

/** Type guard: Narrow **from {@link IBaseWidget}** to {@link IAssetWidget}. */
/**
* Type guard: Narrow **from {@link IBaseWidget}** to {@link IAssetWidget}.
* @knipIgnoreUnusedButUsedByCustomNodes
Copy link
Contributor

Choose a reason for hiding this comment

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

🤨

_widgetName: string,
inputData: InputSpec
): IBaseWidget {
const defaultValue = inputData[1]?.default as string | undefined
Copy link
Contributor

Choose a reason for hiding this comment

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

Does this work?

Suggested change
const defaultValue = inputData[1]?.default as string | undefined
const defaultValue: string | undefined = inputData[1]?.default

DrJKL
DrJKL previously approved these changes Jan 30, 2026
@DrJKL DrJKL assigned christian-byrne and unassigned DrJKL Jan 30, 2026
- Merge latest main to resolve conflicts
- Fix asset browser filtering: pass target input name (e.g.,
'ckpt_name') instead of PrimitiveNode's widget name ('value')

**Changes:**
- Add `inputNameForBrowser` param to `createAssetWidget`
- Pass `targetInputName` from `PrimitiveNode._createAssetWidget`

┆Issue is synchronized with this [Notion
page](https://www.notion.so/PR-8596-fix-merge-main-and-pass-target-input-name-to-asset-browser-2fd6d73d36508112bb17cf5d3fe54687)
by [Unito](https://www.unito.io)

---------

Co-authored-by: Subagent 5 <subagent@example.com>
Co-authored-by: Amp <amp@ampcode.com>
Co-authored-by: GitHub Action <action@github.com>
Co-authored-by: guill <jacob.e.segal@gmail.com>
Co-authored-by: Jin Yi <jin12cc@gmail.com>
Co-authored-by: Alexander Brown <drjkl@comfy.org>
Co-authored-by: AustinMroz <austin@comfy.org>
Co-authored-by: Comfy Org PR Bot <snomiao+comfy-pr@gmail.com>
Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: Johnpaul Chiwetelu <49923152+Myestery@users.noreply.github.com>
Co-authored-by: Rizumu Ayaka <rizumu@ayaka.moe>
Co-authored-by: Kelly Yang <124ykl@gmail.com>
Co-authored-by: sno <snomiao@gmail.com>
Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
Co-authored-by: Benjamin Lu <benjaminlu1107@gmail.com>
Co-authored-by: Terry Jia <terryjia88@gmail.com>
Co-authored-by: Luke Mino-Altherr <luke@comfy.org>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
@christian-byrne
Copy link
Contributor Author

Superseded by new PR with clean rebased history

christian-byrne added a commit that referenced this pull request Feb 8, 2026
…on (#8598)

Add cloud asset widget creation in `_createWidget()` using
`isAssetBrowserEligible()`
- Extract shared `createAssetWidget` factory to
`src/platform/assets/utils/`
- Refactor `useComboWidget.ts` to use the shared factory
- Add `_finalizeWidget()` helper to DRY up widget sizing/callback setup
- Pass target node's `comfyClass` and input name to Asset Browser for
correct model filtering
- Check `Comfy.Assets.UseAssetAPI` setting (matches `useComboWidget.ts`
behavior)
- Sync existing target widget value to asset widget
- Add toast notifications for asset validation errors
- Add i18n translations for invalidAsset and invalidFilename errors

Supersedes #8461 (clean rebase, no merge commits)

┆Issue is synchronized with this [Notion
page](https://www.notion.so/PR-8598-feat-cloud-add-asset-widget-support-for-PrimitiveNode-model-selection-2fd6d73d365081a8afa7c2e91762f11c)
by [Unito](https://www.unito.io)


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

## Summary by CodeRabbit

* **New Features**
* Introduced asset widget integration for cloud-based model selection,
enabling users to browse and select assets through an improved
interface.
* Added comprehensive asset validation with enhanced error messages for
invalid assets and filenames.

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

---------

Co-authored-by: Amp <amp@ampcode.com>
Co-authored-by: Subagent 5 <subagent@example.com>
Co-authored-by: GitHub Action <action@github.com>
Co-authored-by: guill <jacob.e.segal@gmail.com>
Co-authored-by: Jin Yi <jin12cc@gmail.com>
Co-authored-by: Alexander Brown <drjkl@comfy.org>
Co-authored-by: AustinMroz <austin@comfy.org>
Co-authored-by: Comfy Org PR Bot <snomiao+comfy-pr@gmail.com>
Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: Johnpaul Chiwetelu <49923152+Myestery@users.noreply.github.com>
Co-authored-by: Rizumu Ayaka <rizumu@ayaka.moe>
Co-authored-by: Kelly Yang <124ykl@gmail.com>
Co-authored-by: sno <snomiao@gmail.com>
Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
Co-authored-by: Benjamin Lu <benjaminlu1107@gmail.com>
Co-authored-by: Terry Jia <terryjia88@gmail.com>
Co-authored-by: Luke Mino-Altherr <luke@comfy.org>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:L This PR changes 100-499 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants