Skip to content

Conversation

@jtydhr88
Copy link
Collaborator

@jtydhr88 jtydhr88 commented Feb 10, 2026

Summary

Add mesh_upload and upload_subfolder to combo input schema so WidgetSelect detects mesh uploads generically instead of hardcoding node type checks. Inject these flags in load3dLazy.ts so they are available before THREE.js loads.

Also unify SUPPORTED_EXTENSIONS_ACCEPT across load3d and dropdown, pass uploadSubfolder prop through to WidgetSelectDropdown for correct upload path, and update error message to list all supported extensions.

replacement for #7975

(We should include thumbnail but not yet, will do it later)

Screenshots (if applicable)

2026-02-09.21-10-25.mp4

┆Issue is synchronized with this Notion page by Unito

@jtydhr88 jtydhr88 requested review from a team as code owners February 10, 2026 02:11
@dosubot dosubot bot added the size:M This PR changes 30-99 lines, ignoring generated files. label Feb 10, 2026
@github-actions
Copy link

github-actions bot commented Feb 10, 2026

Playwright: ✅ 525 passed, 0 failed · 1 flaky

📊 Browser Reports
  • chromium: View Report (✅ 513 / ❌ 0 / ⚠️ 1 / ⏭️ 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 10, 2026

🎨 Storybook Build Status

Build completed successfully!

⏰ Completed at: 02/10/2026, 07:01:40 PM UTC

🔗 Links


🎉 Your Storybook is ready for review!

@jtydhr88 jtydhr88 mentioned this pull request Feb 10, 2026
@coderabbitai
Copy link
Contributor

coderabbitai bot commented Feb 10, 2026

📝 Walkthrough

Walkthrough

The changes extend 3D model upload functionality by introducing mesh asset support with subfolder organization. They centralize supported file extensions into a reusable constant, add mesh-specific metadata to input specs, expand widget components to handle mesh uploads and subfolders, and update type definitions and schemas accordingly.

Changes

Cohort / File(s) Summary
Constants & Type Definitions
src/extensions/core/load3d/constants.ts, src/types/widgetTypes.ts, src/schemas/nodeDefSchema.ts
Added SUPPORTED_EXTENSIONS_ACCEPT constant (comma-joined string), expanded AssetKind type to include 'mesh', and added mesh_upload and upload_subfolder fields to zComboInputOptions schema.
3D Loading Core
src/composables/useLoad3d.ts, src/extensions/core/load3d.ts, src/extensions/core/load3dLazy.ts, src/composables/useLoad3dDrag.test.ts
Added detection and handling of "[output]" suffix in model paths, centralized extension list usage, injected mesh_upload and upload_subfolder metadata into model_file input specs, and replaced hard-coded extension arrays with SUPPORTED_EXTENSIONS constant in tests.
Widget Components
src/renderer/extensions/vueNodes/widgets/components/WidgetSelect.vue, src/renderer/extensions/vueNodes/widgets/components/WidgetSelect.test.ts, src/renderer/extensions/vueNodes/widgets/components/WidgetSelectDropdown.vue
Extended WidgetSelect to parse mesh_upload and upload_subfolder from specs, compute uploadSubfolder, and pass it to child components. WidgetSelectDropdown now accepts uploadSubfolder prop, handles mesh asset types, supports mesh file type acceptance, and includes subfolder in file upload requests. Added corresponding test cases for mesh upload behavior.
Localization
src/locales/en/main.json
Updated unsupported 3D file types message to include newly supported formats (.ply, .spz, .splat, .ksplat).

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Poem

🐰 Hop, hop, meshes flow,
Subfolders organized just so,
Extensions centralized with care,
New asset types now everywhere!

🚥 Pre-merge checks | ✅ 2 | ❌ 1
❌ Failed checks (1 inconclusive)
Check name Status Explanation Resolution
Title check ❓ Inconclusive The title is vague and lacks descriptive detail about what feature is being added—'Feat/3d dropdown' doesn't clearly convey the specific functionality changes. Consider a more descriptive title like 'Add generic mesh upload support via combo schema flags' or similar to clarify the primary change.
✅ Passed checks (2 passed)
Check name Status Explanation
Description check ✅ Passed The description provides clear context about mesh_upload/upload_subfolder additions, unifying extensions, and passing props through, which aligns with the PR's actual changes across multiple files.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ 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 feat/3d-dropdown

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

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

@github-actions
Copy link

github-actions bot commented Feb 10, 2026

Bundle Size Report

Summary

  • Raw size: 19.8 MB baseline 19.8 MB — 🔴 +1.8 kB
  • Gzip: 4.23 MB baseline 4.23 MB — 🔴 +1.01 kB
  • Brotli: 3.28 MB baseline 3.28 MB — 🔴 +733 B
  • Bundles: 235 current • 234 baseline • 194 added / 193 removed

Category Glance
Other 🔴 +1.47 kB (7.21 MB) · Utilities & Hooks 🔴 +209 B (237 kB) · Data & Services 🔴 +118 B (2.12 MB) · Vendor & Third-Party ⚪ 0 B (8.77 MB) · Graph Workspace ⚪ 0 B (855 kB) · Panels & Settings ⚪ 0 B (451 kB) · + 5 more

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

Main entry bundles and manifests

File Before After Δ Raw Δ Gzip Δ Brotli
assets/index-494yc4op.js (new) 22.2 kB 🔴 +22.2 kB 🔴 +7.2 kB 🔴 +6.26 kB
assets/index-D9obeMgT.js (removed) 22.2 kB 🟢 -22.2 kB 🟢 -7.2 kB 🟢 -6.24 kB

Status: 1 added / 1 removed

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

Graph editor runtime, canvas, workflow orchestration

File Before After Δ Raw Δ Gzip Δ Brotli
assets/GraphView-_xzl7atH.js (removed) 855 kB 🟢 -855 kB 🟢 -184 kB 🟢 -140 kB
assets/GraphView-DsRb3SrD.js (new) 855 kB 🔴 +855 kB 🔴 +184 kB 🔴 +140 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-CK2pw-2h.js (removed) 15.4 kB 🟢 -15.4 kB 🟢 -3.3 kB 🟢 -2.8 kB
assets/CloudSurveyView-D5Xjqdbe.js (new) 15.4 kB 🔴 +15.4 kB 🔴 +3.3 kB 🔴 +2.8 kB
assets/CloudLoginView-B6vyGF09.js (new) 10.1 kB 🔴 +10.1 kB 🔴 +2.94 kB 🔴 +2.57 kB
assets/CloudLoginView-C4aRESYY.js (removed) 10.1 kB 🟢 -10.1 kB 🟢 -2.94 kB 🟢 -2.57 kB
assets/UserCheckView-BcFh87ar.js (new) 8.37 kB 🔴 +8.37 kB 🔴 +2.21 kB 🔴 +1.92 kB
assets/UserCheckView-DZ31MGaA.js (removed) 8.37 kB 🟢 -8.37 kB 🟢 -2.21 kB 🟢 -1.92 kB
assets/CloudSignupView-DBFz6KKa.js (new) 7.46 kB 🔴 +7.46 kB 🔴 +2.35 kB 🔴 +2.05 kB
assets/CloudSignupView-DkSRXAsr.js (removed) 7.46 kB 🟢 -7.46 kB 🟢 -2.35 kB 🟢 -2.04 kB
assets/CloudLayoutView-DY3fG32k.js (new) 6.45 kB 🔴 +6.45 kB 🔴 +2.11 kB 🔴 +1.84 kB
assets/CloudLayoutView-Dz-z01aV.js (removed) 6.45 kB 🟢 -6.45 kB 🟢 -2.11 kB 🟢 -1.83 kB
assets/CloudForgotPasswordView-C0sV_yP1.js (new) 5.57 kB 🔴 +5.57 kB 🔴 +1.95 kB 🔴 +1.71 kB
assets/CloudForgotPasswordView-Cu-fLyel.js (removed) 5.57 kB 🟢 -5.57 kB 🟢 -1.94 kB 🟢 -1.72 kB
assets/CloudAuthTimeoutView-1Re8YqJf.js (removed) 4.92 kB 🟢 -4.92 kB 🟢 -1.78 kB 🟢 -1.56 kB
assets/CloudAuthTimeoutView-C1cq0XyY.js (new) 4.92 kB 🔴 +4.92 kB 🔴 +1.78 kB 🔴 +1.55 kB
assets/CloudSubscriptionRedirectView-BSMfOMqH.js (removed) 4.72 kB 🟢 -4.72 kB 🟢 -1.78 kB 🟢 -1.58 kB
assets/CloudSubscriptionRedirectView-DnIrT2iV.js (new) 4.72 kB 🔴 +4.72 kB 🔴 +1.79 kB 🔴 +1.58 kB
assets/UserSelectView-DUvuVKTR.js (removed) 4.46 kB 🟢 -4.46 kB 🟢 -1.62 kB 🟢 -1.46 kB
assets/UserSelectView-DyxsAzZC.js (new) 4.46 kB 🔴 +4.46 kB 🔴 +1.62 kB 🔴 +1.45 kB
assets/CloudSorryContactSupportView-DgbtPnDH.js (new) 1.02 kB 🔴 +1.02 kB 🔴 +539 B 🔴 +470 B
assets/CloudSorryContactSupportView-DPgIvmSL.js (removed) 1.02 kB 🟢 -1.02 kB 🟢 -538 B 🟢 -470 B
assets/layout-C9XfGlzo.js (removed) 296 B 🟢 -296 B 🟢 -223 B 🟢 -187 B
assets/layout-CPwjy2Ng.js (new) 296 B 🔴 +296 B 🔴 +224 B 🔴 +190 B

Status: 11 added / 11 removed

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

Configuration panels, inspectors, and settings screens

File Before After Δ Raw Δ Gzip Δ Brotli
assets/settings-Bkk-nJFW.js (new) 37.1 kB 🔴 +37.1 kB 🔴 +9.04 kB 🔴 +7.46 kB
assets/settings-Dm1rtfc0.js (removed) 37.1 kB 🟢 -37.1 kB 🟢 -9.04 kB 🟢 -7.46 kB
assets/settings-DPSdImSe.js (removed) 32.8 kB 🟢 -32.8 kB 🟢 -8.04 kB 🟢 -6.78 kB
assets/settings-rfYpR18m.js (new) 32.8 kB 🔴 +32.8 kB 🔴 +8.04 kB 🔴 +6.79 kB
assets/settings-BFiRprDH.js (new) 31.2 kB 🔴 +31.2 kB 🔴 +7.89 kB 🔴 +6.42 kB
assets/settings-DobVJOaj.js (removed) 31.2 kB 🟢 -31.2 kB 🟢 -7.89 kB 🟢 -6.42 kB
assets/settings-D5H4G8lj.js (new) 29.5 kB 🔴 +29.5 kB 🔴 +8.16 kB 🔴 +6.88 kB
assets/settings-Dx7O9zk0.js (removed) 29.5 kB 🟢 -29.5 kB 🟢 -8.16 kB 🟢 -6.88 kB
assets/settings-BGE3PLDv.js (removed) 28.8 kB 🟢 -28.8 kB 🟢 -7.83 kB 🟢 -6.88 kB
assets/settings-paLi_Ryq.js (new) 28.8 kB 🔴 +28.8 kB 🔴 +7.83 kB 🔴 +6.88 kB
assets/settings-CYcjX6cS.js (new) 27.7 kB 🔴 +27.7 kB 🔴 +7.54 kB 🔴 +6.43 kB
assets/settings-D57UTXRP.js (removed) 27.7 kB 🟢 -27.7 kB 🟢 -7.54 kB 🟢 -6.44 kB
assets/settings-CwdQVmdc.js (removed) 27.7 kB 🟢 -27.7 kB 🟢 -7.74 kB 🟢 -6.76 kB
assets/settings-jTyPnDBE.js (new) 27.7 kB 🔴 +27.7 kB 🔴 +7.74 kB 🔴 +6.76 kB
assets/settings-DP0akR3m.js (new) 27 kB 🔴 +27 kB 🔴 +7.45 kB 🔴 +6.5 kB
assets/settings-DVtNqJUL.js (removed) 27 kB 🟢 -27 kB 🟢 -7.45 kB 🟢 -6.5 kB
assets/WorkspacePanel-BtXQeeT1.js (removed) 26.8 kB 🟢 -26.8 kB 🟢 -5.63 kB 🟢 -4.94 kB
assets/WorkspacePanel-DMVhxY8f.js (new) 26.8 kB 🔴 +26.8 kB 🔴 +5.63 kB 🔴 +4.95 kB
assets/settings-CATlgsVJ.js (removed) 26.8 kB 🟢 -26.8 kB 🟢 -7.85 kB 🟢 -6.56 kB
assets/settings-YKn27p-6.js (new) 26.8 kB 🔴 +26.8 kB 🔴 +7.85 kB 🔴 +6.53 kB
assets/settings-D4S6euyr.js (new) 23.7 kB 🔴 +23.7 kB 🔴 +7.64 kB 🔴 +6.15 kB
assets/settings-Dxs8tHt9.js (removed) 23.7 kB 🟢 -23.7 kB 🟢 -7.64 kB 🟢 -6.14 kB
assets/settings-CD6qIXNU.js (removed) 23 kB 🟢 -23 kB 🟢 -7.4 kB 🟢 -5.74 kB
assets/settings-Di62KFUs.js (new) 23 kB 🔴 +23 kB 🔴 +7.4 kB 🔴 +5.75 kB
assets/SecretsPanel-0rN2YafJ.js (new) 21.5 kB 🔴 +21.5 kB 🔴 +5.29 kB 🔴 +4.64 kB
assets/SecretsPanel-DoR3xBIB.js (removed) 21.5 kB 🟢 -21.5 kB 🟢 -5.29 kB 🟢 -4.64 kB
assets/LegacyCreditsPanel-BBwrx3-5.js (new) 20.8 kB 🔴 +20.8 kB 🔴 +5.61 kB 🔴 +4.93 kB
assets/LegacyCreditsPanel-Cx2XXMH1.js (removed) 20.8 kB 🟢 -20.8 kB 🟢 -5.61 kB 🟢 -4.93 kB
assets/SubscriptionPanel-BcMlOVRv.js (new) 18.7 kB 🔴 +18.7 kB 🔴 +4.76 kB 🔴 +4.21 kB
assets/SubscriptionPanel-DT8iEAsY.js (removed) 18.7 kB 🟢 -18.7 kB 🟢 -4.76 kB 🟢 -4.21 kB
assets/KeybindingPanel-BUn7H5TE.js (removed) 12.6 kB 🟢 -12.6 kB 🟢 -3.63 kB 🟢 -3.2 kB
assets/KeybindingPanel-Cd0qlvKN.js (new) 12.6 kB 🔴 +12.6 kB 🔴 +3.64 kB 🔴 +3.22 kB
assets/ExtensionPanel-CoLj9wT_.js (removed) 9.51 kB 🟢 -9.51 kB 🟢 -2.69 kB 🟢 -2.39 kB
assets/ExtensionPanel-DpAvGikm.js (new) 9.51 kB 🔴 +9.51 kB 🔴 +2.7 kB 🔴 +2.4 kB
assets/AboutPanel-DD9hLjQl.js (new) 8.62 kB 🔴 +8.62 kB 🔴 +2.46 kB 🔴 +2.22 kB
assets/AboutPanel-vcAqXgR8.js (removed) 8.62 kB 🟢 -8.62 kB 🟢 -2.46 kB 🟢 -2.23 kB
assets/ServerConfigPanel-DAPn8T9H.js (new) 6.65 kB 🔴 +6.65 kB 🔴 +2.17 kB 🔴 +1.94 kB
assets/ServerConfigPanel-DNVQZkZl.js (removed) 6.65 kB 🟢 -6.65 kB 🟢 -2.16 kB 🟢 -1.93 kB
assets/UserPanel-BMTjbLwx.js (new) 6.29 kB 🔴 +6.29 kB 🔴 +2.04 kB 🔴 +1.78 kB
assets/UserPanel-DOOFhcFl.js (removed) 6.29 kB 🟢 -6.29 kB 🟢 -2.03 kB 🟢 -1.78 kB
assets/cloudRemoteConfig-BIOxA5ib.js (removed) 1.45 kB 🟢 -1.45 kB 🟢 -714 B 🟢 -619 B
assets/cloudRemoteConfig-Bzux4oVK.js (new) 1.45 kB 🔴 +1.45 kB 🔴 +717 B 🔴 +621 B
assets/refreshRemoteConfig-BBG7rNXl.js (removed) 1.14 kB 🟢 -1.14 kB 🟢 -519 B 🟢 -458 B
assets/refreshRemoteConfig-CfkiJhri.js (new) 1.14 kB 🔴 +1.14 kB 🔴 +519 B 🔴 +459 B
assets/config-B7YkIQwB.js (new) 1.01 kB 🔴 +1.01 kB 🔴 +550 B 🔴 +450 B
assets/config-BK8UYp9G.js (removed) 1.01 kB 🟢 -1.01 kB 🟢 -549 B 🟢 -450 B

Status: 23 added / 23 removed

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

Authentication, profile, and account management bundles

File Before After Δ Raw Δ Gzip Δ Brotli
assets/auth-aXSVntz0.js (removed) 3.4 kB 🟢 -3.4 kB 🟢 -1.18 kB 🟢 -992 B
assets/auth-C_ps1fa6.js (new) 3.4 kB 🔴 +3.4 kB 🔴 +1.18 kB 🔴 +994 B
assets/SignUpForm-C3gQSddS.js (new) 3.01 kB 🔴 +3.01 kB 🔴 +1.23 kB 🔴 +1.1 kB
assets/SignUpForm-vpaFZk6G.js (removed) 3.01 kB 🟢 -3.01 kB 🟢 -1.23 kB 🟢 -1.09 kB
assets/UpdatePasswordContent-Cn_ZXolk.js (new) 2.38 kB 🔴 +2.38 kB 🔴 +1.08 kB 🔴 +956 B
assets/UpdatePasswordContent-Dmrcsozk.js (removed) 2.38 kB 🟢 -2.38 kB 🟢 -1.07 kB 🟢 -949 B
assets/firebaseAuthStore-C2Aay5-q.js (removed) 803 B 🟢 -803 B 🟢 -396 B 🟢 -360 B
assets/firebaseAuthStore-D5h5Vfs8.js (new) 803 B 🔴 +803 B 🔴 +396 B 🔴 +360 B
assets/auth-BEuX7cJn.js (new) 317 B 🔴 +317 B 🔴 +205 B 🔴 +178 B
assets/auth-BPnIe1Lc.js (removed) 317 B 🟢 -317 B 🟢 -205 B 🟢 -178 B
assets/PasswordFields-BGrbyWzK.js 4.51 kB 4.51 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WorkspaceProfilePic-B0BztYjc.js 1.57 kB 1.57 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B

Status: 5 added / 5 removed

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

Modals, dialogs, drawers, and in-app editors

File Before After Δ Raw Δ Gzip Δ Brotli
assets/useSubscriptionDialog-D-ufbYnK.js (removed) 751 B 🟢 -751 B 🟢 -387 B 🟢 -337 B
assets/useSubscriptionDialog-nlux7q4u.js (new) 751 B 🔴 +751 B 🔴 +390 B 🔴 +339 B

Status: 1 added / 1 removed

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

Reusable component library chunks

File Before After Δ Raw Δ Gzip Δ Brotli
assets/useTerminalTabs-BxHhQO2A.js (new) 9.86 kB 🔴 +9.86 kB 🔴 +3.41 kB 🔴 +3.01 kB
assets/useTerminalTabs-DB3W5h9F.js (removed) 9.86 kB 🟢 -9.86 kB 🟢 -3.41 kB 🟢 -3 kB
assets/TopbarBadge-Brnv1--t.js (new) 7.52 kB 🔴 +7.52 kB 🔴 +1.82 kB 🔴 +1.6 kB
assets/TopbarBadge-DSq-ReLB.js (removed) 7.52 kB 🟢 -7.52 kB 🟢 -1.82 kB 🟢 -1.61 kB
assets/ComfyQueueButton-D-yqJTof.js (removed) 7.17 kB 🟢 -7.17 kB 🟢 -2.32 kB 🟢 -2.07 kB
assets/ComfyQueueButton-If_ZKz-1.js (new) 7.17 kB 🔴 +7.17 kB 🔴 +2.32 kB 🔴 +2.08 kB
assets/SubscribeButton-aI_vFs2r.js (removed) 2.35 kB 🟢 -2.35 kB 🟢 -1.02 kB 🟢 -893 B
assets/SubscribeButton-CK9V9QV0.js (new) 2.35 kB 🔴 +2.35 kB 🔴 +1.02 kB 🔴 +895 B
assets/WidgetButton-DD1rzr3h.js (new) 1.84 kB 🔴 +1.84 kB 🔴 +877 B 🔴 +775 B
assets/WidgetButton-Dd8TTZez.js (removed) 1.84 kB 🟢 -1.84 kB 🟢 -876 B 🟢 -776 B
assets/cloudFeedbackTopbarButton-BgJdi-Fa.js (new) 1.61 kB 🔴 +1.61 kB 🔴 +865 B 🔴 +744 B
assets/cloudFeedbackTopbarButton-C7lNXA2H.js (removed) 1.61 kB 🟢 -1.61 kB 🟢 -865 B 🟢 -765 B
assets/CloudBadge-Bjd4gDLV.js (removed) 1.24 kB 🟢 -1.24 kB 🟢 -605 B 🟢 -530 B
assets/CloudBadge-CZ8xfCLL.js (new) 1.24 kB 🔴 +1.24 kB 🔴 +603 B 🔴 +531 B
assets/ComfyQueueButton-Bcbq6ch3.js (new) 808 B 🔴 +808 B 🔴 +403 B 🔴 +361 B
assets/ComfyQueueButton-DlQWphIB.js (removed) 808 B 🟢 -808 B 🟢 -399 B 🟢 -360 B
assets/Button-LGYfUhES.js 3 kB 3 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/UserAvatar-B50esQ9A.js 1.17 kB 1.17 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B

Status: 8 added / 8 removed

Data & Services — 2.12 MB (baseline 2.12 MB) • 🔴 +118 B

Stores, services, APIs, and repositories

File Before After Δ Raw Δ Gzip Δ Brotli
assets/dialogService-CS7L8OIq.js (new) 1.34 MB 🔴 +1.34 MB 🔴 +303 kB 🔴 +234 kB
assets/dialogService-BBpB_-f1.js (removed) 1.34 MB 🟢 -1.34 MB 🟢 -303 kB 🟢 -235 kB
assets/api-D7Jzl-fl.js (removed) 645 kB 🟢 -645 kB 🟢 -146 kB 🟢 -116 kB
assets/api-S5Ac6BmN.js (new) 645 kB 🔴 +645 kB 🔴 +146 kB 🔴 +116 kB
assets/load3dService-Bn6kV60a.js (new) 91.2 kB 🔴 +91.2 kB 🔴 +19.1 kB 🔴 +16.5 kB
assets/load3dService-D7b-CkxW.js (removed) 91.2 kB 🟢 -91.2 kB 🟢 -19.1 kB 🟢 -16.5 kB
assets/systemStatsStore-BaoJD3T-.js (removed) 12.2 kB 🟢 -12.2 kB 🟢 -4.27 kB 🟢 -3.74 kB
assets/systemStatsStore-CU0wNxd-.js (new) 12.2 kB 🔴 +12.2 kB 🔴 +4.27 kB 🔴 +3.76 kB
assets/releaseStore-Do5cdIpx.js (new) 7.99 kB 🔴 +7.99 kB 🔴 +2.22 kB 🔴 +1.96 kB
assets/releaseStore-w0fSOlSN.js (removed) 7.99 kB 🟢 -7.99 kB 🟢 -2.22 kB 🟢 -1.96 kB
assets/keybindingService-Ca0hEMla.js (removed) 6.57 kB 🟢 -6.57 kB 🟢 -1.71 kB 🟢 -1.48 kB
assets/keybindingService-Czx56Xy8.js (new) 6.57 kB 🔴 +6.57 kB 🔴 +1.72 kB 🔴 +1.48 kB
assets/serverConfigStore-Cg1Zzouw.js (removed) 2.32 kB 🟢 -2.32 kB 🟢 -789 B 🟢 -693 B
assets/serverConfigStore-DB58Z5s2.js (new) 2.32 kB 🔴 +2.32 kB 🔴 +791 B 🔴 +690 B
assets/bootstrapStore-Dd4eBUlb.js (removed) 2.13 kB 🟢 -2.13 kB 🟢 -881 B 🟢 -808 B
assets/bootstrapStore-tIAj1yD3.js (new) 2.13 kB 🔴 +2.13 kB 🔴 +884 B 🔴 +809 B
assets/userStore-CXgPOoyw.js (new) 1.85 kB 🔴 +1.85 kB 🔴 +721 B 🔴 +634 B
assets/userStore-DJii6EUD.js (removed) 1.85 kB 🟢 -1.85 kB 🟢 -719 B 🟢 -636 B
assets/audioService-2fRO1gfS.js (removed) 1.73 kB 🟢 -1.73 kB 🟢 -846 B 🟢 -729 B
assets/audioService-DRVaZBxy.js (new) 1.73 kB 🔴 +1.73 kB 🔴 +846 B 🔴 +727 B
assets/releaseStore-Bx2EHPEs.js (new) 775 B 🔴 +775 B 🔴 +394 B 🔴 +348 B
assets/releaseStore-DYwEF06T.js (removed) 775 B 🟢 -775 B 🟢 -392 B 🟢 -346 B
assets/workflowDraftStore-DMCkappJ.js (removed) 751 B 🟢 -751 B 🟢 -386 B 🟢 -340 B
assets/workflowDraftStore-SBkgRQf6.js (new) 751 B 🔴 +751 B 🔴 +390 B 🔴 +344 B
assets/dialogService-C2G7A5Oc.js (removed) 740 B 🟢 -740 B 🟢 -378 B 🟢 -337 B
assets/dialogService-qih5M7yL.js (new) 740 B 🔴 +740 B 🔴 +378 B 🔴 +340 B
assets/dialogStore-BNo1twEf.js 4.1 kB 4.1 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B

Status: 13 added / 13 removed

Utilities & Hooks — 237 kB (baseline 237 kB) • 🔴 +209 B

Helpers, composables, and utility bundles

File Before After Δ Raw Δ Gzip Δ Brotli
assets/useConflictDetection-DBy1fU6t.js (removed) 177 kB 🟢 -177 kB 🟢 -38.9 kB 🟢 -32.4 kB
assets/useConflictDetection-hOocWG3h.js (new) 177 kB 🔴 +177 kB 🔴 +38.9 kB 🔴 +32.4 kB
assets/useLoad3d-Btsaw_FO.js (new) 14.7 kB 🔴 +14.7 kB 🔴 +3.64 kB 🔴 +3.21 kB
assets/useLoad3d-C-CPWob-.js (removed) 14.4 kB 🟢 -14.4 kB 🟢 -3.56 kB 🟢 -3.14 kB
assets/useLoad3dViewer-CSFpl6Cb.js (removed) 14.2 kB 🟢 -14.2 kB 🟢 -3.16 kB 🟢 -2.8 kB
assets/useLoad3dViewer-D97bQtgv.js (new) 14.2 kB 🔴 +14.2 kB 🔴 +3.16 kB 🔴 +2.8 kB
assets/subscriptionCheckoutUtil-3XGLvSIh.js (removed) 4.25 kB 🟢 -4.25 kB 🟢 -1.57 kB 🟢 -1.37 kB
assets/subscriptionCheckoutUtil-BkrD-x6W.js (new) 4.25 kB 🔴 +4.25 kB 🔴 +1.57 kB 🔴 +1.37 kB
assets/useFeatureFlags-DGYNen3_.js (new) 3.34 kB 🔴 +3.34 kB 🔴 +1.05 kB 🔴 +905 B
assets/useFeatureFlags-DRaesDAE.js (removed) 3.34 kB 🟢 -3.34 kB 🟢 -1.05 kB 🟢 -898 B
assets/useWorkspaceUI-D9ZWqm0p.js (removed) 3.15 kB 🟢 -3.15 kB 🟢 -889 B 🟢 -763 B
assets/useWorkspaceUI-DPGfkg4Z.js (new) 3.15 kB 🔴 +3.15 kB 🔴 +891 B 🔴 +769 B
assets/useSubscriptionCredits-_Ug_V2AG.js (new) 2.75 kB 🔴 +2.75 kB 🔴 +1.04 kB 🔴 +908 B
assets/useSubscriptionCredits-C8uAA32l.js (removed) 2.75 kB 🟢 -2.75 kB 🟢 -1.03 kB 🟢 -900 B
assets/useExternalLink-C5r8rVhk.js (removed) 1.66 kB 🟢 -1.66 kB 🟢 -772 B 🟢 -682 B
assets/useExternalLink-DwQzueEG.js (new) 1.66 kB 🔴 +1.66 kB 🔴 +772 B 🔴 +683 B
assets/useCopyToClipboard-C_TTC9nV.js (new) 1.57 kB 🔴 +1.57 kB 🔴 +668 B 🔴 +560 B
assets/useCopyToClipboard-Ctw9U6bO.js (removed) 1.57 kB 🟢 -1.57 kB 🟢 -670 B 🟢 -565 B
assets/useErrorHandling-B6Hyy0xd.js (new) 1.34 kB 🔴 +1.34 kB 🔴 +555 B 🔴 +478 B
assets/useErrorHandling-ILLljhQK.js (removed) 1.34 kB 🟢 -1.34 kB 🟢 -554 B 🟢 -482 B
assets/useLoad3d-8tOCFQbl.js (removed) 874 B 🟢 -874 B 🟢 -430 B 🟢 -386 B
assets/useLoad3d-D-4H_o8n.js (new) 874 B 🔴 +874 B 🔴 +433 B 🔴 +388 B
assets/audioUtils-BOXRBig-.js (removed) 858 B 🟢 -858 B 🟢 -498 B 🟢 -420 B
assets/audioUtils-iFQxMUmB.js (new) 858 B 🔴 +858 B 🔴 +500 B 🔴 +412 B
assets/useLoad3dViewer-DhzsBPUP.js (new) 853 B 🔴 +853 B 🔴 +419 B 🔴 +381 B
assets/useLoad3dViewer-GhoX7HxV.js (removed) 853 B 🟢 -853 B 🟢 -416 B 🟢 -374 B
assets/useCurrentUser-BnZzI2X6.js (removed) 737 B 🟢 -737 B 🟢 -382 B 🟢 -337 B
assets/useCurrentUser-CRjdK4y8.js (new) 737 B 🔴 +737 B 🔴 +381 B 🔴 +338 B
assets/_plugin-vue_export-helper-D53b894U.js 315 B 315 B ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/colorUtil-DOjEWuNN.js 7 kB 7 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/envUtil-BoEUYO9X.js 466 B 466 B ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/markdownRendererUtil-YzPqYQr3.js 1.56 kB 1.56 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/networkUtil-DSA9UCpE.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

Status: 14 added / 14 removed

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

External libraries and shared vendor chunks

File Before After Δ Raw Δ Gzip Δ Brotli
assets/vendor-xterm-0CcpQUK2.js (new) 398 kB 🔴 +398 kB 🔴 +79.3 kB 🔴 +63.6 kB
assets/vendor-xterm-CZroAclV.js (removed) 398 kB 🟢 -398 kB 🟢 -79.3 kB 🟢 -63.6 kB
assets/vendor-axios-qYA_aG5-.js 71.6 kB 71.6 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-chart-DPuwexxf.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-cn-CKf2l.js 132 kB 132 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-markdown-CLFqBOQ2.js 102 kB 102 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-other-C1doMZFE.js 1.55 MB 1.55 MB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-primevue-BrYQO8Nm.js 1.74 MB 1.74 MB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-reka-ui-BBMmji0g.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-eGUDVAYp.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-BNJllOi7.js 111 kB 111 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-yjs-B7dXz571.js 143 kB 143 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-zod-BTzCBa7h.js 110 kB 110 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B

Status: 1 added / 1 removed

Other — 7.21 MB (baseline 7.21 MB) • 🔴 +1.47 kB

Bundles that do not match a named category

File Before After Δ Raw Δ Gzip Δ Brotli
assets/i18n-D0nO7lWb.js (new) 486 kB 🔴 +486 kB 🔴 +93.3 kB 🔴 +72.8 kB
assets/i18n-DgsYHOAA.js (removed) 486 kB 🟢 -486 kB 🟢 -93.3 kB 🟢 -72.8 kB
assets/nodeDefs-7k_SrkpD.js (removed) 442 kB 🟢 -442 kB 🟢 -67.1 kB 🟢 -46.4 kB
assets/nodeDefs-DQZh9C3Z.js (new) 442 kB 🔴 +442 kB 🔴 +67.1 kB 🔴 +46.4 kB
assets/nodeDefs-4juEIy52.js (removed) 406 kB 🟢 -406 kB 🟢 -61 kB 🟢 -42.9 kB
assets/nodeDefs-CY0w_Hvy.js (new) 406 kB 🔴 +406 kB 🔴 +61 kB 🔴 +42.9 kB
assets/nodeDefs-CDV1thn5.js (new) 405 kB 🔴 +405 kB 🔴 +63.1 kB 🔴 +44.5 kB
assets/nodeDefs-oSLREHqB.js (removed) 405 kB 🟢 -405 kB 🟢 -63.1 kB 🟢 -44.5 kB
assets/nodeDefs-B8jyTCRy.js (removed) 375 kB 🟢 -375 kB 🟢 -61.1 kB 🟢 -42.7 kB
assets/nodeDefs-DUz23YQ5.js (new) 375 kB 🔴 +375 kB 🔴 +61.1 kB 🔴 +42.7 kB
assets/nodeDefs-CFarW4N4.js (removed) 365 kB 🟢 -365 kB 🟢 -59.9 kB 🟢 -42.5 kB
assets/nodeDefs-Dxn6e0-h.js (new) 365 kB 🔴 +365 kB 🔴 +59.9 kB 🔴 +42.5 kB
assets/nodeDefs-BFAaUCPg.js (removed) 361 kB 🟢 -361 kB 🟢 -58.6 kB 🟢 -42.8 kB
assets/nodeDefs-BowH1VL1.js (new) 361 kB 🔴 +361 kB 🔴 +58.6 kB 🔴 +42.8 kB
assets/nodeDefs-CilYTPll.js (removed) 361 kB 🟢 -361 kB 🟢 -59.9 kB 🟢 -43.6 kB
assets/nodeDefs-COWMGhrk.js (new) 361 kB 🔴 +361 kB 🔴 +59.9 kB 🔴 +43.6 kB
assets/nodeDefs-BYzmerHb.js (removed) 358 kB 🟢 -358 kB 🟢 -57.4 kB 🟢 -41.9 kB
assets/nodeDefs-DRM1T2Jx.js (new) 358 kB 🔴 +358 kB 🔴 +57.4 kB 🔴 +41.9 kB
assets/nodeDefs-DdTkBm1y.js (new) 354 kB 🔴 +354 kB 🔴 +56.4 kB 🔴 +41.3 kB
assets/nodeDefs-DxpGg4BW.js (removed) 354 kB 🟢 -354 kB 🟢 -56.5 kB 🟢 -41.3 kB
assets/nodeDefs-CdnhWEKS.js (new) 332 kB 🔴 +332 kB 🔴 +58.5 kB 🔴 +41.2 kB
assets/nodeDefs-ChXvGFKo.js (removed) 332 kB 🟢 -332 kB 🟢 -58.5 kB 🟢 -41.2 kB
assets/nodeDefs-Bx-PGeyT.js (removed) 330 kB 🟢 -330 kB 🟢 -57.5 kB 🟢 -40 kB
assets/nodeDefs-Cee5fyaK.js (new) 330 kB 🔴 +330 kB 🔴 +57.5 kB 🔴 +40 kB
assets/main-B_ri2Aap.js (removed) 185 kB 🟢 -185 kB 🟢 -48.7 kB 🟢 -38.9 kB
assets/main-BUf7VGLC.js (new) 185 kB 🔴 +185 kB 🔴 +48.7 kB 🔴 +38.9 kB
assets/main-CPfWyLRa.js (removed) 166 kB 🟢 -166 kB 🟢 -43.9 kB 🟢 -35.8 kB
assets/main-DfAYnku2.js (new) 166 kB 🔴 +166 kB 🔴 +43.9 kB 🔴 +35.8 kB
assets/main-CIyZJflU.js (removed) 160 kB 🟢 -160 kB 🟢 -43.8 kB 🟢 -35.4 kB
assets/main-CkipomGw.js (new) 160 kB 🔴 +160 kB 🔴 +43.8 kB 🔴 +35.4 kB
assets/main-CjzUpUX1.js (new) 153 kB 🔴 +153 kB 🔴 +43.7 kB 🔴 +35.2 kB
assets/main-TTZWL04N.js (removed) 153 kB 🟢 -153 kB 🟢 -43.7 kB 🟢 -35.2 kB
assets/main-CA72LWLN.js (removed) 140 kB 🟢 -140 kB 🟢 -42.3 kB 🟢 -35.8 kB
assets/main-q45wM3mC.js (new) 140 kB 🔴 +140 kB 🔴 +42.3 kB 🔴 +35.8 kB
assets/main-CbQ7lJbK.js (removed) 137 kB 🟢 -137 kB 🟢 -41.8 kB 🟢 -34.2 kB
assets/main-DnyQnLJu.js (new) 137 kB 🔴 +137 kB 🔴 +41.8 kB 🔴 +34.2 kB
assets/main-CneA57GN.js (removed) 135 kB 🟢 -135 kB 🟢 -41.4 kB 🟢 -34.8 kB
assets/main-Do99CjaL.js (new) 135 kB 🔴 +135 kB 🔴 +41.4 kB 🔴 +34.8 kB
assets/main-0tm325o3.js (removed) 132 kB 🟢 -132 kB 🟢 -41.2 kB 🟢 -34.8 kB
assets/main-DMTXZerX.js (new) 132 kB 🔴 +132 kB 🔴 +41.2 kB 🔴 +34.8 kB
assets/main-BoiOgdKT.js (removed) 132 kB 🟢 -132 kB 🟢 -40.6 kB 🟢 -34.3 kB
assets/main-PNDNfdBt.js (new) 132 kB 🔴 +132 kB 🔴 +40.6 kB 🔴 +34.3 kB
assets/main-DUNVKwSK.js (new) 117 kB 🔴 +117 kB 🔴 +40.3 kB 🔴 +32.5 kB
assets/main-Wdgujjxn.js (removed) 117 kB 🟢 -117 kB 🟢 -40.3 kB 🟢 -32.5 kB
assets/main-CHRAGMyf.js (removed) 116 kB 🟢 -116 kB 🟢 -40.4 kB 🟢 -32.2 kB
assets/main-CsePyJ5r.js (new) 116 kB 🔴 +116 kB 🔴 +40.4 kB 🔴 +32.3 kB
assets/groupNode-59889PQN.js (removed) 72.2 kB 🟢 -72.2 kB 🟢 -17.8 kB 🟢 -15.7 kB
assets/groupNode-CDjAMF7A.js (new) 72.2 kB 🔴 +72.2 kB 🔴 +17.8 kB 🔴 +15.7 kB
assets/core-C-Ldn_ig.js (new) 72.1 kB 🔴 +72.1 kB 🔴 +18.6 kB 🔴 +16 kB
assets/core-DNaoUnZp.js (removed) 71.8 kB 🟢 -71.8 kB 🟢 -18.5 kB 🟢 -15.9 kB
assets/WidgetSelect-6Paq5HsK.js (new) 57.5 kB 🔴 +57.5 kB 🔴 +12.2 kB 🔴 +10.6 kB
assets/WidgetSelect-Mqtba9yd.js (removed) 56.8 kB 🟢 -56.8 kB 🟢 -12 kB 🟢 -10.4 kB
assets/SubscriptionRequiredDialogContentWorkspace-B_CueuZT.js (new) 46 kB 🔴 +46 kB 🔴 +8.59 kB 🔴 +7.43 kB
assets/SubscriptionRequiredDialogContentWorkspace-Bjt6E3V4.js (removed) 46 kB 🟢 -46 kB 🟢 -8.59 kB 🟢 -7.43 kB
assets/Load3DControls-CJAMZEvY.js (removed) 30.9 kB 🟢 -30.9 kB 🟢 -5.34 kB 🟢 -4.66 kB
assets/Load3DControls-pb7WVB0n.js (new) 30.9 kB 🔴 +30.9 kB 🔴 +5.34 kB 🔴 +4.66 kB
assets/SettingDialogContent-B7TditRu.js (new) 30.8 kB 🔴 +30.8 kB 🔴 +8.01 kB 🔴 +7.05 kB
assets/SettingDialogContent-Riusn_PI.js (removed) 30.8 kB 🟢 -30.8 kB 🟢 -8.01 kB 🟢 -7.04 kB
assets/SubscriptionRequiredDialogContent-ChwpYnZZ.js (removed) 26.1 kB 🟢 -26.1 kB 🟢 -6.57 kB 🟢 -5.77 kB
assets/SubscriptionRequiredDialogContent-TkKyynZe.js (new) 26.1 kB 🔴 +26.1 kB 🔴 +6.58 kB 🔴 +5.76 kB
assets/Load3dViewerContent-EPYvNki5.js (removed) 23.3 kB 🟢 -23.3 kB 🟢 -5.27 kB 🟢 -4.57 kB
assets/Load3dViewerContent-IwqUqoZO.js (new) 23.1 kB 🔴 +23.1 kB 🔴 +5.2 kB 🔴 +4.52 kB
assets/WidgetImageCrop-Cw8oNfT8.js (removed) 22.3 kB 🟢 -22.3 kB 🟢 -5.52 kB 🟢 -4.86 kB
assets/WidgetImageCrop-RpHhSqSu.js (new) 22.3 kB 🔴 +22.3 kB 🔴 +5.52 kB 🔴 +4.86 kB
assets/SubscriptionPanelContentWorkspace-DMcfu5ZF.js (new) 21.8 kB 🔴 +21.8 kB 🔴 +5.19 kB 🔴 +4.6 kB
assets/SubscriptionPanelContentWorkspace-DSNfNnAP.js (removed) 21.8 kB 🟢 -21.8 kB 🟢 -5.18 kB 🟢 -4.59 kB
assets/CurrentUserPopoverWorkspace-CbeZHDlD.js (removed) 20.6 kB 🟢 -20.6 kB 🟢 -5.08 kB 🟢 -4.51 kB
assets/CurrentUserPopoverWorkspace-DuN5jLGx.js (new) 20.6 kB 🔴 +20.6 kB 🔴 +5.08 kB 🔴 +4.52 kB
assets/FormItem-BeOjyvy2.js (removed) 20.2 kB 🟢 -20.2 kB 🟢 -4.87 kB 🟢 -4.25 kB
assets/FormItem-D0rojxHQ.js (new) 20.2 kB 🔴 +20.2 kB 🔴 +4.87 kB 🔴 +4.26 kB
assets/SignInContent-4yskqrs8.js (removed) 19 kB 🟢 -19 kB 🟢 -4.81 kB 🟢 -4.21 kB
assets/SignInContent-Bqd8M9Ys.js (new) 19 kB 🔴 +19 kB 🔴 +4.82 kB 🔴 +4.21 kB
assets/commands-OSpDi1he.js (removed) 18.4 kB 🟢 -18.4 kB 🟢 -3.93 kB 🟢 -3.05 kB
assets/commands-YFdvkJDc.js (new) 18.4 kB 🔴 +18.4 kB 🔴 +3.93 kB 🔴 +3.05 kB
assets/WidgetRecordAudio-C2Bl5wnt.js (new) 17.3 kB 🔴 +17.3 kB 🔴 +4.96 kB 🔴 +4.43 kB
assets/WidgetRecordAudio-D9Nm8z-6.js (removed) 17.3 kB 🟢 -17.3 kB 🟢 -4.95 kB 🟢 -4.43 kB
assets/commands-Cgae_Kmu.js (removed) 17.2 kB 🟢 -17.2 kB 🟢 -3.63 kB 🟢 -2.83 kB
assets/commands-UTYbUnOi.js (new) 17.2 kB 🔴 +17.2 kB 🔴 +3.63 kB 🔴 +2.83 kB
assets/commands-Cd2uuEbd.js (new) 17.1 kB 🔴 +17.1 kB 🔴 +3.67 kB 🔴 +2.94 kB
assets/commands-ZBYN9Ax-.js (removed) 17.1 kB 🟢 -17.1 kB 🟢 -3.67 kB 🟢 -2.94 kB
assets/commands-BVMMhDLS.js (removed) 16.6 kB 🟢 -16.6 kB 🟢 -3.71 kB 🟢 -2.92 kB
assets/commands-CXPUqoOz.js (new) 16.6 kB 🔴 +16.6 kB 🔴 +3.71 kB 🔴 +2.92 kB
assets/commands-B-pgsvFR.js (removed) 16.3 kB 🟢 -16.3 kB 🟢 -3.46 kB 🟢 -2.88 kB
assets/commands-ijoJFfEv.js (new) 16.3 kB 🔴 +16.3 kB 🔴 +3.46 kB 🔴 +2.88 kB
assets/Load3D-Bi25P8mF.js (new) 16.2 kB 🔴 +16.2 kB 🔴 +4.04 kB 🔴 +3.53 kB
assets/Load3D-D_pv9SSC.js (removed) 16.2 kB 🟢 -16.2 kB 🟢 -4.04 kB 🟢 -3.52 kB
assets/MissingModelsWarning-C1oRPsKN.js (removed) 16.1 kB 🟢 -16.1 kB 🟢 -4.4 kB 🟢 -3.91 kB
assets/MissingModelsWarning-DF_n2H96.js (new) 16.1 kB 🔴 +16.1 kB 🔴 +4.41 kB 🔴 +3.92 kB
assets/WidgetInputNumber-CUr1sI13.js (removed) 15.8 kB 🟢 -15.8 kB 🟢 -4.26 kB 🟢 -3.8 kB
assets/WidgetInputNumber-DPmsBw5E.js (new) 15.8 kB 🔴 +15.8 kB 🔴 +4.26 kB 🔴 +3.8 kB
assets/commands-BRoxhQgK.js (new) 15.8 kB 🔴 +15.8 kB 🔴 +3.45 kB 🔴 +2.86 kB
assets/commands-D6S8WS13.js (removed) 15.8 kB 🟢 -15.8 kB 🟢 -3.45 kB 🟢 -2.86 kB
assets/commands-BDDnqSnY.js (new) 15.8 kB 🔴 +15.8 kB 🔴 +3.35 kB 🔴 +2.75 kB
assets/commands-xCwqbbnl.js (removed) 15.8 kB 🟢 -15.8 kB 🟢 -3.35 kB 🟢 -2.75 kB
assets/commands-BoYLZfP6.js (new) 15.7 kB 🔴 +15.7 kB 🔴 +3.31 kB 🔴 +2.78 kB
assets/commands-r2j_2QLb.js (removed) 15.7 kB 🟢 -15.7 kB 🟢 -3.31 kB 🟢 -2.77 kB
assets/commands-BQBGh0Ya.js (new) 15.5 kB 🔴 +15.5 kB 🔴 +3.58 kB 🔴 +2.81 kB
assets/commands-D3k2h7MU.js (removed) 15.5 kB 🟢 -15.5 kB 🟢 -3.58 kB 🟢 -2.81 kB
assets/commands-C_sqX4RY.js (new) 14.9 kB 🔴 +14.9 kB 🔴 +3.5 kB 🔴 +2.65 kB
assets/commands-CF_CtN5R.js (removed) 14.9 kB 🟢 -14.9 kB 🟢 -3.5 kB 🟢 -2.65 kB
assets/load3d-BW8SIdmG.js (new) 14.8 kB 🔴 +14.8 kB 🔴 +4.2 kB 🔴 +3.64 kB
assets/load3d-DwzFjEqt.js (removed) 14.8 kB 🟢 -14.8 kB 🟢 -4.19 kB 🟢 -3.64 kB
assets/commands-BaWekgk-.js (new) 14.7 kB 🔴 +14.7 kB 🔴 +3.47 kB 🔴 +2.58 kB
assets/commands-z76J85Ox.js (removed) 14.7 kB 🟢 -14.7 kB 🟢 -3.48 kB 🟢 -2.58 kB
assets/LazyImage-A5coqNc9.js (new) 12.3 kB 🔴 +12.3 kB 🔴 +3.8 kB 🔴 +3.35 kB
assets/LazyImage-Br35X4MU.js (removed) 12.3 kB 🟢 -12.3 kB 🟢 -3.8 kB 🟢 -3.35 kB
assets/AudioPreviewPlayer-DuJEDHXu.js (new) 10.9 kB 🔴 +10.9 kB 🔴 +3.21 kB 🔴 +2.86 kB
assets/AudioPreviewPlayer-DvkhbF9L.js (removed) 10.9 kB 🟢 -10.9 kB 🟢 -3.2 kB 🟢 -2.88 kB
assets/NodeConflictDialogContent-BWXA-6i-.js (new) 10.5 kB 🔴 +10.5 kB 🔴 +2.36 kB 🔴 +2.06 kB
assets/NodeConflictDialogContent-Dk1LWiyQ.js (removed) 10.5 kB 🟢 -10.5 kB 🟢 -2.35 kB 🟢 -2.06 kB
assets/changeTracker-CT-CB8Bb.js (new) 9.4 kB 🔴 +9.4 kB 🔴 +2.9 kB 🔴 +2.56 kB
assets/changeTracker-DcMHEKlA.js (removed) 9.4 kB 🟢 -9.4 kB 🟢 -2.9 kB 🟢 -2.55 kB
assets/nodeTemplates-BUpujL01.js (removed) 9.34 kB 🟢 -9.34 kB 🟢 -3.28 kB 🟢 -2.88 kB
assets/nodeTemplates-CIcX-u65.js (new) 9.34 kB 🔴 +9.34 kB 🔴 +3.28 kB 🔴 +2.88 kB
assets/InviteMemberDialogContent-B925nirp.js (removed) 7.92 kB 🟢 -7.92 kB 🟢 -2.56 kB 🟢 -2.24 kB
assets/InviteMemberDialogContent-DY6jhXlc.js (new) 7.92 kB 🔴 +7.92 kB 🔴 +2.57 kB 🔴 +2.23 kB
assets/WidgetWithControl-Ebdr1r8I.js (new) 7.04 kB 🔴 +7.04 kB 🔴 +2.64 kB 🔴 +2.36 kB
assets/WidgetWithControl-noY0q_EH.js (removed) 7.04 kB 🟢 -7.04 kB 🟢 -2.63 kB 🟢 -2.35 kB
assets/Load3DConfiguration-CRYzotAx.js (removed) 6.36 kB 🟢 -6.36 kB 🟢 -1.93 kB 🟢 -1.69 kB
assets/Load3DConfiguration-CXsTP5-2.js (new) 6.36 kB 🔴 +6.36 kB 🔴 +1.93 kB 🔴 +1.69 kB
assets/MissingNodesContent-38mDNNpE.js (new) 6.15 kB 🔴 +6.15 kB 🔴 +2.09 kB 🔴 +1.86 kB
assets/MissingNodesContent-BU0pT-mu.js (removed) 6.15 kB 🟢 -6.15 kB 🟢 -2.08 kB 🟢 -1.85 kB
assets/CreateWorkspaceDialogContent-CWbQVwAU.js (new) 5.55 kB 🔴 +5.55 kB 🔴 +2 kB 🔴 +1.76 kB
assets/CreateWorkspaceDialogContent-DC7WdtYH.js (removed) 5.55 kB 🟢 -5.55 kB 🟢 -1.99 kB 🟢 -1.75 kB
assets/EditWorkspaceDialogContent-bMphXLdZ.js (removed) 5.35 kB 🟢 -5.35 kB 🟢 -1.95 kB 🟢 -1.7 kB
assets/EditWorkspaceDialogContent-DfDVdU-K.js (new) 5.35 kB 🔴 +5.35 kB 🔴 +1.96 kB 🔴 +1.7 kB
assets/ValueControlPopover-BfSMy6HB.js (removed) 4.93 kB 🟢 -4.93 kB 🟢 -1.78 kB 🟢 -1.58 kB
assets/ValueControlPopover-BZVVDUVd.js (new) 4.93 kB 🔴 +4.93 kB 🔴 +1.78 kB 🔴 +1.59 kB
assets/Preview3d-CEd7ZHY_.js (new) 4.83 kB 🔴 +4.83 kB 🔴 +1.57 kB 🔴 +1.37 kB
assets/Preview3d-Cg1E-WLj.js (removed) 4.83 kB 🟢 -4.83 kB 🟢 -1.57 kB 🟢 -1.37 kB
assets/CancelSubscriptionDialogContent-BU7I27Qy.js (removed) 4.81 kB 🟢 -4.81 kB 🟢 -1.79 kB 🟢 -1.56 kB
assets/CancelSubscriptionDialogContent-DIEcisdF.js (new) 4.81 kB 🔴 +4.81 kB 🔴 +1.79 kB 🔴 +1.57 kB
assets/MissingNodesFooter-DLjOqZdJ.js (removed) 4.81 kB 🟢 -4.81 kB 🟢 -1.78 kB 🟢 -1.58 kB
assets/MissingNodesFooter-kDtHaI4U.js (new) 4.81 kB 🔴 +4.81 kB 🔴 +1.78 kB 🔴 +1.58 kB
assets/AnimationControls-CaZCanJe.js (removed) 4.61 kB 🟢 -4.61 kB 🟢 -1.6 kB 🟢 -1.41 kB
assets/AnimationControls-ti0mlVCp.js (new) 4.61 kB 🔴 +4.61 kB 🔴 +1.6 kB 🔴 +1.41 kB
assets/DeleteWorkspaceDialogContent-Buf1-8oG.js (new) 4.25 kB 🔴 +4.25 kB 🔴 +1.64 kB 🔴 +1.43 kB
assets/DeleteWorkspaceDialogContent-DUd-TSkb.js (removed) 4.25 kB 🟢 -4.25 kB 🟢 -1.64 kB 🟢 -1.42 kB
assets/LeaveWorkspaceDialogContent-D1kD9-Yn.js (removed) 4.08 kB 🟢 -4.08 kB 🟢 -1.58 kB 🟢 -1.37 kB
assets/LeaveWorkspaceDialogContent-Dd3BjYsf.js (new) 4.08 kB 🔴 +4.08 kB 🔴 +1.59 kB 🔴 +1.37 kB
assets/RemoveMemberDialogContent-1sRj55sx.js (removed) 4.06 kB 🟢 -4.06 kB 🟢 -1.53 kB 🟢 -1.33 kB
assets/RemoveMemberDialogContent-CvvSgSYr.js (new) 4.06 kB 🔴 +4.06 kB 🔴 +1.54 kB 🔴 +1.34 kB
assets/RevokeInviteDialogContent-CIasgYJM.js (new) 3.97 kB 🔴 +3.97 kB 🔴 +1.55 kB 🔴 +1.36 kB
assets/RevokeInviteDialogContent-DAUWkNSJ.js (removed) 3.97 kB 🟢 -3.97 kB 🟢 -1.55 kB 🟢 -1.36 kB
assets/WidgetGalleria-0KIS99zo.js (new) 3.61 kB 🔴 +3.61 kB 🔴 +1.4 kB 🔴 +1.26 kB
assets/WidgetGalleria-QnD5GX-o.js (removed) 3.61 kB 🟢 -3.61 kB 🟢 -1.39 kB 🟢 -1.25 kB
assets/Slider-BplQh-9e.js (new) 3.52 kB 🔴 +3.52 kB 🔴 +1.36 kB 🔴 +1.19 kB
assets/Slider-D6pElFCM.js (removed) 3.52 kB 🟢 -3.52 kB 🟢 -1.37 kB 🟢 -1.19 kB
assets/saveMesh-DhwA6yz0.js (new) 3.43 kB 🔴 +3.43 kB 🔴 +1.47 kB 🔴 +1.31 kB
assets/saveMesh-CLvY484a.js (removed) 3.4 kB 🟢 -3.4 kB 🟢 -1.45 kB 🟢 -1.29 kB
assets/WidgetTextarea-Bpv3VZfp.js (new) 3.14 kB 🔴 +3.14 kB 🔴 +1.3 kB 🔴 +1.15 kB
assets/WidgetTextarea-CNKkymLA.js (removed) 3.14 kB 🟢 -3.14 kB 🟢 -1.3 kB 🟢 -1.14 kB
assets/cloudSessionCookie-BjCPt172.js (new) 3.12 kB 🔴 +3.12 kB 🔴 +1.09 kB 🔴 +994 B
assets/cloudSessionCookie-ZVahz6tu.js (removed) 3.12 kB 🟢 -3.12 kB 🟢 -1.09 kB 🟢 -957 B
assets/WidgetImageCompare-B3jINlVY.js (new) 3.1 kB 🔴 +3.1 kB 🔴 +1.15 kB 🔴 +996 B
assets/WidgetImageCompare-BA7xV_Kz.js (removed) 3.1 kB 🟢 -3.1 kB 🟢 -1.15 kB 🟢 -997 B
assets/GlobalToast-C1E6RrnJ.js (new) 2.91 kB 🔴 +2.91 kB 🔴 +1.22 kB 🔴 +1.06 kB
assets/GlobalToast-F6oCz8C7.js (removed) 2.91 kB 🟢 -2.91 kB 🟢 -1.21 kB 🟢 -1.06 kB
assets/WidgetColorPicker-BqmrCeg7.js (new) 2.9 kB 🔴 +2.9 kB 🔴 +1.23 kB 🔴 +1.12 kB
assets/WidgetColorPicker-D6HnwloN.js (removed) 2.9 kB 🟢 -2.9 kB 🟢 -1.23 kB 🟢 -1.11 kB
assets/WidgetMarkdown-C97vcvEN.js (removed) 2.88 kB 🟢 -2.88 kB 🟢 -1.22 kB 🟢 -1.05 kB
assets/WidgetMarkdown-CPEFuqeh.js (new) 2.88 kB 🔴 +2.88 kB 🔴 +1.22 kB 🔴 +1.07 kB
assets/ApiNodesSignInContent-BSaA9BHQ.js (removed) 2.69 kB 🟢 -2.69 kB 🟢 -1.05 kB 🟢 -953 B
assets/ApiNodesSignInContent-BXxLL4Kq.js (new) 2.69 kB 🔴 +2.69 kB 🔴 +1.05 kB 🔴 +916 B
assets/WidgetToggleSwitch-BvHa1rRy.js (new) 2.5 kB 🔴 +2.5 kB 🔴 +1.09 kB 🔴 +981 B
assets/WidgetToggleSwitch-DumzquCf.js (removed) 2.5 kB 🟢 -2.5 kB 🟢 -1.09 kB 🟢 -974 B
assets/ImportFailedNodeContent-4nRCLp8Z.js (new) 2.48 kB 🔴 +2.48 kB 🔴 +973 B 🔴 +829 B
assets/ImportFailedNodeContent-CFc03Tip.js (removed) 2.48 kB 🟢 -2.48 kB 🟢 -972 B 🟢 -828 B
assets/NodeConflictFooter-CU0YpPtv.js (new) 2.37 kB 🔴 +2.37 kB 🔴 +1.03 kB 🔴 +904 B
assets/NodeConflictFooter-DSfiduX0.js (removed) 2.37 kB 🟢 -2.37 kB 🟢 -1.03 kB 🟢 -908 B
assets/MediaVideoTop-CrUCDNPi.js (new) 2.23 kB 🔴 +2.23 kB 🔴 +936 B 🔴 +799 B
assets/MediaVideoTop-MY4C12Xl.js (removed) 2.23 kB 🟢 -2.23 kB 🟢 -936 B 🟢 -798 B
assets/WidgetChart-DwIDuha7.js (new) 2.21 kB 🔴 +2.21 kB 🔴 +951 B 🔴 +824 B
assets/WidgetChart-rk55tEpB.js (removed) 2.21 kB 🟢 -2.21 kB 🟢 -949 B 🟢 -821 B
assets/SubscribeToRun-BS81DdZc.js (removed) 2.2 kB 🟢 -2.2 kB 🟢 -1.01 kB 🟢 -879 B
assets/SubscribeToRun-CaQKvVOj.js (new) 2.2 kB 🔴 +2.2 kB 🔴 +1.01 kB 🔴 +898 B
assets/WidgetLayoutField-BOWhzFLm.js (new) 1.95 kB 🔴 +1.95 kB 🔴 +882 B 🔴 +761 B
assets/WidgetLayoutField-Dr-F4uad.js (removed) 1.95 kB 🟢 -1.95 kB 🟢 -881 B 🟢 -758 B
assets/ImportFailedNodeFooter-DFTOrqnJ.js (new) 1.88 kB 🔴 +1.88 kB 🔴 +867 B 🔴 +755 B
assets/ImportFailedNodeFooter-iwUk9oUP.js (removed) 1.88 kB 🟢 -1.88 kB 🟢 -867 B 🟢 -752 B
assets/WidgetInputText-BMQuA4sv.js (new) 1.85 kB 🔴 +1.85 kB 🔴 +873 B 🔴 +803 B
assets/WidgetInputText-BoC2pNt7.js (removed) 1.85 kB 🟢 -1.85 kB 🟢 -872 B 🟢 -791 B
assets/Media3DTop-68BNrAjP.js (removed) 1.82 kB 🟢 -1.82 kB 🟢 -897 B 🟢 -767 B
assets/Media3DTop-BoSRvGOk.js (new) 1.82 kB 🔴 +1.82 kB 🔴 +897 B 🔴 +765 B
assets/SettingDialogHeader-Bz6ADduk.js (new) 1.8 kB 🔴 +1.8 kB 🔴 +896 B 🔴 +810 B
assets/SettingDialogHeader-Mr3GmxhY.js (removed) 1.8 kB 🟢 -1.8 kB 🟢 -895 B 🟢 -806 B
assets/BaseViewTemplate-BPhntKB3.js (new) 1.78 kB 🔴 +1.78 kB 🔴 +926 B 🔴 +810 B
assets/BaseViewTemplate-DSXMzViN.js (removed) 1.78 kB 🟢 -1.78 kB 🟢 -926 B 🟢 -809 B
assets/MediaImageTop-CfSf55hX.js (removed) 1.75 kB 🟢 -1.75 kB 🟢 -879 B 🟢 -749 B
assets/MediaImageTop-DpNsEU03.js (new) 1.75 kB 🔴 +1.75 kB 🔴 +877 B 🔴 +748 B
assets/CloudRunButtonWrapper-Bd8W4Nr_.js (new) 1.69 kB 🔴 +1.69 kB 🔴 +795 B 🔴 +721 B
assets/CloudRunButtonWrapper-CofxeWQZ.js (removed) 1.69 kB 🟢 -1.69 kB 🟢 -792 B 🟢 -708 B
assets/signInSchema-BrAVmpsG.js (new) 1.53 kB 🔴 +1.53 kB 🔴 +562 B 🔴 +518 B
assets/signInSchema-D5yIaVjp.js (removed) 1.53 kB 🟢 -1.53 kB 🟢 -563 B 🟢 -516 B
assets/MediaAudioTop-Iq5PlzyI.js (removed) 1.43 kB 🟢 -1.43 kB 🟢 -761 B 🟢 -633 B
assets/MediaAudioTop-p4Ev072O.js (new) 1.43 kB 🔴 +1.43 kB 🔴 +760 B 🔴 +631 B
assets/cloudBadges-CLdLXI6t.js (new) 1.38 kB 🔴 +1.38 kB 🔴 +716 B 🔴 +622 B
assets/cloudBadges-DylNG5T8.js (removed) 1.38 kB 🟢 -1.38 kB 🟢 -713 B 🟢 -619 B
assets/cloudSubscription-_WNvSjXX.js (removed) 1.34 kB 🟢 -1.34 kB 🟢 -667 B 🟢 -575 B
assets/cloudSubscription-DqsELBQQ.js (new) 1.34 kB 🔴 +1.34 kB 🔴 +667 B 🔴 +576 B
assets/widgetPropFilter-DyQHILEf.js (new) 1.1 kB 🔴 +1.1 kB 🔴 +509 B 🔴 +448 B
assets/widgetPropFilter-HMrZZpDm.js (removed) 1.1 kB 🟢 -1.1 kB 🟢 -509 B 🟢 -449 B
assets/Load3D-Dev9F4GB.js (new) 1.09 kB 🔴 +1.09 kB 🔴 +506 B 🔴 +453 B
assets/NodeConflictHeader-DNyr6T7i.js (new) 1.09 kB 🔴 +1.09 kB 🔴 +566 B 🔴 +477 B
assets/NodeConflictHeader-DyMP7Pq3.js (removed) 1.09 kB 🟢 -1.09 kB 🟢 -566 B 🟢 -478 B
assets/ImportFailedNodeHeader-BuiKS0Ld.js (removed) 1.08 kB 🟢 -1.08 kB 🟢 -552 B 🟢 -472 B
assets/ImportFailedNodeHeader-iw2hd0OF.js (new) 1.08 kB 🔴 +1.08 kB 🔴 +552 B 🔴 +470 B
assets/Load3D-BwuDZitU.js (removed) 1.05 kB 🟢 -1.05 kB 🟢 -487 B 🟢 -437 B
assets/nightlyBadges-BT9HQbmE.js (removed) 1.02 kB 🟢 -1.02 kB 🟢 -543 B 🟢 -477 B
assets/nightlyBadges-DKUnORsR.js (new) 1.02 kB 🔴 +1.02 kB 🔴 +545 B 🔴 +484 B
assets/Load3dViewerContent-PMQundmK.js (new) 1.01 kB 🔴 +1.01 kB 🔴 +477 B 🔴 +424 B
assets/Load3dViewerContent-B78wmcer.js (removed) 974 B 🟢 -974 B 🟢 -459 B 🟢 -412 B
assets/SubscriptionPanelContentWorkspace-D66cpZrb.js (removed) 945 B 🟢 -945 B 🟢 -446 B 🟢 -392 B
assets/SubscriptionPanelContentWorkspace-DbKVC4gY.js (new) 945 B 🔴 +945 B 🔴 +447 B 🔴 +391 B
assets/SettingDialogContent-AWE44UYh.js (removed) 887 B 🟢 -887 B 🟢 -428 B 🟢 -382 B
assets/SettingDialogContent-Bqs_ul3m.js (new) 887 B 🔴 +887 B 🔴 +429 B 🔴 +381 B
assets/changeTracker-CcqxGEa9.js (new) 772 B 🔴 +772 B 🔴 +392 B 🔴 +346 B
assets/changeTracker-CeMLWdi_.js (removed) 772 B 🟢 -772 B 🟢 -392 B 🟢 -346 B
assets/graphHasMissingNodes-CB7wy5uJ.js (removed) 761 B 🟢 -761 B 🟢 -375 B 🟢 -326 B
assets/graphHasMissingNodes-Clb5h7xo.js (new) 761 B 🔴 +761 B 🔴 +376 B 🔴 +323 B
assets/WidgetLegacy-BJnSPd9R.js (removed) 760 B 🟢 -760 B 🟢 -393 B 🟢 -344 B
assets/WidgetLegacy-DWSYoEZA.js (new) 760 B 🔴 +760 B 🔴 +395 B 🔴 +348 B
assets/previousFullPath-B7z583a8.js (removed) 665 B 🟢 -665 B 🟢 -368 B 🟢 -320 B
assets/previousFullPath-D7OXsRO9.js (new) 665 B 🔴 +665 B 🔴 +368 B 🔴 +317 B
assets/constants-BQ60oUwg.js (new) 579 B 🔴 +579 B 🔴 +257 B 🔴 +232 B
assets/WidgetInputNumber-BRWFjKS4.js (new) 392 B 🔴 +392 B 🔴 +231 B 🔴 +214 B
assets/WidgetInputNumber-CyI722_8.js (removed) 392 B 🟢 -392 B 🟢 -231 B 🟢 -214 B
assets/SettingDialogHeader-BdLvQXQT.js (new) 345 B 🔴 +345 B 🔴 +206 B 🔴 +200 B
assets/SettingDialogHeader-DpJlZ9HL.js (removed) 345 B 🟢 -345 B 🟢 -209 B 🟢 -198 B
assets/i18n-Ckqa-uUF.js (removed) 199 B 🟢 -199 B 🟢 -160 B 🟢 -138 B
assets/i18n-DSQF-SGt.js (new) 199 B 🔴 +199 B 🔴 +161 B 🔴 +139 B
assets/auto-zCGpezkl.js 1.7 kB 1.7 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/comfy-logo-single-CzGozBag.js 198 B 198 B ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/ComfyOrgHeader-Cb9w2YJJ.js 909 B 909 B ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/MissingNodesHeader-BzeTTUc-.js 1.09 kB 1.09 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/OBJLoader2WorkerModule-DTMpvldF.js 109 kB 109 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/PanelTemplate-CIz8rKRB.js 1.2 kB 1.2 kB ⚪ 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-CCewhfpC.js 8.94 kB 8.94 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/src-Q7PYLmIC.js 251 B 251 B ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/telemetry-C9AnI0k5.js 226 B 226 B ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/types-BYdQ-wbS.js 245 B 245 B ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/widget-DZ2L2V2o.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/widgetTypes-CYQJBz0f.js 393 B 393 B ⚪ 0 B ⚪ 0 B ⚪ 0 B

Status: 116 added / 115 removed

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: 4

🤖 Fix all issues with AI agents
In `@src/extensions/core/load3d/constants.ts`:
- Around line 17-18: Add a new constant VALIDATED_MESH_EXTENSIONS_ACCEPT in the
same module as SUPPORTED_EXTENSIONS_ACCEPT that joins only the security-approved
mesh extensions (".obj", ".stl", ".ply", ".spz"); do not modify
SUPPORTED_EXTENSIONS_ACCEPT (leave it for load3d.ts). Then update
WidgetSelectDropdown.vue to import and use VALIDATED_MESH_EXTENSIONS_ACCEPT in
the acceptTypes computed property for the 'mesh' case (instead of
SUPPORTED_EXTENSIONS_ACCEPT), while leaving load3d.ts imports of
SUPPORTED_EXTENSIONS_ACCEPT unchanged.

In
`@src/renderer/extensions/vueNodes/widgets/components/WidgetSelectDropdown.vue`:
- Around line 298-299: Add the missing i18n key
"widgets.uploadSelect.placeholderMesh" by inserting a new entry into the English
locale's uploadSelect object (same level as "placeholder" and
"placeholderImage"), supply an appropriate string value for the mesh
placeholder, and ensure the locale JSON remains valid (no trailing commas) so
the t('widgets.uploadSelect.placeholderMesh') lookup in WidgetSelectDropdown.vue
resolves.
- Around line 324-325: The dropdown case for 'mesh' returns
SUPPORTED_EXTENSIONS_ACCEPT which currently includes formats (.gltf, .glb, .fbx,
.splat, .ksplat) that were excluded by the security review; update the
client-side accept list to match the validated subset or ensure server-side
accepts/validates the extra types. Change SUPPORTED_EXTENSIONS_ACCEPT to only
'.obj,.stl,.ply,.spz' (or alternatively adjust the 'mesh' case to return a new
constant like VALIDATED_MESH_ACCEPT) and confirm any server upload handler
(e.g., mesh upload validation code) is updated to accept and securely validate
any additional formats if you choose to keep them.
- Around line 375-376: The uploadSubfolder value (props.uploadSubfolder) is
appended to the FormData without client-side path-traversal validation; add the
same validation used by assetFilenameSchema (the regex that forbids '..' and
leading '/') before appending. In WidgetSelectDropdown.vue, either import/reuse
the assetFilenameSchema validation function or replicate the exact regex check
and if the value fails, block submission (or clear the field) and surface a
validation error to the user; only append to body.append('subfolder',
props.uploadSubfolder) when the value passes that check.
🧹 Nitpick comments (1)
src/locales/en/main.json (1)

1804-1804: Hardcoded extension list duplicates SUPPORTED_EXTENSIONS — consider generating dynamically.

This string manually lists all supported extensions, duplicating the SUPPORTED_EXTENSIONS set in constants.ts. If extensions are added/removed in the future, this message could drift out of sync. Consider using an i18n interpolation parameter to pass the extensions dynamically, e.g.:

"unsupportedFileType": "Unsupported file type (supports {extensions})"

Then pass SUPPORTED_EXTENSIONS_ACCEPT (or a formatted version) as the extensions parameter at the call site.

Comment on lines +298 to +299
case 'mesh':
return t('widgets.uploadSelect.placeholderMesh')
Copy link
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🔴 Critical

🧩 Analysis chain

🏁 Script executed:

rg -n 'placeholderMesh' src/locales/

Repository: Comfy-Org/ComfyUI_frontend

Length of output: 52


🏁 Script executed:

rg -A 2 -B 2 'uploadSelect' src/locales/en/main.json

Repository: Comfy-Org/ComfyUI_frontend

Length of output: 239


Add missing i18n key widgets.uploadSelect.placeholderMesh to src/locales/en/main.json.

The key referenced in the code does not exist in the locale file. The uploadSelect section currently only contains placeholder and placeholderImage keys. Add the placeholderMesh entry to the uploadSelect object in src/locales/en/main.json.

🤖 Prompt for AI Agents
In `@src/renderer/extensions/vueNodes/widgets/components/WidgetSelectDropdown.vue`
around lines 298 - 299, Add the missing i18n key
"widgets.uploadSelect.placeholderMesh" by inserting a new entry into the English
locale's uploadSelect object (same level as "placeholder" and
"placeholderImage"), supply an appropriate string value for the mesh
placeholder, and ensure the locale JSON remains valid (no trailing commas) so
the t('widgets.uploadSelect.placeholderMesh') lookup in WidgetSelectDropdown.vue
resolves.

let cleanPath = modelPath.trim()
let forcedType: 'output' | 'input' | undefined

if (cleanPath.endsWith('[output]')) {
Copy link
Contributor

Choose a reason for hiding this comment

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

I don't love that we have a magic suffix...
(Not introduced in this PR, just noting)

@DrJKL DrJKL assigned jtydhr88 and unassigned DrJKL Feb 10, 2026
@jtydhr88 jtydhr88 merged commit 9ecbb3a into main Feb 10, 2026
29 checks passed
@jtydhr88 jtydhr88 deleted the feat/3d-dropdown branch February 10, 2026 20:36
jtydhr88 added a commit that referenced this pull request Feb 10, 2026
## Summary
- Refactor getModelUrl to use const instead of let
- add missing language key

improve for #8765

┆Issue is synchronized with this [Notion
page](https://www.notion.so/PR-8779-fix-address-review-nits-in-load3d-3036d73d36508183af11c5e9bc545650)
by [Unito](https://www.unito.io)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants