Skip to content

Conversation

@benceruleanlu
Copy link
Member

@benceruleanlu benceruleanlu commented Nov 24, 2025

Summary

In cloud distribution, completed jobs now show "Finished in Xh Ym Zs" as the primary text instead of the filename.

  • Uses formatDuration to display time as 1h 30m 45s, 30m 45s, or 45s
  • Gated with isCloud - non-cloud continues to show filename
  • Added i18n key queue.completedIn for localization

Filename is not fetchable right now in cloud. This is what design wanted as the alternative.

image

In cloud distribution, completed jobs now show "Finished in Xh Ym Zs"
instead of the filename as the primary text. Non-cloud continues to
show the filename.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
@dosubot dosubot bot added the size:S This PR changes 10-29 lines, ignoring generated files. label Nov 24, 2025
@coderabbitai
Copy link

coderabbitai bot commented Nov 24, 2025

📝 Walkthrough

Walkthrough

The changes add cloud-aware rendering for completed jobs in the queue. When a job finishes in a cloud distribution context, the display shows "Finished in {duration}" instead of the filename or title. The isCloud flag is threaded from the composable through the display utilities, with a new translation entry supporting the feature.

Changes

Cohort / File(s) Summary
Cloud-aware job completion display
src/composables/queue/useJobList.ts, src/utils/queueDisplay.ts, src/locales/en/main.json
Added isCloud?: boolean to BuildJobDisplayCtx type. Updated completion state rendering to show localized "Finished in {duration}" when isCloud is true, falling back to filename or title otherwise. Threaded isCloud through composable to display utilities. Added translation entry for completed job duration.
✨ 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/cloud-completed-duration-text

📜 Recent review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between df373af and 3c8b4b6.

📒 Files selected for processing (3)
  • src/composables/queue/useJobList.ts (2 hunks)
  • src/locales/en/main.json (1 hunks)
  • src/utils/queueDisplay.ts (3 hunks)
🧰 Additional context used
📓 Path-based instructions (14)
**/*.{vue,ts,tsx}

📄 CodeRabbit inference engine (.cursorrules)

**/*.{vue,ts,tsx}: Leverage VueUse functions for performance-enhancing utilities
Use vue-i18n in Composition API for any string literals and place new translation entries in src/locales/en/main.json

Files:

  • src/utils/queueDisplay.ts
  • src/composables/queue/useJobList.ts
**/*.{ts,tsx,js}

📄 CodeRabbit inference engine (.cursorrules)

Use es-toolkit for utility functions

Files:

  • src/utils/queueDisplay.ts
  • src/composables/queue/useJobList.ts
**/*.{ts,tsx}

📄 CodeRabbit inference engine (.cursorrules)

Use TypeScript for type safety

**/*.{ts,tsx}: Never use any type - use proper TypeScript types
Never use as any type assertions - fix the underlying type issue

Files:

  • src/utils/queueDisplay.ts
  • src/composables/queue/useJobList.ts
**/*.{ts,tsx,js,vue}

📄 CodeRabbit inference engine (.cursorrules)

Implement proper error handling in components and services

**/*.{ts,tsx,js,vue}: Use 2-space indentation, single quotes, no semicolons, and maintain 80-character line width as configured in .prettierrc
Organize imports by sorting and grouping by plugin, and run pnpm format before committing

Files:

  • src/utils/queueDisplay.ts
  • src/composables/queue/useJobList.ts
src/**/*.{vue,ts}

📄 CodeRabbit inference engine (.github/copilot-instructions.md)

src/**/*.{vue,ts}: Leverage VueUse functions for performance-enhancing styles
Implement proper error handling
Use vue-i18n in composition API for any string literals. Place new translation entries in src/locales/en/main.json

Files:

  • src/utils/queueDisplay.ts
  • src/composables/queue/useJobList.ts
src/**/*.ts

📄 CodeRabbit inference engine (.github/copilot-instructions.md)

src/**/*.ts: Use es-toolkit for utility functions
Use TypeScript for type safety

Files:

  • src/utils/queueDisplay.ts
  • src/composables/queue/useJobList.ts
**/*.{ts,tsx,js,jsx,vue}

📄 CodeRabbit inference engine (CLAUDE.md)

Use camelCase for variable and setting names in TypeScript/Vue files

Files:

  • src/utils/queueDisplay.ts
  • src/composables/queue/useJobList.ts
**/*.{ts,tsx,vue}

📄 CodeRabbit inference engine (CLAUDE.md)

**/*.{ts,tsx,vue}: Use const settingStore = useSettingStore() and settingStore.get('Comfy.SomeSetting') to retrieve settings in TypeScript/Vue files
Use await settingStore.set('Comfy.SomeSetting', newValue) to update settings in TypeScript/Vue files
Check server capabilities using api.serverSupportsFeature('feature_name') before using enhanced features
Use api.getServerFeature('config_name', defaultValue) to retrieve server feature configuration

Enforce ESLint rules for Vue + TypeScript including: no floating promises, no unused imports, and i18n raw text restrictions in templates

Files:

  • src/utils/queueDisplay.ts
  • src/composables/queue/useJobList.ts
**/*.ts

📄 CodeRabbit inference engine (CLAUDE.md)

**/*.ts: Define dynamic setting defaults using runtime context with functions in settings configuration
Use defaultsByInstallVersion property for gradual feature rollout based on version in settings configuration

Files:

  • src/utils/queueDisplay.ts
  • src/composables/queue/useJobList.ts
src/**/*.{ts,tsx,vue}

📄 CodeRabbit inference engine (src/CLAUDE.md)

src/**/*.{ts,tsx,vue}: Sanitize HTML with DOMPurify to prevent XSS attacks
Avoid using @ts-expect-error; use proper TypeScript types instead
Use es-toolkit for utility functions instead of other utility libraries
Implement proper TypeScript types throughout the codebase

Files:

  • src/utils/queueDisplay.ts
  • src/composables/queue/useJobList.ts
src/**/*.{vue,ts,tsx}

📄 CodeRabbit inference engine (src/CLAUDE.md)

Follow Vue 3 composition API style guide

Files:

  • src/utils/queueDisplay.ts
  • src/composables/queue/useJobList.ts
src/**/{services,composables}/**/*.{ts,tsx}

📄 CodeRabbit inference engine (src/CLAUDE.md)

src/**/{services,composables}/**/*.{ts,tsx}: Use api.apiURL() for backend endpoints instead of constructing URLs directly
Use api.fileURL() for static file access instead of constructing URLs directly

Files:

  • src/composables/queue/useJobList.ts
src/**/{composables,components}/**/*.{ts,tsx,vue}

📄 CodeRabbit inference engine (src/CLAUDE.md)

Clean up subscriptions in state management to prevent memory leaks

Files:

  • src/composables/queue/useJobList.ts
src/**/{components,composables}/**/*.{ts,tsx,vue}

📄 CodeRabbit inference engine (src/CLAUDE.md)

Use vue-i18n for ALL user-facing strings by adding them to src/locales/en/main.json

Files:

  • src/composables/queue/useJobList.ts
🧬 Code graph analysis (1)
src/utils/queueDisplay.ts (1)
packages/shared-frontend-utils/src/formatUtil.ts (1)
  • formatDuration (455-476)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (5)
  • GitHub Check: deploy-and-comment
  • GitHub Check: collect
  • GitHub Check: test
  • GitHub Check: setup
  • GitHub Check: lint-and-format
🔇 Additional comments (6)
src/locales/en/main.json (1)

981-981: LGTM! Translation entry is well-structured.

The new queue.completedIn key follows i18n best practices with a clear, descriptive placeholder {duration} that will be populated by the formatDuration utility.

src/composables/queue/useJobList.ts (2)

6-6: Clean import of cloud distribution flag.

The isCloud flag is appropriately imported from the platform distribution module for runtime distribution detection.


261-262: Proper threading of cloud context.

The isCloud flag is correctly passed into buildJobDisplay to enable cloud-aware completion text rendering.

src/utils/queueDisplay.ts (3)

3-3: Appropriate utility import.

The formatDuration utility correctly formats milliseconds into human-readable duration strings like "1h 30m 45s".


15-16: Well-typed cloud context flag.

The optional isCloud field properly extends the display context for distribution-aware rendering.


128-136: Cloud-aware completion display is correctly implemented.

The branching logic properly handles both cloud and non-cloud scenarios:

  • Cloud: Shows user-friendly "Finished in {duration}" text using the new i18n key
  • Non-cloud: Maintains existing behavior (filename → title fallback)

The fallback to 0 for undefined executionTime is safe since formatDuration(0) returns '0s'. The comment on line 129 clearly documents the intent.


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

@github-actions
Copy link

github-actions bot commented Nov 24, 2025

🎨 Storybook Build Status

Build completed successfully!

⏰ Completed at: 11/24/2025, 09:27:21 PM UTC

🔗 Links


🎉 Your Storybook is ready for review!

@github-actions
Copy link

github-actions bot commented Nov 24, 2025

🎭 Playwright Test Results

⚠️ Tests passed with flaky tests

⏰ Completed at: 11/24/2025, 09:38:09 PM UTC

📈 Summary

  • Total Tests: 496
  • Passed: 484 ✅
  • Failed: 0
  • Flaky: 3 ⚠️
  • Skipped: 9 ⏭️

📊 Test Reports by Browser

  • chromium: View Report • ✅ 475 / ❌ 0 / ⚠️ 3 / ⏭️ 9
  • chromium-2x: View Report • ✅ 2 / ❌ 0 / ⚠️ 0 / ⏭️ 0
  • chromium-0.5x: View Report • ✅ 1 / ❌ 0 / ⚠️ 0 / ⏭️ 0
  • mobile-chrome: View Report • ✅ 6 / ❌ 0 / ⚠️ 0 / ⏭️ 0

🎉 Click on the links above to view detailed test results for each browser configuration.

@benceruleanlu
Copy link
Member Author

@codex review

@github-actions
Copy link

Bundle Size Report

Summary

  • Raw size: 14.2 MB baseline 14.2 MB — 🔴 +232 B
  • Gzip: 2.84 MB baseline 2.84 MB — 🔴 +86 B
  • Brotli: 2.22 MB baseline 2.23 MB — 🟢 -231 B
  • Bundles: 92 current • 92 baseline • 38 added / 38 removed

Category Glance
Graph Workspace 🔴 +167 B (942 kB) · App Entry Points 🔴 +65 B (3.18 MB) · Vendor & Third-Party ⚪ 0 B (5.7 MB) · Other ⚪ 0 B (3.87 MB) · Panels & Settings ⚪ 0 B (306 kB) · UI Components ⚪ 0 B (141 kB) · + 3 more

Per-category breakdown
App Entry Points — 3.18 MB (baseline 3.18 MB) • 🔴 +65 B

Main entry bundles and manifests

File Before After Δ Raw Δ Gzip Δ Brotli
assets/index-DBALvXke.js (new) 2.95 MB 🔴 +2.95 MB 🔴 +615 kB 🔴 +467 kB
assets/index-CNvE512m.js (removed) 2.95 MB 🟢 -2.95 MB 🟢 -615 kB 🟢 -467 kB
assets/index-Bkewtmgb.js (removed) 228 kB 🟢 -228 kB 🟢 -48.9 kB 🟢 -40.3 kB
assets/index-BT5Z7lp5.js (new) 228 kB 🔴 +228 kB 🔴 +48.9 kB 🔴 +40.3 kB
assets/index-CEt_dnsC.js (new) 345 B 🔴 +345 B 🔴 +243 B 🔴 +210 B
assets/index-mr1ahtAb.js (removed) 345 B 🟢 -345 B 🟢 -246 B 🟢 -233 B

Status: 3 added / 3 removed

Graph Workspace — 942 kB (baseline 942 kB) • 🔴 +167 B

Graph editor runtime, canvas, workflow orchestration

File Before After Δ Raw Δ Gzip Δ Brotli
assets/GraphView-CKvXjVS-.js (new) 942 kB 🔴 +942 kB 🔴 +182 kB 🔴 +140 kB
assets/GraphView-CKnO0PRK.js (removed) 942 kB 🟢 -942 kB 🟢 -182 kB 🟢 -140 kB

Status: 1 added / 1 removed

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

Top-level views, pages, and routed surfaces

File Before After Δ Raw Δ Gzip Δ Brotli
assets/UserSelectView-BOIt49qo.js (new) 7.97 kB 🔴 +7.97 kB 🔴 +2.43 kB 🔴 +2.14 kB
assets/UserSelectView-KE9oG5ga.js (removed) 7.97 kB 🟢 -7.97 kB 🟢 -2.43 kB 🟢 -2.14 kB

Status: 1 added / 1 removed

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

Configuration panels, inspectors, and settings screens

File Before After Δ Raw Δ Gzip Δ Brotli
assets/CreditsPanel-CeND1eom.js (new) 22.9 kB 🔴 +22.9 kB 🔴 +5.46 kB 🔴 +4.78 kB
assets/CreditsPanel-DCzyBs6P.js (removed) 22.9 kB 🟢 -22.9 kB 🟢 -5.46 kB 🟢 -4.77 kB
assets/KeybindingPanel-BtdT6i-e.js (removed) 15.1 kB 🟢 -15.1 kB 🟢 -3.73 kB 🟢 -3.3 kB
assets/KeybindingPanel-DVfmAepF.js (new) 15.1 kB 🔴 +15.1 kB 🔴 +3.73 kB 🔴 +3.29 kB
assets/ExtensionPanel-C7Jb6Tiy.js (new) 11.9 kB 🔴 +11.9 kB 🔴 +2.79 kB 🔴 +2.45 kB
assets/ExtensionPanel-DVFj8U5S.js (removed) 11.9 kB 🟢 -11.9 kB 🟢 -2.79 kB 🟢 -2.45 kB
assets/AboutPanel-B7zip_4R.js (new) 10.1 kB 🔴 +10.1 kB 🔴 +2.62 kB 🔴 +2.31 kB
assets/AboutPanel-BcfUljIW.js (removed) 10.1 kB 🟢 -10.1 kB 🟢 -2.62 kB 🟢 -2.31 kB
assets/ServerConfigPanel-C4f309gG.js (new) 8.02 kB 🔴 +8.02 kB 🔴 +2.12 kB 🔴 +1.88 kB
assets/ServerConfigPanel-M0ELfEAd.js (removed) 8.02 kB 🟢 -8.02 kB 🟢 -2.12 kB 🟢 -1.88 kB
assets/UserPanel-Coz6F5aR.js (removed) 7.74 kB 🟢 -7.74 kB 🟢 -2.02 kB 🟢 -1.77 kB
assets/UserPanel-Rszz8-Yl.js (new) 7.74 kB 🔴 +7.74 kB 🔴 +2.03 kB 🔴 +1.77 kB
assets/settings-BXTtSH4O.js 33.3 kB 33.3 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-C9Pzn-NG.js 25.2 kB 25.2 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-CCy2fA_h.js 27.3 kB 27.3 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-CQpqEFfl.js 26.6 kB 26.6 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-DHcnxypw.js 21.7 kB 21.7 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-DhFTK9fY.js 25.1 kB 25.1 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-DlT4t_ui.js 25.9 kB 25.9 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-DRgSrIdD.js 24.2 kB 24.2 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-tjkeqiZq.js 21.1 kB 21.1 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B

Status: 6 added / 6 removed

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

Reusable component library chunks

File Before After Δ Raw Δ Gzip Δ Brotli
assets/Load3D.vue_vue_type_script_setup_true_lang-0T8OCoBN.js (new) 53.9 kB 🔴 +53.9 kB 🔴 +8.43 kB 🔴 +7.23 kB
assets/Load3D.vue_vue_type_script_setup_true_lang-MKpn-Hoz.js (removed) 53.9 kB 🟢 -53.9 kB 🟢 -8.43 kB 🟢 -7.23 kB
assets/WidgetSelect.vue_vue_type_script_setup_true_lang-4-XKuHDz.js (new) 48 kB 🔴 +48 kB 🔴 +10.3 kB 🔴 +8.91 kB
assets/WidgetSelect.vue_vue_type_script_setup_true_lang-DnpblL0S.js (removed) 48 kB 🟢 -48 kB 🟢 -10.3 kB 🟢 -8.94 kB
assets/WidgetInputNumber.vue_vue_type_script_setup_true_lang-C3tc96U4.js (new) 12.7 kB 🔴 +12.7 kB 🔴 +3.3 kB 🔴 +2.92 kB
assets/WidgetInputNumber.vue_vue_type_script_setup_true_lang-CSDSYAxe.js (removed) 12.7 kB 🟢 -12.7 kB 🟢 -3.3 kB 🟢 -2.92 kB
assets/ComfyQueueButton-CixyimNv.js (new) 9.22 kB 🔴 +9.22 kB 🔴 +2.5 kB 🔴 +2.2 kB
assets/ComfyQueueButton-L1i_ikh-.js (removed) 9.22 kB 🟢 -9.22 kB 🟢 -2.5 kB 🟢 -2.2 kB
assets/WidgetLayoutField.vue_vue_type_script_setup_true_lang-C-OUJw0T.js (new) 2.15 kB 🔴 +2.15 kB 🔴 +802 B 🔴 +702 B
assets/WidgetLayoutField.vue_vue_type_script_setup_true_lang-DGYlg-k0.js (removed) 2.15 kB 🟢 -2.15 kB 🟢 -800 B 🟢 -691 B
assets/MediaTitle.vue_vue_type_script_setup_true_lang-CQNpN7rG.js (removed) 848 B 🟢 -848 B 🟢 -473 B 🟢 -415 B
assets/MediaTitle.vue_vue_type_script_setup_true_lang-F_9kw2bf.js (new) 848 B 🔴 +848 B 🔴 +473 B 🔴 +422 B
assets/LazyImage.vue_vue_type_script_setup_true_lang-Wi-CcgaU.js 10.7 kB 10.7 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/UserAvatar.vue_vue_type_script_setup_true_lang-D2s8tnS2.js 1.26 kB 1.26 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetButton-CtnTx0SP.js 1.72 kB 1.72 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B

Status: 6 added / 6 removed

Data & Services — 12.5 kB (baseline 12.5 kB) • ⚪ 0 B

Stores, services, APIs, and repositories

File Before After Δ Raw Δ Gzip Δ Brotli
assets/keybindingService-CKMoAuaG.js (new) 7.51 kB 🔴 +7.51 kB 🔴 +1.83 kB 🔴 +1.58 kB
assets/keybindingService-D7TRmkkX.js (removed) 7.51 kB 🟢 -7.51 kB 🟢 -1.84 kB 🟢 -1.58 kB
assets/audioService-Bm1n9Np2.js (new) 2.2 kB 🔴 +2.2 kB 🔴 +961 B 🔴 +820 B
assets/audioService-r_h9jGAX.js (removed) 2.2 kB 🟢 -2.2 kB 🟢 -964 B 🟢 -829 B
assets/serverConfigStore-D2N-YjtJ.js 2.79 kB 2.79 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B

Status: 2 added / 2 removed

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

Helpers, composables, and utility bundles

File Before After Δ Raw Δ Gzip Δ Brotli
assets/audioUtils-BQY6l0ij.js (removed) 1.41 kB 🟢 -1.41 kB 🟢 -651 B 🟢 -542 B
assets/audioUtils-D1EaQh2I.js (new) 1.41 kB 🔴 +1.41 kB 🔴 +652 B 🔴 +543 B
assets/mathUtil-CTARWQ-l.js 1.07 kB 1.07 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeFilterUtil-CXKCRJ-m.js 460 B 460 B ⚪ 0 B ⚪ 0 B ⚪ 0 B

Status: 1 added / 1 removed

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

External libraries and shared vendor chunks

File Before After Δ Raw Δ Gzip Δ Brotli
assets/vendor-other-OCBGbKU2.js 3.59 MB 3.59 MB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-primevue-PESgPnbc.js 517 B 517 B ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-three-aR6ntw5X.js 1.37 MB 1.37 MB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-tiptap-CmuD0u4q.js 232 kB 232 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-vue-DhKsTD0i.js 92.6 kB 92.6 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-xterm-BZLod3g9.js 407 kB 407 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
Other — 3.87 MB (baseline 3.87 MB) • ⚪ 0 B

Bundles that do not match a named category

File Before After Δ Raw Δ Gzip Δ Brotli
assets/WidgetRecordAudio-BfBLk-lp.js (removed) 21.9 kB 🟢 -21.9 kB 🟢 -5.52 kB 🟢 -4.88 kB
assets/WidgetRecordAudio-D1eQjGuO.js (new) 21.9 kB 🔴 +21.9 kB 🔴 +5.52 kB 🔴 +4.88 kB
assets/AudioPreviewPlayer-COcQCqwb.js (new) 14.9 kB 🔴 +14.9 kB 🔴 +3.69 kB 🔴 +3.29 kB
assets/AudioPreviewPlayer-DqLZ38bT.js (removed) 14.9 kB 🟢 -14.9 kB 🟢 -3.69 kB 🟢 -3.3 kB
assets/WidgetGalleria-DcSSW1WS.js (new) 5.56 kB 🔴 +5.56 kB 🔴 +1.74 kB 🔴 +1.54 kB
assets/WidgetGalleria-DoAlXBDl.js (removed) 5.56 kB 🟢 -5.56 kB 🟢 -1.74 kB 🟢 -1.54 kB
assets/WidgetColorPicker-CUiU_zko.js (new) 4.87 kB 🔴 +4.87 kB 🔴 +1.69 kB 🔴 +1.48 kB
assets/WidgetColorPicker-zQlf9p12.js (removed) 4.87 kB 🟢 -4.87 kB 🟢 -1.69 kB 🟢 -1.48 kB
assets/WidgetMarkdown-C_u80NNV.js (removed) 4.64 kB 🟢 -4.64 kB 🟢 -1.62 kB 🟢 -1.41 kB
assets/WidgetMarkdown-WHSFhT9Z.js (new) 4.64 kB 🔴 +4.64 kB 🔴 +1.62 kB 🔴 +1.42 kB
assets/WidgetAudioUI-DKiOoWip.js (new) 4.33 kB 🔴 +4.33 kB 🔴 +1.44 kB 🔴 +1.29 kB
assets/WidgetAudioUI-DT2ynruD.js (removed) 4.33 kB 🟢 -4.33 kB 🟢 -1.44 kB 🟢 -1.28 kB
assets/WidgetTextarea-BnMmRkC9.js (removed) 4.03 kB 🟢 -4.03 kB 🟢 -1.34 kB 🟢 -1.18 kB
assets/WidgetTextarea-DiTKNo3y.js (new) 4.03 kB 🔴 +4.03 kB 🔴 +1.34 kB 🔴 +1.18 kB
assets/WidgetInputText-ChivYhdZ.js (new) 3.45 kB 🔴 +3.45 kB 🔴 +1.23 kB 🔴 +1.09 kB
assets/WidgetInputText-vmzfkZFx.js (removed) 3.45 kB 🟢 -3.45 kB 🟢 -1.23 kB 🟢 -1.09 kB
assets/WidgetToggleSwitch-DCytZycR.js (removed) 3.23 kB 🟢 -3.23 kB 🟢 -1.14 kB 🟢 -1.01 kB
assets/WidgetToggleSwitch-qlSy_tOc.js (new) 3.23 kB 🔴 +3.23 kB 🔴 +1.14 kB 🔴 +1.01 kB
assets/MediaImageBottom-BlZgXVKp.js (new) 3.05 kB 🔴 +3.05 kB 🔴 +1.05 kB 🔴 +913 B
assets/MediaImageBottom-CZt4IxyV.js (removed) 3.05 kB 🟢 -3.05 kB 🟢 -1.05 kB 🟢 -918 B
assets/MediaAudioBottom-C4YiELFp.js (removed) 3 kB 🟢 -3 kB 🟢 -1.05 kB 🟢 -926 B
assets/MediaAudioBottom-DeSZg4bH.js (new) 3 kB 🔴 +3 kB 🔴 +1.05 kB 🔴 +927 B
assets/Media3DTop-BuCCKc64.js (removed) 3 kB 🟢 -3 kB 🟢 -1.08 kB 🟢 -918 B
assets/Media3DTop-DJbG03q9.js (new) 3 kB 🔴 +3 kB 🔴 +1.08 kB 🔴 +912 B
assets/MediaVideoBottom-CRqiWiNS.js (new) 3 kB 🔴 +3 kB 🔴 +1.05 kB 🔴 +926 B
assets/MediaVideoBottom-fep0jwyo.js (removed) 3 kB 🟢 -3 kB 🟢 -1.05 kB 🟢 -908 B
assets/Media3DBottom-BO-ICt-3.js (removed) 2.98 kB 🟢 -2.98 kB 🟢 -1.04 kB 🟢 -931 B
assets/Media3DBottom-C08hyJDt.js (new) 2.98 kB 🔴 +2.98 kB 🔴 +1.04 kB 🔴 +925 B
assets/WidgetSelect-CPl-gc8N.js (removed) 2.17 kB 🟢 -2.17 kB 🟢 -672 B 🟢 -576 B
assets/WidgetSelect-RLFR_4fY.js (new) 2.17 kB 🔴 +2.17 kB 🔴 +676 B 🔴 +577 B
assets/WidgetInputNumber-DnVixbxE.js (removed) 2.12 kB 🟢 -2.12 kB 🟢 -663 B 🟢 -556 B
assets/WidgetInputNumber-mogFtfg2.js (new) 2.12 kB 🔴 +2.12 kB 🔴 +661 B 🔴 +553 B
assets/Load3D-C_Xs-0qj.js (removed) 1.94 kB 🟢 -1.94 kB 🟢 -598 B 🟢 -498 B
assets/Load3D-C9RDafhB.js (new) 1.94 kB 🔴 +1.94 kB 🔴 +597 B 🔴 +500 B
assets/WidgetLegacy-_b-CRNJH.js (new) 1.88 kB 🔴 +1.88 kB 🔴 +562 B 🔴 +472 B
assets/WidgetLegacy-Ba-tdq0O.js (removed) 1.88 kB 🟢 -1.88 kB 🟢 -561 B 🟢 -471 B
assets/commands-_s-RvhJR.js 13.6 kB 13.6 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-BuUILW6P.js 13 kB 13 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-BV4R6fLx.js 14.9 kB 14.9 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-CLwPdnT6.js 14.2 kB 14.2 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-CWMchBmd.js 15.9 kB 15.9 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-DazTQhtc.js 12.9 kB 12.9 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-DmWrOe93.js 13.7 kB 13.7 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-DwiH7Kr6.js 13.8 kB 13.8 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-mS3LCNPn.js 14.5 kB 14.5 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-5lOBdqcC.js 84.5 kB 84.5 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-BOCuaVpE.js 73.4 kB 73.4 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-ClrEFGUz.js 72.4 kB 72.4 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-CyNU0iQX.js 99.3 kB 99.3 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-D7gwLxft.js 114 kB 114 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-DC8o4BCt.js 86.8 kB 86.8 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-DKiesCV4.js 94.3 kB 94.3 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-Hq2q-OtB.js 83.6 kB 83.6 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-USAlAlnj.js 82 kB 82 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/MediaAudioTop-RTI8pWy9.js 1.42 kB 1.42 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/MediaImageTop-DlKHfEAA.js 1.68 kB 1.68 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/MediaVideoTop-BB0lT7C5.js 2.7 kB 2.7 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-_Px5dSNW.js 306 kB 306 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-7z21KPoS.js 285 kB 285 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-BWKZzBPK.js 346 kB 346 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-CGbgH4Yl.js 320 kB 320 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-CjjjdWkV.js 313 kB 313 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-CVrNtxvj.js 288 kB 288 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-DLRSA0IK.js 309 kB 309 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-DQV2gnwA.js 372 kB 372 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-ofqLG5vz.js 310 kB 310 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetChart-rDmYEWg5.js 2.39 kB 2.39 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetImageCompare-Ds3K3ULR.js 2.15 kB 2.15 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/widgetPropFilter-BIbGSUAt.js 1.28 kB 1.28 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B

Status: 18 added / 18 removed

@chatgpt-codex-connector
Copy link

Codex Review: Didn't find any major issues. Already looking forward to the next diff.

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@DrJKL DrJKL added the preview label Nov 24, 2025
Copy link
Contributor

@christian-byrne christian-byrne left a comment

Choose a reason for hiding this comment

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

LGTM but does the isCloud need to be part of the job context? I guess if we eventually allow switching between desktop and cloud? Otherwise it might be simpler to just use as a global variable.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

preview size:S This PR changes 10-29 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants