Skip to content

Conversation

@benceruleanlu
Copy link
Member

@benceruleanlu benceruleanlu commented Nov 1, 2025

Summary

  • Add comprehensive telemetry for key UI interactions using existing telemetry hooks (cloud-enabled, no-op in OSS):

Sidebar and top-level

  • Node library button: node_library
  • Model library button: model_library
  • Workflows button: workflows
  • Assets/Media button: assets
  • Templates button: templates
  • Keyboard Shortcuts: keyboard_shortcuts
  • Console: console
  • Help Center: help_center
  • Settings (from Comfy logo menu): settings_menu

Floating canvas menu

  • Minimap toggle: minimap_toggle
  • Hide links toggle: hide_links

Run button and queue

  • Run button handle (drag): run_button_handle
  • Run mode selection: run_instant, run_on_change
  • Queue multiple: queue_multiple fires on each run when batch count > 1 (moved from batch-count-change to run-time, per guidance)

Error dialogs

  • Close (X/mask/ESC): error_dialog_close via dialog onClose
  • Show report: error_show_report
  • Help fix this: error_help_fix_this
  • Find issues: error_find_issues

Nodes / Subgraphs

  • Selection toolbox “Node info”: node_info
  • Enter subgraph (node header enter): open_subgraph
  • Subgraph breadcrumb navigation: subgraph_breadcrumb_item and subgraph_breadcrumb_root

Settings / Credits / Search

  • Settings menu button (under Comfy logo): settings_menu
  • Purchase credits (Settings > Credits panel): tracked via existing trackAddApiCreditButtonClicked
  • Purchase credits (Avatar popover Top Up): tracked via existing trackAddApiCreditButtonClicked
  • Debounced search telemetry already present for node search and template filters; left as-is

Notes and answers

  • Error dialog onClose: only fires when the dialog actually closes (X, mask, ESC, or programmatic close). “Show report” and “Help fix this” do not close the dialog; they each emit their own events.
  • Telemetry is behind the cloud provider; calls are optional (useTelemetry()?.…). OSS builds send nothing.

Open questions / follow-ups

  • Primary Run button click: today cloud-only trackRunButton exists; we can also emit a UI-level run click (UI_BUTTON_CLICKED style) alongside it if desired. Confirm preference and I can add it.
  • Subgraph usage richness: if we want structured analytics (e.g., action, depth, subgraph id, node count), I can add a dedicated provider method and include richer metadata at enter/breadcrumb.
  • Optional parity: track the Comfy menu’s “Browse Templates” item in addition to the sidebar Templates button.

Quality

  • Ran pnpm lint:fix and pnpm typecheck; both pass locally.

Implementation details

  • All handlers refactored to named functions where needed; used void for intentionally unawaited async calls per lint rules.
  • Event names kept consistent in button_id strings; happy to align to a different naming scheme if you prefer.

┆Issue is synchronized with this Notion page by Unito

@dosubot dosubot bot added the size:L This PR changes 100-499 lines, ignoring generated files. label Nov 1, 2025
@github-actions
Copy link

github-actions bot commented Nov 1, 2025

🎭 Playwright Test Results

⚠️ Tests passed with flaky tests

⏰ Completed at: 11/01/2025, 10:27:34 PM UTC

📈 Summary

  • Total Tests: 498
  • Passed: 464 ✅
  • Failed: 0
  • Flaky: 4 ⚠️
  • Skipped: 30 ⏭️

📊 Test Reports by Browser

  • chromium: View Report • ✅ 455 / ❌ 0 / ⚠️ 4 / ⏭️ 30
  • 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.

@github-actions
Copy link

github-actions bot commented Nov 1, 2025

🎨 Storybook Build Status

Build completed successfully!

⏰ Completed at: 11/01/2025, 10:14:01 PM UTC

🔗 Links


🎉 Your Storybook is ready for review!

@github-actions
Copy link

github-actions bot commented Nov 1, 2025

Bundle Size Report

Summary

  • Raw size: 12.2 MB baseline 12.2 MB — 🔴 +979 B
  • Gzip: 2.48 MB baseline 2.48 MB — 🔴 +180 B
  • Brotli: 1.95 MB baseline 1.95 MB — 🔴 +112 B
  • Bundles: 58 current • 58 baseline • 13 added / 13 removed

Category Glance
Graph Workspace 🔴 +715 B (724 kB) · App Entry Points 🔴 +218 B (3.27 MB) · UI Components 🔴 +46 B (12.3 kB) · Vendor & Third-Party ⚪ 0 B (5.32 MB) · Other ⚪ 0 B (2.55 MB) · Panels & Settings ⚪ 0 B (295 kB) · + 3 more

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

Main entry bundles and manifests

File Before After Δ Raw Δ Gzip Δ Brotli
assets/index-DMygNR9w.js (new) 2.89 MB 🔴 +2.89 MB 🔴 +596 kB 🔴 +450 kB
assets/index-DwYEn0lq.js (removed) 2.89 MB 🟢 -2.89 MB 🟢 -596 kB 🟢 -450 kB
assets/index-CsyE1uWX.js (removed) 381 kB 🟢 -381 kB 🟢 -76.6 kB 🟢 -62.1 kB
assets/index-fhf-xpmH.js (new) 381 kB 🔴 +381 kB 🔴 +76.6 kB 🔴 +62.1 kB
assets/index-CcBDQ_Iz.js (new) 1.75 kB 🔴 +1.75 kB 🔴 +578 B 🔴 +490 B
assets/index-EkGoHabn.js (removed) 1.75 kB 🟢 -1.75 kB 🟢 -576 B 🟢 -489 B

Status: 3 added / 3 removed

Graph Workspace — 724 kB (baseline 723 kB) • 🔴 +715 B

Graph editor runtime, canvas, workflow orchestration

File Before After Δ Raw Δ Gzip Δ Brotli
assets/GraphView-BSq__tVx.js (new) 724 kB 🔴 +724 kB 🔴 +141 kB 🔴 +109 kB
assets/GraphView---Fkx2h-.js (removed) 723 kB 🟢 -723 kB 🟢 -141 kB 🟢 -109 kB

Status: 1 added / 1 removed

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

Top-level views, pages, and routed surfaces

File Before After Δ Raw Δ Gzip Δ Brotli
assets/UserSelectView-0U1rQWHE.js (removed) 8.18 kB 🟢 -8.18 kB 🟢 -2.48 kB 🟢 -2.17 kB
assets/UserSelectView-CJyT7LSm.js (new) 8.18 kB 🔴 +8.18 kB 🔴 +2.48 kB 🔴 +2.17 kB

Status: 1 added / 1 removed

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

Configuration panels, inspectors, and settings screens

File Before After Δ Raw Δ Gzip Δ Brotli
assets/CreditsPanel-_ygXiKk-.js (new) 22.9 kB 🔴 +22.9 kB 🔴 +5.45 kB 🔴 +4.76 kB
assets/CreditsPanel-iSKwrg_x.js (removed) 22.9 kB 🟢 -22.9 kB 🟢 -5.45 kB 🟢 -4.76 kB
assets/KeybindingPanel-BDycrB8o.js (removed) 15.3 kB 🟢 -15.3 kB 🟢 -3.78 kB 🟢 -3.33 kB
assets/KeybindingPanel-BHg_RRmq.js (new) 15.3 kB 🔴 +15.3 kB 🔴 +3.78 kB 🔴 +3.33 kB
assets/ExtensionPanel-B2vZoB3Y.js (removed) 12.1 kB 🟢 -12.1 kB 🟢 -2.84 kB 🟢 -2.49 kB
assets/ExtensionPanel-BvcMGvxC.js (new) 12.1 kB 🔴 +12.1 kB 🔴 +2.84 kB 🔴 +2.49 kB
assets/AboutPanel-Bbu3kES_.js (removed) 10.3 kB 🟢 -10.3 kB 🟢 -2.68 kB 🟢 -2.34 kB
assets/AboutPanel-BPio0lYH.js (new) 10.3 kB 🔴 +10.3 kB 🔴 +2.68 kB 🔴 +2.34 kB
assets/ServerConfigPanel-Cv4l4Fl3.js (removed) 8.23 kB 🟢 -8.23 kB 🟢 -2.18 kB 🟢 -1.91 kB
assets/ServerConfigPanel-Cw1KV1jr.js (new) 8.23 kB 🔴 +8.23 kB 🔴 +2.18 kB 🔴 +1.92 kB
assets/UserPanel-C4V3TSf0.js (removed) 7.94 kB 🟢 -7.94 kB 🟢 -2.08 kB 🟢 -1.81 kB
assets/UserPanel-C6zOzHwA.js (new) 7.94 kB 🔴 +7.94 kB 🔴 +2.08 kB 🔴 +1.81 kB
assets/settings-B-df0dZe.js 20.7 kB 20.7 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-CI6OKvJn.js 22.9 kB 22.9 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-CXGVj_nD.js 24.5 kB 24.5 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-DfQ6dSJj.js 31.6 kB 31.6 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-DJ2QgDzm.js 25.2 kB 25.2 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-DRNLPMG6.js 23.7 kB 23.7 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-DVVycxDc.js 19.9 kB 19.9 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-G6Dybj1b.js 24.1 kB 24.1 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-M6_GZccG.js 26 kB 26 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B

Status: 6 added / 6 removed

UI Components — 12.3 kB (baseline 12.3 kB) • 🔴 +46 B

Reusable component library chunks

File Before After Δ Raw Δ Gzip Δ Brotli
assets/ComfyQueueButton-jAi9dhtm.js (new) 11.2 kB 🔴 +11.2 kB 🔴 +2.79 kB 🔴 +2.46 kB
assets/ComfyQueueButton-CJfbsFQh.js (removed) 11.2 kB 🟢 -11.2 kB 🟢 -2.78 kB 🟢 -2.45 kB
assets/UserAvatar.vue_vue_type_script_setup_true_lang-C9bSkTC5.js 1.12 kB 1.12 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B

Status: 1 added / 1 removed

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

Stores, services, APIs, and repositories

File Before After Δ Raw Δ Gzip Δ Brotli
assets/keybindingService-B3PvYi4Y.js (removed) 8.61 kB 🟢 -8.61 kB 🟢 -2.08 kB 🟢 -1.78 kB
assets/keybindingService-TVTlMltx.js (new) 8.61 kB 🔴 +8.61 kB 🔴 +2.08 kB 🔴 +1.78 kB
assets/serverConfigStore-DT2Lu933.js 2.79 kB 2.79 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B

Status: 1 added / 1 removed

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

Helpers, composables, and utility bundles

File Before After Δ Raw Δ Gzip Δ Brotli
assets/mathUtil-CTARWQ-l.js 1.07 kB 1.07 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
Vendor & Third-Party — 5.32 MB (baseline 5.32 MB) • ⚪ 0 B

External libraries and shared vendor chunks

File Before After Δ Raw Δ Gzip Δ Brotli
assets/vendor-other-TH7eWvUO.js 3.22 MB 3.22 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-JDoAqkQm.js 1.37 MB 1.37 MB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-tiptap-B1kYNUlJ.js 232 kB 232 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-vue-PgD4wNjE.js 92.4 kB 92.4 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-xterm-BZLod3g9.js 407 kB 407 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
Other — 2.55 MB (baseline 2.55 MB) • ⚪ 0 B

Bundles that do not match a named category

File Before After Δ Raw Δ Gzip Δ Brotli
assets/commands-B2KZRBmX.js 15.1 kB 15.1 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-Bw-ckyga.js 13.9 kB 13.9 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-C_NmM85I.js 13.8 kB 13.8 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-CuozCW4W.js 14 kB 14 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-DGfVUJCR.js 16.2 kB 16.2 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-dOJNDogK.js 14.5 kB 14.5 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-DwiE551e.js 14.7 kB 14.7 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-Fw7mvqSy.js 13.1 kB 13.1 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-FXnO1W4Q.js 13.2 kB 13.2 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-Bgu6_Hvd.js 59.5 kB 59.5 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-Bv0L0qvp.js 93 kB 93 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-C3Doz3n_.js 67.6 kB 67.6 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-C7eBl607.js 70.7 kB 70.7 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-CHiV9ds2.js 76.4 kB 76.4 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-CIc79Nts.js 68.5 kB 68.5 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-DK5LmuBm.js 58.8 kB 58.8 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-J1nit7cj.js 66.3 kB 66.3 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-W97XgvAQ.js 80.4 kB 80.4 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-8Ef8lY1m.js 196 kB 196 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-BdF8EiZl.js 200 kB 200 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-Bv9Y8Cvp.js 229 kB 229 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-cMdB_wHv.js 179 kB 179 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-CvNWbbtX.js 194 kB 194 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-CwDWxzVz.js 215 kB 215 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-CyPAVHpA.js 191 kB 191 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-D6QTD6bJ.js 181 kB 181 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-DKn6VmRJ.js 192 kB 192 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B

christian-byrne
christian-byrne previously approved these changes Nov 1, 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.

Excellent work

@christian-byrne
Copy link
Contributor

I can help with conflicts

Merged latest changes from main into round-pigeon branch, resolving
conflicts in telemetry tracking code:

- ErrorDialogContent.vue: Keep specialized trackHelpResourceClicked for
  help/support actions instead of generic trackUiButtonClicked
- CreditsPanel.vue: Add missing useSubscription import from main
- MixpanelTelemetryProvider.ts: Include both UiButtonClickMetadata and
  WorkflowCreatedMetadata imports
- types.ts: Merge all interface definitions and union types from both
  branches (UiButtonClickMetadata + help center + workflow metadata)

Approach: Maintain separate tracking systems - use generic UI button
tracking for simple interactions and specialized help/workflow tracking
for domain-specific events with rich metadata.

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

Co-Authored-By: Claude <[email protected]>
Copy link
Member Author

@benceruleanlu benceruleanlu left a comment

Choose a reason for hiding this comment

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

I want to rename the telemetry events to clarify that they are buttons, I think assets and others are kind of broad

@christian-byrne christian-byrne added needs-backport Fix/change that needs to be cherry-picked to the current feature freeze branch branch:rh-test labels Nov 2, 2025
@christian-byrne christian-byrne merged commit 7bf8e5a into main Nov 2, 2025
36 of 39 checks passed
@christian-byrne christian-byrne deleted the round-pigeon branch November 2, 2025 06:09
@github-actions
Copy link

github-actions bot commented Nov 2, 2025

@benceruleanlu Backport to rh-test failed: Merge conflicts detected.

Please manually cherry-pick commit 7bf8e5af38c87a91b4a5aba2bf96427a7b3b4689 to the rh-test branch.

Conflicting files
  • src/components/graph/GraphCanvasMenu.vue
  • src/components/sidebar/SideToolbar.vue
  • src/components/sidebar/SidebarHelpCenterIcon.vue
  • src/components/topbar/CommandMenubar.vue
  • src/platform/telemetry/types.ts

christian-byrne added a commit that referenced this pull request Nov 2, 2025
Restores the queue_run_multiple_batches_submitted tracking that was
accidentally removed during conflict resolution. This tracking was added
in PR #6511 to track when users submit multiple batches.

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

Co-Authored-By: Claude <[email protected]>
benceruleanlu added a commit that referenced this pull request Nov 4, 2025
…factor dialogService telemetry import\n\n- Backport of #6504 and https://github.com/Comfy-Org/ComfyUI_frontend/pull/6511\n- Remove input_type, category, sub_category from SettingChangedMetadata\n- Replace lazy import in dialogService error dialog onClose with top-level useTelemetry()\n- Lint and typecheck pass (pnpm lint:fix && pnpm typecheck)
christian-byrne pushed a commit that referenced this pull request Nov 4, 2025
…import refactor (#6567)

Backports the combined changes from the following PRs into `rh-test`:

- #6504 — Settings telemetry (track `SETTING_CHANGED` on successful
update)
- #6511 — UI telemetry (actionbar drag handle, run button
choices/multi‑batch submit, breadcrumb item/root selection)

Key points
- Settings telemetry added via `SettingItem.vue` after successful
setting updates and wired to `TelemetryEvents.SETTING_CHANGED`.
- UI telemetry wired for run/queue actions and breadcrumbs to match
upstream behavior.

Divergences from the source PRs
- Removed `input_type`, `category`, and `sub_category` from
`SettingChangedMetadata` to keep the event shape focused and consistent
with downstream consumers.
- Replaced lazy telemetry import in `dialogService` error dialog
`onClose` handlers with a top‑level `useTelemetry()` import for clarity
and to avoid unnecessary dynamic imports.
- Kept a few additional telemetry events already present in this branch
(error dialog actions, graph/sidebar/template interactions). Happy to
trim these for a strict backport if desired.

Validation
- Ran `pnpm lint:fix && pnpm typecheck` successfully locally.

References
- Upstream PRs: #6504,
#6511
- Branch: `backport-6511-6504-to-rh-test`

┆Issue is synchronized with this [Notion
page](https://www.notion.so/PR-6567-Backport-telemetry-settings-UI-tracking-6504-6511-and-dialog-import-refactor-2a16d73d365081ce80a0f973c4483653)
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

branch:rh-test needs-backport Fix/change that needs to be cherry-picked to the current feature freeze branch size:L This PR changes 100-499 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants