Skip to content

Linear: progressbar, tooltips, and output fixes#8250

Merged
AustinMroz merged 6 commits intomainfrom
austin/moar-linear-fixes
Jan 24, 2026
Merged

Linear: progressbar, tooltips, and output fixes#8250
AustinMroz merged 6 commits intomainfrom
austin/moar-linear-fixes

Conversation

@AustinMroz
Copy link
Collaborator

@AustinMroz AustinMroz commented Jan 22, 2026

  • Fixes only the first output being displayed in linear mode after the jobs migration
  • Fixes selected output no longer scrolling into view in history
  • Adds a progress bar indicator on running job
    image
  • Moves linear toggle button to v-tooltip
  • Fixes placeholder sometimes continuing to display after a new output.

┆Issue is synchronized with this Notion page by Unito

@AustinMroz AustinMroz requested a review from a team as a code owner January 22, 2026 23:04
@dosubot dosubot bot added the size:L This PR changes 100-499 lines, ignoring generated files. label Jan 22, 2026
@github-actions
Copy link

github-actions bot commented Jan 22, 2026

🎨 Storybook Build Status

Build completed successfully!

⏰ Completed at: 01/22/2026, 11:05:35 PM UTC

🔗 Links


🎉 Your Storybook is ready for review!

@github-actions
Copy link

github-actions bot commented Jan 22, 2026

🎭 Playwright Tests: ⚠️ Passed with flaky tests

Results: 505 passed, 0 failed, 1 flaky, 8 skipped (Total: 514)

❌ Failed Tests

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

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Jan 22, 2026

📝 Walkthrough

Walkthrough

Updates tooltip presentation in ModeToggle with localized labels and dynamic binding; adds responsive padding to LinearPreview's video element; substantially refactors OutputHistory with caching, asynchronous state management, output flattening, selection change emission, and progress bar UI.

Changes

Cohort / File(s) Summary
Tooltip UI Enhancements
src/components/sidebar/ModeToggle.vue
Replaces static title bindings with v-tooltip directives featuring localized labels (linearMode.linearMode, linearMode.graphMode) and configured show/hide delays.
Responsive Styling
src/renderer/extensions/linearMode/LinearPreview.vue
Adds md:p-3 padding utility class to VideoPreview component for responsive spacing.
Output History Refactor
src/renderer/extensions/linearMode/OutputHistory.vue
Introduces caching mechanism and flattenNodeOutput utility; migrates allOutputs to return MaybeRef<ResultItemImpl[]> with async loading via useAsyncState/getJobDetail; replaces direct array access with toValue() calls; adds doEmit function and watcher for selection change emission; introduces data-output-index attributes for output element querying; injects progress bar UI bound to queue progress metrics; replaces length-based navigation with outputCount() helper; enhances type safety with additional VueUse utilities.

Possibly related PRs

Suggested reviewers

  • Yorha4D
  • PabloWiedemann
  • shinshin86
  • KarryCharon

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

Bundle Size Report

Summary

  • Raw size: 21.8 MB baseline 21.8 MB — 🔴 +2.32 kB
  • Gzip: 4.53 MB baseline 4.53 MB — 🔴 +570 B
  • Brotli: 3.36 MB baseline 3.36 MB — 🔴 +401 B
  • Bundles: 165 current • 165 baseline • 75 added / 75 removed

Category Glance
Graph Workspace 🔴 +2.5 kB (951 kB) · Other 🟢 -214 B (6.36 MB) · Data & Services 🔴 +43 B (3.16 MB) · Vendor & Third-Party ⚪ 0 B (10.7 MB) · Panels & Settings ⚪ 0 B (439 kB) · Views & Navigation ⚪ 0 B (80.7 kB) · + 5 more

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

Main entry bundles and manifests

File Before After Δ Raw Δ Gzip Δ Brotli
assets/index-81j3jokt.js (removed) 22.6 kB 🟢 -22.6 kB 🟢 -6.81 kB 🟢 -5.98 kB
assets/index-Cy7zWxia.js (new) 22.6 kB 🔴 +22.6 kB 🔴 +6.8 kB 🔴 +5.97 kB

Status: 1 added / 1 removed

Graph Workspace — 951 kB (baseline 948 kB) • 🔴 +2.5 kB

Graph editor runtime, canvas, workflow orchestration

File Before After Δ Raw Δ Gzip Δ Brotli
assets/GraphView-Ck5AlnYH.js (new) 951 kB 🔴 +951 kB 🔴 +192 kB 🔴 +145 kB
assets/GraphView-owU4jQYO.js (removed) 948 kB 🟢 -948 kB 🟢 -192 kB 🟢 -145 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-CiXbeh9Q.js (new) 17.1 kB 🔴 +17.1 kB 🔴 +3.61 kB 🔴 +3.06 kB
assets/CloudSurveyView-IiIKmOT0.js (removed) 17.1 kB 🟢 -17.1 kB 🟢 -3.6 kB 🟢 -3.06 kB
assets/CloudLoginView-Bd_BL31Q.js (removed) 11.8 kB 🟢 -11.8 kB 🟢 -3.09 kB 🟢 -2.72 kB
assets/CloudLoginView-iXJpO0b4.js (new) 11.8 kB 🔴 +11.8 kB 🔴 +3.1 kB 🔴 +2.72 kB
assets/UserCheckView--dP6Pvzd.js (new) 10.5 kB 🔴 +10.5 kB 🔴 +2.44 kB 🔴 +2.13 kB
assets/UserCheckView-BiNZMBhy.js (removed) 10.5 kB 🟢 -10.5 kB 🟢 -2.44 kB 🟢 -2.13 kB
assets/CloudLayoutView-CgjrlDHW.js (new) 8.54 kB 🔴 +8.54 kB 🔴 +2.24 kB 🔴 +1.96 kB
assets/CloudLayoutView-nly06Yei.js (removed) 8.54 kB 🟢 -8.54 kB 🟢 -2.24 kB 🟢 -1.96 kB
assets/CloudSignupView-CGckRngG.js (removed) 8.18 kB 🟢 -8.18 kB 🟢 -2.33 kB 🟢 -2.03 kB
assets/CloudSignupView-DNDfrBb2.js (new) 8.18 kB 🔴 +8.18 kB 🔴 +2.34 kB 🔴 +2.03 kB
assets/CloudForgotPasswordView-Bu48Jc2K.js (removed) 6.26 kB 🟢 -6.26 kB 🟢 -1.92 kB 🟢 -1.69 kB
assets/CloudForgotPasswordView-Clfl1AA3.js (new) 6.26 kB 🔴 +6.26 kB 🔴 +1.93 kB 🔴 +1.69 kB
assets/UserSelectView-DCSW00qZ.js (new) 5.28 kB 🔴 +5.28 kB 🔴 +1.76 kB 🔴 +1.58 kB
assets/UserSelectView-DToQmv6Y.js (removed) 5.28 kB 🟢 -5.28 kB 🟢 -1.76 kB 🟢 -1.57 kB
assets/CloudSubscriptionRedirectView-CcjbhhWv.js (new) 5.27 kB 🔴 +5.27 kB 🔴 +1.73 kB 🔴 +1.54 kB
assets/CloudSubscriptionRedirectView-CjDXm09e.js (removed) 5.27 kB 🟢 -5.27 kB 🟢 -1.73 kB 🟢 -1.54 kB
assets/CloudAuthTimeoutView-7QT--M5Q.js (new) 5.24 kB 🔴 +5.24 kB 🔴 +1.71 kB 🔴 +1.48 kB
assets/CloudAuthTimeoutView-C4lJbpkO.js (removed) 5.24 kB 🟢 -5.24 kB 🟢 -1.7 kB 🟢 -1.48 kB
assets/CloudSorryContactSupportView-C3-mkkks.js 1.97 kB 1.97 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/layout-DloyK3Ro.js 500 B 500 B ⚪ 0 B ⚪ 0 B ⚪ 0 B

Status: 9 added / 9 removed

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

Configuration panels, inspectors, and settings screens

File Before After Δ Raw Δ Gzip Δ Brotli
assets/LegacyCreditsPanel-CUq5w1Dv.js (removed) 23.8 kB 🟢 -23.8 kB 🟢 -5.95 kB 🟢 -5.22 kB
assets/LegacyCreditsPanel-Cz39hcKm.js (new) 23.8 kB 🔴 +23.8 kB 🔴 +5.95 kB 🔴 +5.23 kB
assets/SubscriptionPanel-Bj002uaQ.js (removed) 20.9 kB 🟢 -20.9 kB 🟢 -5 kB 🟢 -4.41 kB
assets/SubscriptionPanel-iBpVsK2C.js (new) 20.9 kB 🔴 +20.9 kB 🔴 +5 kB 🔴 +4.41 kB
assets/KeybindingPanel-b42E_Z4z.js (removed) 14.2 kB 🟢 -14.2 kB 🟢 -3.73 kB 🟢 -3.31 kB
assets/KeybindingPanel-DM9g5gh8.js (new) 14.2 kB 🔴 +14.2 kB 🔴 +3.73 kB 🔴 +3.31 kB
assets/AboutPanel-CmyL1dzC.js (new) 10.8 kB 🔴 +10.8 kB 🔴 +2.68 kB 🔴 +2.43 kB
assets/AboutPanel-n7q6gXOC.js (removed) 10.8 kB 🟢 -10.8 kB 🟢 -2.68 kB 🟢 -2.44 kB
assets/ExtensionPanel-CC3I9-wO.js (removed) 10.2 kB 🟢 -10.2 kB 🟢 -2.71 kB 🟢 -2.4 kB
assets/ExtensionPanel-Dus_bbWT.js (new) 10.2 kB 🔴 +10.2 kB 🔴 +2.71 kB 🔴 +2.4 kB
assets/WorkspacePanel-CdBmSrWo.js (new) 8.17 kB 🔴 +8.17 kB 🔴 +2.3 kB 🔴 +2.08 kB
assets/WorkspacePanel-DOsGId4-.js (removed) 8.17 kB 🟢 -8.17 kB 🟢 -2.3 kB 🟢 -2.08 kB
assets/ServerConfigPanel-CX03siyY.js (new) 7.23 kB 🔴 +7.23 kB 🔴 +2.16 kB 🔴 +1.93 kB
assets/ServerConfigPanel-D54nsU0O.js (removed) 7.23 kB 🟢 -7.23 kB 🟢 -2.16 kB 🟢 -1.94 kB
assets/UserPanel-CWts3Vq9.js (new) 6.58 kB 🔴 +6.58 kB 🔴 +1.91 kB 🔴 +1.68 kB
assets/UserPanel-DToBHRNO.js (removed) 6.58 kB 🟢 -6.58 kB 🟢 -1.9 kB 🟢 -1.68 kB
assets/cloudRemoteConfig-BVkJ5OGs.js (removed) 1.82 kB 🟢 -1.82 kB 🟢 -772 B 🟢 -660 B
assets/cloudRemoteConfig-D0vKqlre.js (new) 1.82 kB 🔴 +1.82 kB 🔴 +770 B 🔴 +655 B
assets/remoteConfig-CZVd5eda.js 188 B 188 B ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/remoteConfig-maWXk_kA.js 1.07 kB 1.07 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-23V5uPoG.js 25.2 kB 25.2 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-B2T8iNyv.js 30.4 kB 30.4 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-BA9epCI4.js 29.5 kB 29.5 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-Cb_eTR9u.js 28.9 kB 28.9 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-CBoJjW91.js 32.1 kB 32.1 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-CdMSLcmr.js 29.6 kB 29.6 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-CgdqAzye.js 28.6 kB 28.6 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-CixCmPDK.js 38.3 kB 38.3 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-CPilimrX.js 25.9 kB 25.9 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-DsZaYm90.js 31.2 kB 31.2 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-TEtgrvXC.js 34.3 kB 34.3 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B

Status: 9 added / 9 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-C1_SlEP_.js (new) 3.54 kB 🔴 +3.54 kB 🔴 +1.24 kB 🔴 +1.07 kB
assets/auth-CgD0nV09.js (removed) 3.54 kB 🟢 -3.54 kB 🟢 -1.24 kB 🟢 -1.06 kB
assets/firebaseAuthStore-CVTdCcbi.js (removed) 217 B 🟢 -217 B 🟢 -136 B 🟢 -116 B
assets/firebaseAuthStore-D84nnoSR.js (new) 217 B 🔴 +217 B 🔴 +137 B 🔴 +115 B
assets/auth-BdNAdjue.js (removed) 178 B 🟢 -178 B 🟢 -142 B 🟢 -131 B
assets/auth-CZB0DG40.js (new) 178 B 🔴 +178 B 🔴 +141 B 🔴 +129 B

Status: 3 added / 3 removed

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

Modals, dialogs, drawers, and in-app editors

File Before After Δ Raw Δ Gzip Δ Brotli
assets/useSubscriptionDialog-BmF9t10m.js (removed) 2.65 kB 🟢 -2.65 kB 🟢 -1.25 kB 🟢 -1.11 kB
assets/useSubscriptionDialog-CN6lwPIE.js (new) 2.65 kB 🔴 +2.65 kB 🔴 +1.25 kB 🔴 +1.12 kB
assets/useSubscriptionDialog-Bd_SkleD.js (new) 179 B 🔴 +179 B 🔴 +110 B 🔴 +94 B
assets/useSubscriptionDialog-BRFtLyhv.js (removed) 179 B 🟢 -179 B 🟢 -110 B 🟢 -95 B

Status: 2 added / 2 removed

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

Reusable component library chunks

File Before After Δ Raw Δ Gzip Δ Brotli
assets/ComfyQueueButton-D03wHRrk.js (removed) 9.52 kB 🟢 -9.52 kB 🟢 -2.69 kB 🟢 -2.41 kB
assets/ComfyQueueButton-DwiCRAI1.js (new) 9.52 kB 🔴 +9.52 kB 🔴 +2.69 kB 🔴 +2.42 kB
assets/SubscribeButton-B8XQF_Vk.js (removed) 4.63 kB 🟢 -4.63 kB 🟢 -1.57 kB 🟢 -1.38 kB
assets/SubscribeButton-BWstyBQm.js (new) 4.63 kB 🔴 +4.63 kB 🔴 +1.57 kB 🔴 +1.39 kB
assets/CloudBadge-b5q5XTmE.js (new) 1.85 kB 🔴 +1.85 kB 🔴 +725 B 🔴 +644 B
assets/CloudBadge-BrdzBiLx.js (removed) 1.85 kB 🟢 -1.85 kB 🟢 -723 B 🟢 -656 B
assets/cloudFeedbackTopbarButton-ac96_Fed.js (removed) 866 B 🟢 -866 B 🟢 -523 B 🟢 -475 B
assets/cloudFeedbackTopbarButton-cHQLlntu.js (new) 866 B 🔴 +866 B 🔴 +525 B 🔴 +475 B
assets/ComfyQueueButton-BPdrDj8b.js (removed) 181 B 🟢 -181 B 🟢 -118 B 🟢 -114 B
assets/ComfyQueueButton-Bs52NqT7.js (new) 181 B 🔴 +181 B 🔴 +118 B 🔴 +120 B
assets/Button-BMxaXlJk.js 3.76 kB 3.76 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/TopbarBadge-UKJQDNIu.js 8.36 kB 8.36 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/UserAvatar-BvUzYvJd.js 1.73 kB 1.73 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetButton-PIkWTw11.js 2.41 kB 2.41 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B

Status: 5 added / 5 removed

Data & Services — 3.16 MB (baseline 3.16 MB) • 🔴 +43 B

Stores, services, APIs, and repositories

File Before After Δ Raw Δ Gzip Δ Brotli
assets/dialogService-DmyIVkAy.js (new) 1.98 MB 🔴 +1.98 MB 🔴 +419 kB 🔴 +320 kB
assets/dialogService-2Tyl0Nco.js (removed) 1.98 MB 🟢 -1.98 MB 🟢 -419 kB 🟢 -320 kB
assets/api-B23T2wmR.js (new) 1.16 MB 🔴 +1.16 MB 🔴 +241 kB 🔴 +187 kB
assets/api-BZCjUNGR.js (removed) 1.16 MB 🟢 -1.16 MB 🟢 -241 kB 🟢 -187 kB
assets/releaseStore-Bq98H1OQ.js (removed) 8.91 kB 🟢 -8.91 kB 🟢 -2.41 kB 🟢 -2.12 kB
assets/releaseStore-oncLnp06.js (new) 8.91 kB 🔴 +8.91 kB 🔴 +2.41 kB 🔴 +2.12 kB
assets/keybindingService-BzMBgJH7.js (removed) 6.78 kB 🟢 -6.78 kB 🟢 -1.75 kB 🟢 -1.52 kB
assets/keybindingService-DHwDhYv0.js (new) 6.78 kB 🔴 +6.78 kB 🔴 +1.74 kB 🔴 +1.51 kB
assets/userStore-CREn5ol9.js (removed) 2.16 kB 🟢 -2.16 kB 🟢 -811 B 🟢 -727 B
assets/userStore-Db0TzPaf.js (new) 2.16 kB 🔴 +2.16 kB 🔴 +813 B 🔴 +724 B
assets/audioService-CKoXHA-z.js (removed) 2.03 kB 🟢 -2.03 kB 🟢 -934 B 🟢 -826 B
assets/audioService-DJbalb4Q.js (new) 2.03 kB 🔴 +2.03 kB 🔴 +931 B 🔴 +822 B
assets/teamWorkspaceStore-BBj1UEFZ.js (new) 165 B 🔴 +165 B 🔴 +123 B 🔴 +107 B
assets/teamWorkspaceStore-NCBem4G1.js (removed) 165 B 🟢 -165 B 🟢 -123 B 🟢 -109 B
assets/releaseStore-BHYgKGRy.js (new) 140 B 🔴 +140 B 🔴 +106 B 🔴 +107 B
assets/releaseStore-BqEjMx5y.js (removed) 140 B 🟢 -140 B 🟢 -106 B 🟢 -106 B
assets/serverConfigStore-Crp1PsaB.js 2.64 kB 2.64 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B

Status: 8 added / 8 removed

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

Helpers, composables, and utility bundles

File Before After Δ Raw Δ Gzip Δ Brotli
assets/useErrorHandling-Bh8uVmPa.js (removed) 5.08 kB 🟢 -5.08 kB 🟢 -1.5 kB 🟢 -1.31 kB
assets/useErrorHandling-Vt0vhz6G.js (new) 5.08 kB 🔴 +5.08 kB 🔴 +1.5 kB 🔴 +1.31 kB
assets/useWorkspaceUI-DcxNYjt-.js (removed) 2.25 kB 🟢 -2.25 kB 🟢 -757 B 🟢 -667 B
assets/useWorkspaceUI-py1gniO6.js (new) 2.25 kB 🔴 +2.25 kB 🔴 +756 B 🔴 +656 B
assets/useSubscriptionActions--TUCNr29.js (removed) 2.22 kB 🟢 -2.22 kB 🟢 -868 B 🟢 -760 B
assets/useSubscriptionActions-CnGewpko.js (new) 2.22 kB 🔴 +2.22 kB 🔴 +866 B 🔴 +758 B
assets/subscriptionCheckoutUtil-BPL2PWEg.js (removed) 1.98 kB 🟢 -1.98 kB 🟢 -864 B 🟢 -750 B
assets/subscriptionCheckoutUtil-Dt2TMDeQ.js (new) 1.98 kB 🔴 +1.98 kB 🔴 +860 B 🔴 +745 B
assets/useSubscriptionCredits-CEy6SaUy.js (removed) 1.39 kB 🟢 -1.39 kB 🟢 -596 B 🟢 -525 B
assets/useSubscriptionCredits-POi93fbC.js (new) 1.39 kB 🔴 +1.39 kB 🔴 +596 B 🔴 +525 B
assets/audioUtils-BrAQ_ZgH.js (new) 970 B 🔴 +970 B 🔴 +549 B 🔴 +485 B
assets/audioUtils-CG14WQGB.js (removed) 970 B 🟢 -970 B 🟢 -548 B 🟢 -458 B
assets/useCurrentUser-DcYeredl.js (removed) 145 B 🟢 -145 B 🟢 -114 B 🟢 -104 B
assets/useCurrentUser-DMZ6uK1G.js (new) 145 B 🔴 +145 B 🔴 +114 B 🔴 +102 B
assets/_plugin-vue_export-helper-Dt9-hEHc.js 467 B 467 B ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/colorUtil-Xqu3msyF.js 7.2 kB 7.2 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/markdownRendererUtil-D1kHc_L9.js 1.78 kB 1.78 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/tailwindUtil-aK5ScNeo.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-CzCG8jcG.js 408 kB 408 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-other-_15fVcZx.js 4.1 MB 4.1 MB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-primevue-D9jS_6ky.js 3.04 MB 3.04 MB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-reka-ui-C7fVHAth.js 256 kB 256 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-three-BKj_AHFn.js 1.83 MB 1.83 MB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-tiptap-CLU9nzy5.js 650 kB 650 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-vue-DhS5MB4h.js 13.6 kB 13.6 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-xterm-AIoMGdmt.js 398 kB 398 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
Other — 6.36 MB (baseline 6.36 MB) • 🟢 -214 B

Bundles that do not match a named category

File Before After Δ Raw Δ Gzip Δ Brotli
assets/core-DcNejpt-.js (removed) 178 kB 🟢 -178 kB 🟢 -43 kB 🟢 -35.9 kB
assets/core-BoVkCrpV.js (new) 178 kB 🔴 +178 kB 🔴 +42.9 kB 🔴 +35.9 kB
assets/Load3D-BheKcxIC.js (new) 55.7 kB 🔴 +55.7 kB 🔴 +9.17 kB 🔴 +7.93 kB
assets/Load3D-DqVwMBfr.js (removed) 55.7 kB 🟢 -55.7 kB 🟢 -9.18 kB 🟢 -7.92 kB
assets/WidgetSelect-BfalW7vq.js (new) 50.5 kB 🔴 +50.5 kB 🔴 +11.1 kB 🔴 +9.7 kB
assets/WidgetSelect-Db4AyzGR.js (removed) 50.5 kB 🟢 -50.5 kB 🟢 -11.1 kB 🟢 -9.7 kB
assets/SubscriptionRequiredDialogContent-Bz-2ws4k.js (removed) 28.7 kB 🟢 -28.7 kB 🟢 -6.78 kB 🟢 -5.9 kB
assets/SubscriptionRequiredDialogContent-hKHtOcfw.js (new) 28.7 kB 🔴 +28.7 kB 🔴 +6.78 kB 🔴 +5.91 kB
assets/CurrentUserPopoverWorkspace-C0uxoc0C.js (new) 21.6 kB 🔴 +21.6 kB 🔴 +4.83 kB 🔴 +4.3 kB
assets/CurrentUserPopoverWorkspace-DDBsaFGh.js (removed) 21.6 kB 🟢 -21.6 kB 🟢 -4.84 kB 🟢 -4.29 kB
assets/WidgetRecordAudio-BYJ3Xc8D.js (new) 18.2 kB 🔴 +18.2 kB 🔴 +4.96 kB 🔴 +4.43 kB
assets/WidgetRecordAudio-DjtzDw8Y.js (removed) 18.2 kB 🟢 -18.2 kB 🟢 -4.97 kB 🟢 -4.43 kB
assets/WidgetInputNumber-B0gAeKL1.js (removed) 18.2 kB 🟢 -18.2 kB 🟢 -4.49 kB 🟢 -4 kB
assets/WidgetInputNumber-C1TEBfuh.js (new) 18.2 kB 🔴 +18.2 kB 🔴 +4.49 kB 🔴 +4.01 kB
assets/SubscriptionPanelContentWorkspace-CTfFptcL.js (removed) 17.7 kB 🟢 -17.7 kB 🟢 -4.34 kB 🟢 -3.77 kB
assets/SubscriptionPanelContentWorkspace-D3h2Ye86.js (new) 17.7 kB 🔴 +17.7 kB 🔴 +4.34 kB 🔴 +3.78 kB
assets/WidgetImageCrop-DIqm6_zk.js (new) 17.1 kB 🔴 +17.1 kB 🔴 +4.14 kB 🔴 +3.62 kB
assets/WidgetImageCrop-SnVs_Hqj.js (removed) 17.1 kB 🟢 -17.1 kB 🟢 -4.14 kB 🟢 -3.62 kB
assets/PanelTemplate-B62l4OvF.js (new) 16.2 kB 🔴 +16.2 kB 🔴 +5.45 kB 🔴 +4.79 kB
assets/PanelTemplate-DO0lm1Jp.js (removed) 16.2 kB 🟢 -16.2 kB 🟢 -5.45 kB 🟢 -4.79 kB
assets/AudioPreviewPlayer-BMcXa_ga.js (removed) 10.8 kB 🟢 -10.8 kB 🟢 -2.97 kB 🟢 -2.65 kB
assets/AudioPreviewPlayer-D3WOpyU3.js (new) 10.8 kB 🔴 +10.8 kB 🔴 +2.97 kB 🔴 +2.65 kB
assets/WidgetWithControl-BRNRM8O3.js (new) 8.02 kB 🔴 +8.02 kB 🔴 +2.65 kB 🔴 +2.38 kB
assets/WidgetWithControl-DsSxrhIi.js (removed) 8.02 kB 🟢 -8.02 kB 🟢 -2.64 kB 🟢 -2.38 kB
assets/CreateWorkspaceDialogContent-DVPs2eyF.js (removed) 5.92 kB 🟢 -5.92 kB 🟢 -1.92 kB 🟢 -1.67 kB
assets/CreateWorkspaceDialogContent-etdeIOj5.js (new) 5.92 kB 🔴 +5.92 kB 🔴 +1.92 kB 🔴 +1.67 kB
assets/EditWorkspaceDialogContent-CuQBbWTT.js (new) 5.69 kB 🔴 +5.69 kB 🔴 +1.87 kB 🔴 +1.64 kB
assets/EditWorkspaceDialogContent-KK0u3KAM.js (removed) 5.69 kB 🟢 -5.69 kB 🟢 -1.87 kB 🟢 -1.64 kB
assets/ValueControlPopover-CMYtQqUF.js (new) 4.86 kB 🔴 +4.86 kB 🔴 +1.55 kB 🔴 +1.37 kB
assets/ValueControlPopover-DpHEwyQu.js (removed) 4.86 kB 🟢 -4.86 kB 🟢 -1.55 kB 🟢 -1.37 kB
assets/DeleteWorkspaceDialogContent-BtUFXyoG.js (removed) 4.59 kB 🟢 -4.59 kB 🟢 -1.56 kB 🟢 -1.35 kB
assets/DeleteWorkspaceDialogContent-C2WTysYm.js (new) 4.59 kB 🔴 +4.59 kB 🔴 +1.56 kB 🔴 +1.35 kB
assets/LeaveWorkspaceDialogContent-Ce_O5wBw.js (removed) 4.41 kB 🟢 -4.41 kB 🟢 -1.5 kB 🟢 -1.3 kB
assets/LeaveWorkspaceDialogContent-Dc1yBl7Z.js (new) 4.41 kB 🔴 +4.41 kB 🔴 +1.5 kB 🔴 +1.3 kB
assets/GlobalToast-Bmqg-BXJ.js (removed) 3.05 kB 🟢 -3.05 kB 🟢 -1.1 kB 🟢 -938 B
assets/GlobalToast-CANVaQwW.js (new) 3.05 kB 🔴 +3.05 kB 🔴 +1.1 kB 🔴 +938 B
assets/SubscribeToRun-CM7XIYpF.js (new) 2.96 kB 🔴 +2.96 kB 🔴 +1.15 kB 🔴 +1.01 kB
assets/SubscribeToRun-eh9obptL.js (removed) 2.96 kB 🟢 -2.96 kB 🟢 -1.15 kB 🟢 -1.01 kB
assets/cloudSessionCookie-B70akN4d.js (new) 2.94 kB 🔴 +2.94 kB 🔴 +936 B 🔴 +798 B
assets/cloudSessionCookie-Bvlb1Y6v.js (removed) 2.94 kB 🟢 -2.94 kB 🟢 -936 B 🟢 -798 B
assets/BaseViewTemplate-C5xVrhFV.js (removed) 2.42 kB 🟢 -2.42 kB 🟢 -1.04 kB 🟢 -935 B
assets/BaseViewTemplate-H4NpJ7rv.js (new) 2.42 kB 🔴 +2.42 kB 🔴 +1.05 kB 🔴 +941 B
assets/CloudRunButtonWrapper-6spuxL6n.js (removed) 1.79 kB 🟢 -1.79 kB 🟢 -639 B 🟢 -558 B
assets/CloudRunButtonWrapper-b1GGxyWj.js (new) 1.79 kB 🔴 +1.79 kB 🔴 +644 B 🔴 +562 B
assets/cloudBadges-DGKdufN-.js (new) 1.08 kB 🔴 +1.08 kB 🔴 +538 B 🔴 +492 B
assets/cloudBadges-Ztf30csM.js (removed) 1.08 kB 🟢 -1.08 kB 🟢 -538 B 🟢 -479 B
assets/graphHasMissingNodes-CYiEZ0fF.js (removed) 1.06 kB 🟢 -1.06 kB 🟢 -462 B 🟢 -436 B
assets/graphHasMissingNodes-tnqZ2c6i.js (new) 1.06 kB 🔴 +1.06 kB 🔴 +460 B 🔴 +424 B
assets/cloudSubscription-D0gyYA27.js (removed) 976 B 🟢 -976 B 🟢 -464 B 🟢 -402 B
assets/cloudSubscription-G6LIeRra.js (new) 976 B 🔴 +976 B 🔴 +461 B 🔴 +395 B
assets/nightlyBadges-DGXFQRqb.js (new) 594 B 🔴 +594 B 🔴 +359 B 🔴 +308 B
assets/nightlyBadges-eZs3LKzA.js (removed) 594 B 🟢 -594 B 🟢 -358 B 🟢 -308 B
assets/SubscriptionPanelContentWorkspace-K-AhdcV6.js (new) 266 B 🔴 +266 B 🔴 +136 B 🔴 +126 B
assets/SubscriptionPanelContentWorkspace-POU_oBDi.js (removed) 266 B 🟢 -266 B 🟢 -136 B 🟢 -125 B
assets/WidgetInputNumber-B0cPtVMG.js (removed) 186 B 🟢 -186 B 🟢 -119 B 🟢 -111 B
assets/WidgetInputNumber-C20sYc4d.js (new) 186 B 🔴 +186 B 🔴 +119 B 🔴 +111 B
assets/WidgetLegacy-DoOCH0F1.js (new) 164 B 🔴 +164 B 🔴 +125 B 🔴 +113 B
assets/WidgetLegacy-JPccOU1E.js (removed) 164 B 🟢 -164 B 🟢 -125 B 🟢 -111 B
assets/Load3D-Bru3dv_q.js (removed) 131 B 🟢 -131 B 🟢 -107 B 🟢 -119 B
assets/Load3D-x9AD8oBf.js (new) 131 B 🔴 +131 B 🔴 +107 B 🔴 +107 B
assets/auto-C-D16_U1.js 1.73 kB 1.73 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-A3gs49Qh.js 20.6 kB 20.6 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-B9_7KNdd.js 17.8 kB 17.8 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-BEXSSCSk.js 17.2 kB 17.2 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-CgMtYotl.js 17.9 kB 17.9 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-Cp_OKlvE.js 19.3 kB 19.3 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-CrskXEfp.js 18 kB 18 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-DAtZwA4E.js 18.8 kB 18.8 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-DjRv2yC9.js 18.5 kB 18.5 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-DUYXTsWS.js 17 kB 17 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-mJtoggaF.js 19.3 kB 19.3 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-sZf0uluU.js 18 kB 18 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/LazyImage-6TGBVl6f.js 14.1 kB 14.1 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-B0RvcUVr.js 107 kB 107 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-Bd8Ggle9.js 164 kB 164 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-Bi0tOEqQ.js 123 kB 123 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-BImezAtc.js 136 kB 136 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-C2cWXt6G.js 119 kB 119 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-CdIncmQj.js 119 kB 119 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-CZfT8GXj.js 147 kB 147 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-DFywlJXa.js 121 kB 121 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-dQspZUNw.js 126 kB 126 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-mJa2ZHV0.js 106 kB 106 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-oo4q9Asx.js 143 kB 143 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/Media3DTop-Cs23jet3.js 2.38 kB 2.38 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/MediaAudioTop-Dcqq8Gxq.js 2 kB 2 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/MediaImageTop-CL-IUQg2.js 2.34 kB 2.34 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/MediaVideoTop-BT-xaonP.js 2.84 kB 2.84 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/mixpanel.module-8zOLYqHx.js 143 B 143 B ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-a8JaViDA.js 361 kB 361 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-BERYuxnG.js 403 kB 403 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-BIol3Gbf.js 365 kB 365 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-BrKl0qyL.js 355 kB 355 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-DboKwoAr.js 403 kB 403 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-DMWi1ecp.js 358 kB 358 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-DOtY9DlY.js 361 kB 361 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-ElTwAiJr.js 437 kB 437 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-eQUHT2Sb.js 334 kB 334 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-sDRdXfSP.js 332 kB 332 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-taVdHuAC.js 374 kB 374 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/OBJLoader2WorkerModule-DTMpvldF.js 109 kB 109 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/preservedQueryNamespaces-zCg1CMIu.js 3.23 kB 3.23 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/previousFullPath-Dp9NL2jF.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-DiNe_y99.js 4.21 kB 4.21 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/widget-C_FImE7Q.js 518 B 518 B ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetBoundingBox-DacGBD5y.js 4.71 kB 4.71 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetBoundingBox-XFIqgKWC.js 186 B 186 B ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetChart-BCeCvOsw.js 2.79 kB 2.79 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetColorPicker-DJv_OiOs.js 3.71 kB 3.71 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetGalleria-DFzOhbe5.js 4.57 kB 4.57 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetImageCompare-BHTPs7IK.js 3.79 kB 3.79 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetInputText-DnYiafRS.js 2.58 kB 2.58 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetLayoutField-Cp8NdP7s.js 2.61 kB 2.61 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetMarkdown-DmzeJUKz.js 3.22 kB 3.22 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/widgetPropFilter-Ce3E4Vjk.js 1.31 kB 1.31 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetTextarea-C4TXCK_T.js 3.52 kB 3.52 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetToggleSwitch-CBtVaKUU.js 3.08 kB 3.08 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B

Status: 30 added / 30 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

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
src/components/sidebar/ModeToggle.vue (1)

23-34: Same accessibility fix needed for the Graph Mode button.

Proposed fix
     <Button
       v-tooltip="{
         value: t('linearMode.graphMode'),
         showDelay: 300,
         hideDelay: 300
       }"
       size="icon"
+      :aria-label="t('linearMode.graphMode')"
       :variant="canvasStore.linearMode ? 'secondary' : 'inverted'"
       `@click`="useCommandStore().execute('Comfy.ToggleLinear')"
     >
🤖 Fix all issues with AI agents
In `@src/components/sidebar/ModeToggle.vue`:
- Around line 11-22: The Button in ModeToggle.vue is icon-only and lacks an
aria-label; add an aria-label attribute to the Button using the same translated
string used in the tooltip (t('linearMode.linearMode')) so screen readers get
the button purpose, keeping the existing v-tooltip, size, variant, and `@click`
(references: Button component, t('linearMode.linearMode'),
canvasStore.linearMode, useCommandStore().execute('Comfy.ToggleLinear')).

In `@src/renderer/extensions/linearMode/OutputHistory.vue`:
- Around line 105-146: The module-level outputsCache used by allOutputs grows
without bounds; update the cache strategy to avoid memory leaks by either
replacing outputsCache with a Map that enforces a max size/LRU eviction or by
clearing entries on component teardown. Specifically, change the outputsCache
usage in allOutputs (and where outputsCache is populated) to use a capped Map
with eviction logic, or import Vue's onUnmounted and clear/delete all keys from
outputsCache in an onUnmounted callback; ensure interactions with useAsyncState
and flattenNodeOutput remain the same and preserve storing the outputRef for
item.id.
- Around line 304-315: The progress bar elements lack ARIA semantics—add proper
accessibility attributes to convey progress to screen readers: on the visible
progress container (the element using progressBarContainerClass) set
role="progressbar" and provide aria-valuemin="0", aria-valuemax="100" and
aria-valuenow bound to the computed percentage (use
progressPercentStyle(totalPercent) value or a computed numeric totalPercent),
plus an aria-label or aria-labelledby describing the progress (e.g., "Output
generation progress"); for the layered bars (progressBarPrimaryClass and
progressBarSecondaryClass) ensure they do not duplicate roles (use
aria-hidden="true" if decorative) and consider adding aria-valuetext when you
need a localized percent string—use the existing progressPercentStyle and
currentNodePercent/totalPercent symbols to source the numeric values.
- Around line 125-146: The non-null assertion item!.id in function allOutputs
should be replaced with an explicit guard: capture the id early (e.g. const id =
item?.id) and use a conditional branch to ensure id is defined before caching
(outputsCache[id] = outputRef) and before the initial cache read; if id is
absent return [] immediately. Update all references in allOutputs (including the
initial if (item?.id && outputsCache[item.id]) check and the outputsCache
assignment) to use this explicit id guard to avoid the non-null assertion.

@AustinMroz AustinMroz added needs-backport Fix/change that needs to be cherry-picked to the current feature freeze branch cloud/1.37 Backport PRs for cloud 1.37 labels Jan 23, 2026
Comment on lines +100 to +145
function outputCount(item?: AssetItem) {
const user_metadata = getOutputAssetMetadata(item?.user_metadata)
if (!user_metadata?.allOutputs) return []
return user_metadata?.outputCount ?? 0
}

return user_metadata.allOutputs
const outputsCache: Record<string, MaybeRef<ResultItemImpl[]>> = {}

function flattenNodeOutput([nodeId, nodeOutput]: [
string | number,
NodeExecutionOutput
]): ResultItemImpl[] {
const knownOutputs: Record<string, ResultItem[]> = {}
if (nodeOutput.audio) knownOutputs.audio = nodeOutput.audio
if (nodeOutput.images) knownOutputs.images = nodeOutput.images
if (nodeOutput.video) knownOutputs.video = nodeOutput.video
if (nodeOutput.gifs) knownOutputs.gifs = nodeOutput.gifs as ResultItem[]
if (nodeOutput['3d']) knownOutputs['3d'] = nodeOutput['3d'] as ResultItem[]

return Object.entries(knownOutputs).flatMap(([mediaType, outputs]) =>
outputs.map(
(output) => new ResultItemImpl({ ...output, mediaType, nodeId })
)
)
}

function allOutputs(item?: AssetItem): MaybeRef<ResultItemImpl[]> {
if (item?.id && outputsCache[item.id]) return outputsCache[item.id]

const user_metadata = getOutputAssetMetadata(item?.user_metadata)
if (!user_metadata) return []
if (
user_metadata.allOutputs &&
user_metadata.outputCount &&
user_metadata.outputCount < user_metadata.allOutputs.length
)
return user_metadata.allOutputs

const outputRef = useAsyncState(
getJobDetail(user_metadata.promptId).then((jobDetail) => {
if (!jobDetail?.outputs) return []
return Object.entries(jobDetail.outputs).flatMap(flattenNodeOutput)
}),
[]
).state
outputsCache[item!.id] = outputRef
return outputRef
Copy link
Contributor

Choose a reason for hiding this comment

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

This code seems like it might fit better in a centralized location or composable rather than in a component, WDYT?

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

All the different history implementations are in need of a lot of polish/consolidation. The other implementations are close, but insufficient to fit the needs I have here. I think the correct move is to spend more time polishing those in order to be usable, but I couldn't justify the time that would be required to do so right now

That the implementation here isn't in a centralized location is for the best. I want to avoid my implementation becoming another competing standard.

The @/stores/queueStore implementation is closest, it just

  • Doesn't support loading more assets for use with useInfiniteScroll
  • Incorrectly casts outputs to ResultItem[]
    • Which means text outputs aren't handled
  • Is a little too needy in required inputs for construction of TaskItemImpl

@AustinMroz AustinMroz merged commit 3bfd62b into main Jan 24, 2026
40 of 42 checks passed
@AustinMroz AustinMroz deleted the austin/moar-linear-fixes branch January 24, 2026 05:08
github-actions bot pushed a commit that referenced this pull request Jan 24, 2026
- Fixes only the first output being displayed in linear mode after the
jobs migration
- Fixes selected output no longer scrolling into view in history
- Adds a progress bar indicator on running job
<img width="113" height="102" alt="image"
src="https://github.com/user-attachments/assets/ca684dbe-12c8-44aa-98f0-2985c0159156"
/>
- Moves linear toggle button to v-tooltip
- Fixes placeholder sometimes continuing to display after a new output.

┆Issue is synchronized with this [Notion
page](https://www.notion.so/PR-8250-Linear-progressbar-tooltips-and-output-fixes-2f06d73d365081ca9fa3ebf0e2516487)
by [Unito](https://www.unito.io)
@comfy-pr-bot
Copy link
Member

@AustinMroz Successfully backported to #8291

@github-actions github-actions bot removed the needs-backport Fix/change that needs to be cherry-picked to the current feature freeze branch label Jan 24, 2026
AustinMroz added a commit that referenced this pull request Jan 24, 2026
…#8291)

Backport of #8250 to `cloud/1.37`

Automatically created by backport workflow.

┆Issue is synchronized with this [Notion
page](https://www.notion.so/PR-8291-backport-cloud-1-37-Linear-progressbar-tooltips-and-output-fixes-2f26d73d36508170a083eef8dfd1be50)
by [Unito](https://www.unito.io)

---------

Co-authored-by: AustinMroz <austin@comfy.org>
Co-authored-by: GitHub Action <action@github.com>
@coderabbitai coderabbitai bot mentioned this pull request Jan 28, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

cloud/1.37 Backport PRs for cloud 1.37 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