AustinMroz
35e5f37221
[backport core/1.38] fix: localize node definition filter names and descriptions ( #8564 )
...
Backport of #8540 to core/1.38
Does not include dev-node changes since that has not been backported.
┆Issue is synchronized with this [Notion
page](https://www.notion.so/PR-8564-backport-core-1-38-fix-localize-node-definition-filter-names-and-descriptions-2fc6d73d365081f1855ef5d1e0700329 )
by [Unito](https://www.unito.io )
Co-authored-by: Christian Byrne <cbyrne@comfy.org >
2026-02-03 11:02:59 -08:00
Comfy Org PR Bot
c8fd9a5374
1.38.13 ( #8578 )
...
Patch version increment to 1.38.13
**Base branch:** `core/1.38`
┆Issue is synchronized with this [Notion
page](https://www.notion.so/PR-8578-1-38-13-2fc6d73d36508122b4c3dc622c48232e )
by [Unito](https://www.unito.io )
Co-authored-by: comfy-pr-bot <172744619+comfy-pr-bot@users.noreply.github.com >
v1.38.13
2026-02-02 22:13:14 -08:00
Comfy Org PR Bot
ded366008e
[backport core/1.38] fix: dedupe queueStore.update() to prevent race conditions ( #8557 )
...
Backport of #8523 to `core/1.38`
Automatically created by backport workflow.
┆Issue is synchronized with this [Notion
page](https://www.notion.so/PR-8557-backport-core-1-38-fix-dedupe-queueStore-update-to-prevent-race-conditions-2fc6d73d36508159ba03dd7ff626ecce )
by [Unito](https://www.unito.io )
Co-authored-by: Christian Byrne <cbyrne@comfy.org >
Co-authored-by: Amp <amp@ampcode.com >
2026-02-02 17:40:13 -08:00
Comfy Org PR Bot
d48e99db7c
[backport core/1.38] fix: node header on preview has a gap on the right (not flush) ( #8555 )
...
Backport of #8487 to `core/1.38`
Automatically created by backport workflow.
┆Issue is synchronized with this [Notion
page](https://www.notion.so/PR-8555-backport-core-1-38-fix-node-header-on-preview-has-a-gap-on-the-right-not-flush-2fc6d73d365081a1b1cae2afb0675e9a )
by [Unito](https://www.unito.io )
Co-authored-by: Christian Byrne <cbyrne@comfy.org >
2026-02-02 17:39:08 -08:00
Comfy Org PR Bot
c138670bf6
[backport core/1.38] fix: add Frame Nodes to core menu items for multi-selection context menu ( #8553 )
...
Backport of #8524 to `core/1.38`
Automatically created by backport workflow.
┆Issue is synchronized with this [Notion
page](https://www.notion.so/PR-8553-backport-core-1-38-fix-add-Frame-Nodes-to-core-menu-items-for-multi-selection-context--2fc6d73d36508188be6be38de9df2ba0 )
by [Unito](https://www.unito.io )
Co-authored-by: Christian Byrne <cbyrne@comfy.org >
Co-authored-by: Amp <amp@ampcode.com >
2026-02-02 17:38:27 -08:00
Comfy Org PR Bot
e4f1950af5
[backport core/1.38] fix: update reactive ref after merge in imagePreviewStore ( #8502 )
...
Backport of #8479 to `core/1.38`
Automatically created by backport workflow.
┆Issue is synchronized with this [Notion
page](https://www.notion.so/PR-8502-backport-core-1-38-fix-update-reactive-ref-after-merge-in-imagePreviewStore-2f96d73d3650815f944cc401a8c2d264 )
by [Unito](https://www.unito.io )
---------
Co-authored-by: Christian Byrne <cbyrne@comfy.org >
Co-authored-by: Amp <amp@ampcode.com >
Co-authored-by: Austin Mroz <austin@comfy.org >
2026-01-31 23:40:30 -08:00
Comfy Org PR Bot
44e630d00f
[backport core/1.38] Update control_after_generate schema ( #8506 )
...
Backport of #8505 to `core/1.38`
Automatically created by backport workflow.
┆Issue is synchronized with this [Notion
page](https://www.notion.so/PR-8506-backport-core-1-38-Update-control_after_generate-schema-2f96d73d36508106b677fafb3fe302fe )
by [Unito](https://www.unito.io )
Co-authored-by: AustinMroz <austin@comfy.org >
2026-01-30 21:43:04 -08:00
Comfy Org PR Bot
d27f9faa9e
[backport core/1.38] fix: prevent image/video preview reset on dynamic widget addition ( #8492 )
...
Backport of #8366 to `core/1.38`
Automatically created by backport workflow.
┆Issue is synchronized with this [Notion
page](https://www.notion.so/PR-8492-backport-core-1-38-fix-prevent-image-video-preview-reset-on-dynamic-widget-addition-2f86d73d36508123acfdfac61554da7e )
by [Unito](https://www.unito.io )
Co-authored-by: Christian Byrne <cbyrne@comfy.org >
Co-authored-by: Subagent 5 <subagent@example.com >
Co-authored-by: Amp <amp@ampcode.com >
2026-01-30 08:37:38 -08:00
Comfy Org PR Bot
c902869b2c
[backport core/1.38] fix: properties panel obscures menus in legacy layout ( #8490 )
...
Backport of #8474 to `core/1.38`
Automatically created by backport workflow.
┆Issue is synchronized with this [Notion
page](https://www.notion.so/PR-8490-backport-core-1-38-fix-properties-panel-obscures-menus-in-legacy-layout-2f86d73d36508181977df8801754eca7 )
by [Unito](https://www.unito.io )
Co-authored-by: Christian Byrne <cbyrne@comfy.org >
Co-authored-by: Amp <amp@ampcode.com >
2026-01-30 08:23:40 -08:00
Comfy Org PR Bot
ff9823e8f0
[backport core/1.38] Fix: Hide Jobs in Assets Panel when Queue V2 is disabled. ( #8485 )
...
Backport of #8450 to `core/1.38`
Automatically created by backport workflow.
Co-authored-by: Alexander Brown <drjkl@comfy.org >
2026-01-30 08:03:27 +00:00
AustinMroz
bc4e060e92
Revert matchtype slot reactivity on core/1.38 ( #8481 )
...
Fixes a bug where canvas functionality is lost if a multitype input
(like the native switch) is added to the graph in litegraph mode.
See also #8477
┆Issue is synchronized with this [Notion
page](https://www.notion.so/PR-8481-Revert-matchtype-slot-reactivity-on-core-1-38-2f86d73d365081ac8e0aeb5ce96fe685 )
by [Unito](https://www.unito.io )
2026-01-29 23:09:57 -08:00
Comfy Org PR Bot
bc31970939
[backport core/1.38] feat: add category support for blueprints and protect global blueprints ( #8465 )
...
Backport of #8378 to `core/1.38`
Automatically created by backport workflow.
┆Issue is synchronized with this [Notion
page](https://www.notion.so/PR-8465-backport-core-1-38-feat-add-category-support-for-blueprints-and-protect-global-bluepri-2f86d73d365081b79a8be0ac55d87f0f )
by [Unito](https://www.unito.io )
Co-authored-by: Christian Byrne <cbyrne@comfy.org >
Co-authored-by: Subagent 5 <subagent@example.com >
Co-authored-by: Amp <amp@ampcode.com >
Co-authored-by: GitHub Action <action@github.com >
Co-authored-by: AustinMroz <austin@comfy.org >
2026-01-29 19:15:42 -08:00
Comfy Org PR Bot
6bab72feb9
[backport core/1.38] Improve template search input performance issue ( #8471 )
...
Backport of #8343 to `core/1.38`
Automatically created by backport workflow.
┆Issue is synchronized with this [Notion
page](https://www.notion.so/PR-8471-backport-core-1-38-Improve-template-search-input-performance-issue-2f86d73d365081e3afbff8779ea0ebe0 )
by [Unito](https://www.unito.io )
Co-authored-by: Kelly Yang <124ykl@gmail.com >
Co-authored-by: Alexander Brown <drjkl@comfy.org >
2026-01-29 19:13:41 -08:00
Comfy Org PR Bot
390deac188
[backport core/1.38] fix: default image input for the template is displayed as empty on dropdown selection ( #8455 )
...
Backport of #8276 to `core/1.38`
Automatically created by backport workflow.
┆Issue is synchronized with this [Notion
page](https://www.notion.so/PR-8455-backport-core-1-38-fix-default-image-input-for-the-template-is-displayed-as-empty-on-d-2f86d73d3650814a895ddbb921bc4776 )
by [Unito](https://www.unito.io )
Co-authored-by: Rizumu Ayaka <rizumu@ayaka.moe >
Co-authored-by: Alexander Brown <drjkl@comfy.org >
Co-authored-by: github-actions <github-actions@github.com >
2026-01-29 16:59:19 -08:00
Comfy Org PR Bot
e4d1554b80
[backport core/1.38] Fix invalid keybind flash ( #8451 )
...
Backport of #8435 to `core/1.38`
Automatically created by backport workflow.
┆Issue is synchronized with this [Notion
page](https://www.notion.so/PR-8451-backport-core-1-38-Fix-invalid-keybind-flash-2f86d73d365081ba8443ffc6696a9d4d )
by [Unito](https://www.unito.io )
Co-authored-by: AustinMroz <austin@comfy.org >
2026-01-29 16:34:48 -08:00
Comfy Org PR Bot
94956089f1
[backport core/1.38] Fix Help Center display in linear mode ( #8448 )
...
Backport of #8438 to `core/1.38`
Automatically created by backport workflow.
┆Issue is synchronized with this [Notion
page](https://www.notion.so/PR-8448-backport-core-1-38-Fix-Help-Center-display-in-linear-mode-2f86d73d365081ebb6a7d6de3c4555e3 )
by [Unito](https://www.unito.io )
Co-authored-by: AustinMroz <austin@comfy.org >
2026-01-29 16:21:52 -08:00
Comfy Org PR Bot
af3f96c0ca
[backport core/1.38] make new queue panel disabled by default ( #8445 )
...
Backport of #8444 to `core/1.38`
Automatically created by backport workflow.
┆Issue is synchronized with this [Notion
page](https://www.notion.so/PR-8445-backport-core-1-38-make-new-queue-panel-disabled-by-default-2f76d73d36508182b643e4cf25962fef )
by [Unito](https://www.unito.io )
Co-authored-by: Christian Byrne <cbyrne@comfy.org >
2026-01-29 16:16:16 -08:00
Comfy Org PR Bot
ada3145c2d
[backport core/1.38] fix: dragging (e.g., when selecting text) in Markdown note causes node to drag ( #8427 )
...
Backport of #8413 to `core/1.38`
Automatically created by backport workflow.
┆Issue is synchronized with this [Notion
page](https://www.notion.so/PR-8427-backport-core-1-38-fix-dragging-e-g-when-selecting-text-in-Markdown-note-causes-no-2f76d73d3650813e8e28c101270bc42f )
by [Unito](https://www.unito.io )
Co-authored-by: Christian Byrne <cbyrne@comfy.org >
Co-authored-by: Subagent 5 <subagent@example.com >
Co-authored-by: Amp <amp@ampcode.com >
2026-01-29 10:04:47 -08:00
Comfy Org PR Bot
89c76f6861
[backport core/1.38] fix: use getAuthHeader in createCustomer to support API key auth ( #8425 )
...
Backport of #8408 to `core/1.38`
Automatically created by backport workflow.
┆Issue is synchronized with this [Notion
page](https://www.notion.so/PR-8425-backport-core-1-38-fix-use-getAuthHeader-in-createCustomer-to-support-API-key-auth-2f76d73d36508136b4f1c043c384caa2 )
by [Unito](https://www.unito.io )
Co-authored-by: Christian Byrne <cbyrne@comfy.org >
Co-authored-by: Subagent 5 <subagent@example.com >
Co-authored-by: Amp <amp@ampcode.com >
2026-01-29 10:04:01 -08:00
Comfy Org PR Bot
b660638f22
[backport core/1.38] fix: add ResizeObserver to fix Preview3D initial render stretch ( #8423 )
...
Backport of #8351 to `core/1.38`
Automatically created by backport workflow.
┆Issue is synchronized with this [Notion
page](https://www.notion.so/PR-8423-backport-core-1-38-fix-add-ResizeObserver-to-fix-Preview3D-initial-render-stretch-2f76d73d365081a28ccbd2b5d9eb1aa5 )
by [Unito](https://www.unito.io )
Co-authored-by: Terry Jia <terryjia88@gmail.com >
2026-01-29 10:03:12 -08:00
Comfy Org PR Bot
a96938a495
[backport core/1.38] Fix flake hidream test ( #8420 )
...
Backport of #8406 to `core/1.38`
Automatically created by backport workflow.
┆Issue is synchronized with this [Notion
page](https://www.notion.so/PR-8420-backport-core-1-38-Fix-flake-hidream-test-2f76d73d36508162ad34d8bc11f000b6 )
by [Unito](https://www.unito.io )
Co-authored-by: AustinMroz <austin@comfy.org >
2026-01-29 00:11:10 -08:00
Comfy Org PR Bot
f6b571013d
[backport core/1.38] [bugfix] Fix manager missing node tab with shared composable ( #8410 )
...
Backport of #8409 to `core/1.38`
Automatically created by backport workflow.
┆Issue is synchronized with this [Notion
page](https://www.notion.so/PR-8410-backport-core-1-38-bugfix-Fix-manager-missing-node-tab-with-shared-composable-2f76d73d36508137b1e8daadb13cb631 )
by [Unito](https://www.unito.io )
Co-authored-by: Jin Yi <jin12cc@gmail.com >
2026-01-29 00:05:17 -08:00
Comfy Org PR Bot
54e8775acb
[backport core/1.38] fix: add null check in getCanvasCenter to prevent crash on asset insert ( #8403 )
...
Backport of #8399 to `core/1.38`
Automatically created by backport workflow.
┆Issue is synchronized with this [Notion
page](https://www.notion.so/PR-8403-backport-core-1-38-fix-add-null-check-in-getCanvasCenter-to-prevent-crash-on-asset-ins-2f76d73d365081b6af21e13162afafc5 )
by [Unito](https://www.unito.io )
Co-authored-by: Jin Yi <jin12cc@gmail.com >
2026-01-28 20:48:47 -08:00
Comfy Org PR Bot
13e8aa7466
[backport core/1.38] fix: increase Vue node resize handle size for better usability ( #8394 )
...
Backport of #8391 to `core/1.38`
Automatically created by backport workflow.
┆Issue is synchronized with this [Notion
page](https://www.notion.so/PR-8394-backport-core-1-38-fix-increase-Vue-node-resize-handle-size-for-better-usability-2f76d73d365081baa796c6d8c62c4352 )
by [Unito](https://www.unito.io )
Co-authored-by: Christian Byrne <cbyrne@comfy.org >
Co-authored-by: Subagent 5 <subagent@example.com >
Co-authored-by: Amp <amp@ampcode.com >
Co-authored-by: GitHub Action <action@github.com >
2026-01-28 19:50:43 -08:00
Comfy Org PR Bot
7a224efaa0
[backport core/1.38] CI: Add formatting after generating locales. ( #8361 )
...
Backport of #8360 to `core/1.38`
Automatically created by backport workflow.
┆Issue is synchronized with this [Notion
page](https://www.notion.so/PR-8361-backport-core-1-38-CI-Add-formatting-after-generating-locales-2f66d73d365081c09af5df4c2e0a898b )
by [Unito](https://www.unito.io )
Co-authored-by: Alexander Brown <drjkl@comfy.org >
2026-01-27 22:41:54 -08:00
Christian Byrne
5c99f89e9d
test: improve refreshRemoteConfig test quality ( #8356 )
...
Addresses review feedback from #8266 :
- Use vi.stubGlobal for global fetch mock
- Extract mockSuccessResponse and mockErrorResponse helpers to reduce
duplication
- Add test verifying 500 responses preserve existing config (only
401/403 clear config)
Related: #8266
┆Issue is synchronized with this [Notion
page](https://www.notion.so/PR-8356-test-improve-refreshRemoteConfig-test-quality-2f66d73d365081f7b207c2fd2b8a8179 )
by [Unito](https://www.unito.io )
2026-01-27 22:18:34 -07:00
Jin Yi
4cf55a7215
[refactor] Manager dialog design improvements ( #8247 )
...
## Summary
Refactored Manager dialog components for cleaner button rendering logic
and improved visibility.
## Changes
- **InfoPanelHeader**: Centralized button rendering logic (try update,
uninstall, install) instead of using slot overrides
- **PackTryUpdateButton**: Changed variant from `textonly` to `inverted`
for better visibility
- **InfoPanel**: Removed slot override and unused imports, simplified
component
- **ManagerDialog**: Design modifications for improved UX
- **PackCard/PackBanner**: Component refinements
- **useManagerDisplayPacks**: New composable for display pack management
## Review Focus
- Button visibility and styling with `inverted` variant
- Centralized button logic in InfoPanelHeader
## Before
[manager-before.webm](https://github.com/user-attachments/assets/4cef5f10-9cb2-4a31-a095-b170643e481d )
## After
[manager-after.webm](https://github.com/user-attachments/assets/9b693b32-59ca-4c88-b7e7-9a78aba19df7 )
┆Issue is synchronized with this [Notion
page](https://www.notion.so/PR-8247-refactor-Manager-dialog-design-improvements-2f06d73d365081bf9f07efa043caa378 )
by [Unito](https://www.unito.io )
2026-01-28 14:11:46 +09:00
Christian Byrne
e8b088ce50
feat: add composable to determine if user is eligible for nightly survey(s) ( #8189 )
...
## Summary
Adds `useSurveyEligibility` composable that determines whether a user
should see a survey based on multiple criteria: nightly localhost build
only (`isNightly && !isCloud && !isDesktop`), configurable usage
threshold (default 3), 14-day global cooldown between any surveys,
once-per-feature-ever display, optional percentage-based sampling, and
user opt-out support. All state persists to localStorage. Includes
extensive unit tests covering all eligibility conditions.
See:
- https://github.com/Comfy-Org/ComfyUI_frontend/pull/8149
- https://github.com/Comfy-Org/ComfyUI_frontend/pull/8175
┆Issue is synchronized with this [Notion
page](https://www.notion.so/PR-8189-feat-add-composable-to-determine-if-user-is-eligible-for-nightly-survey-s-2ee6d73d365081f088f2fd76032cc60a )
by [Unito](https://www.unito.io )
---------
Co-authored-by: GitHub Action <action@github.com >
Co-authored-by: Alexander Brown <drjkl@comfy.org >
2026-01-27 21:31:00 -07:00
Simula_r
34fc28a39d
Feat/workspaces 5 auth gate check ( #8350 )
...
## Summary
- Fix auth related race conditions with a new WorkspaceAuthGate in
App.vue
- De dup initialization calls
- Add state machine to track state of refreshRemoteConfig
- Fix websocket not using new workspace jwt
- Misc improvments
## Changes
- **What**: Mainly WorkspaceAuthGate.vue
- **Breaking**: <!-- Any breaking changes (if none, remove this line)
-->
- **Dependencies**: <!-- New dependencies (if none, remove this line)
-->
┆Issue is synchronized with this [Notion
page](https://www.notion.so/PR-8350-Feat-workspaces-5-auth-gate-check-2f66d73d365081b1a49afcd418fab3e7 )
by [Unito](https://www.unito.io )
2026-01-27 20:28:44 -08:00
pythongosssss
d890e7568a
Add asset deletion progress indicator ( #7906 )
...
## Summary
Currently the delay between user action and visual response is too long
and it looks like it hasn't worked.
This adds a visual indicator that the action is processing.
## Changes
- add loading indicator while asset is deleting
## Screenshots (if applicable)
(Artifically delayed deletion)
https://github.com/user-attachments/assets/a9a8b9fe-896d-4666-b643-ec8b990f6444
┆Issue is synchronized with this [Notion
page](https://www.notion.so/PR-7906-Add-asset-deletion-progress-indicator-2e26d73d365081ed82b8e770ba3d0615 )
by [Unito](https://www.unito.io )
---------
Co-authored-by: Alexander Brown <drjkl@comfy.org >
Co-authored-by: Jin Yi <jin12cc@gmail.com >
2026-01-27 21:21:50 -07:00
Benjamin Lu
2c54b0dab0
Revert/undo-788f5083-ef8657bb ( #8353 )
...
This reverts the addition of GTM for 1.38, as it was still present in
the built files.
┆Issue is synchronized with this [Notion
page](https://www.notion.so/PR-8353-Revert-undo-788f5083-ef8657bb-2f66d73d365081818d43fcaab220a4ef )
by [Unito](https://www.unito.io )
2026-01-28 03:48:31 +00:00
Jin Yi
17bd5f527a
feat: Add cancel button to active job card in grid view ( #8264 )
...
## Summary
Add a cancel (x) button overlay to active job cards in grid view,
matching the existing list view behavior.
## Changes
- **What**: Added hover-triggered cancel button to `ActiveJobCard.vue`
using the existing `useJobActions` composable
- Button appears on hover for jobs in cancellable states (pending,
initialization, running)
<img width="1710" height="1107" alt="스크린샷 2026-01-23 오후 5 11 04"
src="https://github.com/user-attachments/assets/31a6b6d1-46e7-49c4-a253-92260cb28514 "
/>
<img width="1710" height="1107" alt="스크린샷 2026-01-23 오후 5 10 59"
src="https://github.com/user-attachments/assets/b559a81e-8e62-4858-b8e7-92de9caa2919 "
/>
┆Issue is synchronized with this [Notion
page](https://www.notion.so/PR-8264-feat-Add-cancel-button-to-active-job-card-in-grid-view-2f16d73d3650817d83f0dd3b955759cb )
by [Unito](https://www.unito.io )
---------
Co-authored-by: GitHub Action <action@github.com >
2026-01-28 12:25:57 +09:00
AustinMroz
89571c7a64
Prevent configuring a node to a placeholder nodeId ( #8342 )
...
Litegraph uses `-1 ` as a placeholder node id to indicate that a node
should be assigned a new node id when added to the graph. Under some
unknown circumstances it's possible for a node to have this placeholder
id saved in a workflow file.
When this occurs, the node is loaded and assigned a new id, but then
configured back to the placeholder id. This PR makes it so the newly
assigned id is kept instead.
┆Issue is synchronized with this [Notion
page](https://www.notion.so/PR-8342-Prevent-configuring-a-node-to-a-placehodler-nodeId-2f56d73d365081ed8217e989187b15c8 )
by [Unito](https://www.unito.io )
2026-01-27 19:01:06 -08:00
Alexander Brown
a7862fc4b7
feat: Asset Browser Placeholder update ( #8349 )
...
## Summary
Remind Creators that they can add models that they don't have available
yet
┆Issue is synchronized with this [Notion
page](https://www.notion.so/PR-8349-feat-Asset-Browser-Placeholder-update-2f66d73d3650815f83b4e7ce3587740c )
by [Unito](https://www.unito.io )
---------
Co-authored-by: GitHub Action <action@github.com >
2026-01-27 18:58:50 -08:00
AustinMroz
803062bccd
Prevent partial copy of custom widgets when performing linked promotion on subgraphs ( #6079 )
...
The `toConcrete` call creates a restricted view of a widget that extends
from `BaseWidget`. A copy of the widget created by `createCopyForNode`
will also inherit this restricted view. This creates two problems
- Some widget properties (like `displayValue`) have been judged unsafe
and are explicitly blacklisted from being copied
- The widget now extends from `BaseWidget`. This results in the widget
being processed differently in some logic, such as `#processWidgetClick`
- Because `LegacyWidget` provides an implementation for `onClick`, the
presence of click handlers can not be used to determine which should be
used.
As a proposed, minimal workaround. Widgets which do not already extend
from BaseWidget are no longer cloned through `createCopyForNode`.
Because this PR involves side-stepping properties which have been
explicitly blacklisted. I'd recommend waiting to merge/backport until
after the release of 1.28.7
Resolves Kosinkadink/ComfyUI-VideoHelperSuite#569
┆Issue is synchronized with this [Notion
page](https://www.notion.so/PR-6079-Prevent-partial-copy-of-custom-widgets-when-performing-linked-promotion-on-subgraphs-28d6d73d36508198950efd401186ddef )
by [Unito](https://www.unito.io )
---------
Co-authored-by: Alexander Brown <drjkl@comfy.org >
Co-authored-by: GitHub Action <action@github.com >
2026-01-27 18:45:48 -08:00
Jin Yi
e3bad033ed
[refactor] SearchBox and MultiSelect style improvements ( #8328 )
2026-01-28 02:11:45 +00:00
Johnpaul Chiwetelu
3b5d285fe2
Fix: Implement scope-aware filtering for template modal ( #8335 )
...
## Summary
- Fixes template filtering to be scope-aware, preventing empty results
when switching categories
- Filters now only show as selected when they exist in the current
category scope
- User selections are still persisted in localStorage for convenience
## Problem
When users selected filters (e.g., Image-specific filters) and switched
to a different category (e.g., Video), the persisted filters would cause
empty results because those filter values didn't exist in the new scope.
## Solution
- Modified `useTemplateFiltering` composable to track which filters are
"active" (applicable to current scope)
- Only active filters are shown as selected in the UI
- Only active filters are applied to the filtering logic
- All user selections are still persisted in localStorage
- When returning to a category, previously selected filters
automatically reactivate if applicable
## Test Plan
Tested manually in browser:
1. Navigate to Image category
2. Select filters like "Image" and "Image Edit" from Tasks dropdown
3. Switch to Video category - filters show as "0 selected" (Image/Image
Edit don't exist in Video)
4. Return to Image category - filters are automatically reselected (2
selected)
5. No empty results when switching between categories
## Changes
- `useTemplateFiltering.ts`: Added scope-aware filtering logic with
active/inactive filter distinction
- `WorkflowTemplateSelectorDialog.vue`: Pass navigation context and use
active filters for UI
- `useTemplateFiltering.test.ts`: Added comprehensive tests for
scope-aware behavior
https://github.com/user-attachments/assets/706ddabf-abad-4ff9-a378-6603d275d15a
2026-01-28 03:03:30 +01:00
Alexander Brown
aa5125cef6
Chore: Oxfmt formatting pass ( #8341 )
...
## Summary
Expanding the covered files to format. One-time formatting pass. To be
added to the `.git-blame-ignore-revs`
┆Issue is synchronized with this [Notion
page](https://www.notion.so/PR-8341-Chore-Oxfmt-formatting-pass-2f56d73d365081f2988fcb7570f9a2a1 )
by [Unito](https://www.unito.io )
2026-01-27 17:59:19 -08:00
Kelly Yang
f0eecdfdfa
Refactor DropZone to use VueUse useDropZone ( #8174 )
...
## Summary
Refactor DropZone to use VueUse useDropZone. (#7971 , #7734 )
## Changes
- **What**: Replaced `@dragover`, `@dragleave`, and `@drop` bindings
with `useDropZone`.
## Review Focus
## Screenshots
┆Issue is synchronized with this [Notion
page](https://www.notion.so/PR-8174-Refactor-DropZone-to-use-VueUse-useDropZone-2ee6d73d365081ed9d31d68f7cf42263 )
by [Unito](https://www.unito.io )
2026-01-27 20:25:58 -05:00
Zhiqi Yao
68f3f2f537
Fix Chinese translation "paste" misspelling ( #8316 )
...
## Summary
Fixed the `站贴` misspelling. The original translation is a common
misspelling using Pinyin IME because they are pronounced the same in
Chinese.
## Changes
- Change translation: `站贴` to `粘贴`
## Review Focus
Check the fact that `粘贴` is correct in Chinese. If you're not a Chinese
speaker, copy `粘贴` to Google Translate, and it should be `paste`
exactly.
┆Issue is synchronized with this [Notion
page](https://www.notion.so/PR-8316-Fix-Chinese-translation-paste-misspelling-2f46d73d3650814884e3e4adf8edeb5d )
by [Unito](https://www.unito.io )
2026-01-27 17:43:31 -07:00
Alexander Brown
bcb4d6e403
fix: await needsLogin ( #8340 )
...
## Summary
Add additional protection for bootstrap order issues.
┆Issue is synchronized with this [Notion
page](https://www.notion.so/PR-8340-fix-await-needsLogin-2f56d73d365081c9b3c6d5a091c1eb8d )
by [Unito](https://www.unito.io )
---------
Co-authored-by: Amp <amp@ampcode.com >
2026-01-27 14:04:35 -08:00
Alexander Brown
50461d401a
Add a placeholder logo. ( #8321 )
...
## Summary
We could also color it.
┆Issue is synchronized with this [Notion
page](https://www.notion.so/PR-8321-Add-a-placeholder-logo-2f46d73d3650819496a2f46d805afc4e )
by [Unito](https://www.unito.io )
---------
Co-authored-by: Amp <amp@ampcode.com >
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: AustinMroz <austin@comfy.org >
2026-01-27 13:22:35 -08:00
Benjamin Lu
ef8657bb5d
fix: include items array in purchase dataLayer ( #8339 )
...
Include GA4-style `items` payload for subscription purchase events so
GTM receives the full item array.
So, to align with GA4's ecommerce standards, we changed it to an items
array:
https://developers.google.com/analytics/devguides/collection/ga4/item-scoped-ecommerce
2026-01-27 13:04:50 -08:00
Alexander Brown
14369c08a3
refactor: parallelize bootstrap and simplify lifecycle with VueUse ( #8307 )
...
## Summary
Refactors bootstrap and lifecycle management to parallelize
initialization, use Vue best practices, and fix a logout state bug.
## Changes
### Bootstrap Store (`bootstrapStore.ts`)
- Extract early bootstrap logic into a dedicated store using
`useAsyncState`
- Parallelize settings, i18n, and workflow sync loading (previously
sequential)
- Handle multi-user login scenarios by deferring settings/workflows
until authenticated
### GraphCanvas Refactoring
- Move non-DOM composables (`useGlobalLitegraph`, `useCopy`, `usePaste`,
etc.) to script setup level for earlier initialization
- Move `watch` and `whenever` declarations outside `onMounted` (Vue best
practice)
- Use `until()` from VueUse to await bootstrap store readiness instead
of direct async calls
### GraphView Simplification
- Replace manual `addEventListener`/`removeEventListener` with
`useEventListener`
- Replace `setInterval` with `useIntervalFn` for automatic cleanup
- Move core command registration to script setup level
### Bug Fix
Using `router.push()` for logout caused `isSettingsReady` to persist as
`true`, making new users inherit the previous user's cached settings.
Reverted to `window.location.reload()` with TODOs for future store reset
implementation.
## Testing
- Verified login/logout cycle clears settings correctly
- Verified bootstrap sequence completes without errors
---------
Co-authored-by: Amp <amp@ampcode.com >
2026-01-27 12:50:13 -08:00
Benjamin Lu
788f50834c
feat: add cloud gtm injection ( #8311 )
...
## Summary
Add GTM injection for cloud distribution builds and push SPA page view +
signup events.
## Changes
- **What**: Inject GTM script into head-prepend and noscript iframe into
body-prepend for cloud builds
- **What**: Push `page_view` to `dataLayer` on cloud route changes
(page_location + page_title)
- **What**: Push `sign_up` to `dataLayer` after successful account
creation (email/google/github)
- **Dependencies**: None
## Review Focus
- Placement order for head-prepend/body-prepend and cloud-only gating
- Route-change page_view payload shape
- Signup event emission only for new users
## Screenshots (if applicable)
<img width="1512" height="860" alt="Screenshot 2026-01-26 at 11 38
11 AM"
src="https://github.com/user-attachments/assets/03fb61db-5ca4-4432-9704-bbdcc4c6c1b7 "
/>
<img width="1512" height="862" alt="Screenshot 2026-01-26 at 11 38
26 AM"
src="https://github.com/user-attachments/assets/6e46c855-a552-4e52-9800-17898a512d4d "
/>
2026-01-27 12:44:15 -08:00
Alexander Brown
75fd4f0e67
feat: Make the text for the value control a clickable label ( #8334 )
...
## Summary
More clickable!
┆Issue is synchronized with this [Notion
page](https://www.notion.so/PR-8334-feat-Make-the-text-for-the-value-control-a-clickable-label-2f56d73d365081e79886eddeec03458e )
by [Unito](https://www.unito.io )
---------
Co-authored-by: GitHub Action <action@github.com >
2026-01-27 20:16:06 +00:00
Johnpaul Chiwetelu
3946d7b5ff
Road to no explicit any part 8 group 5 ( #8329 )
...
## Summary
- Add `createMockLLink` and `createMockLinks` factory functions to
handle hybrid Map/Record types
- Replace `as any` assertions with type-safe factory functions in
minimap tests
- Implement proper Pinia store mocking using `vi.hoisted()` pattern
- Remove unused `createMockSubgraph` export (shadowed by local
implementations)
## Test plan
- [x] All minimap tests pass (29 tests)
- [x] `pnpm typecheck` passes
- [x] `pnpm lint` passes
- [x] `pnpm knip` passes
┆Issue is synchronized with this [Notion
page](https://www.notion.so/PR-8329-Road-to-no-explicit-any-part-8-group-5-2f56d73d365081218882de81d5526220 )
by [Unito](https://www.unito.io )
---------
Co-authored-by: AustinMroz <austin@comfy.org >
2026-01-27 19:25:15 +01:00
Alexander Brown
440e25e232
fix(test): Mobile Settings ( #8332 )
...
## Summary
Bigger mask.
┆Issue is synchronized with this [Notion
page](https://www.notion.so/PR-8332-fix-test-Mobile-Settings-2f56d73d3650813b8e39ea5d77e39c18 )
by [Unito](https://www.unito.io )
---------
Co-authored-by: github-actions <github-actions@github.com >
2026-01-27 00:21:15 -08:00
Comfy Org PR Bot
7ad43c689c
1.38.12 ( #8313 )
...
Patch version increment to 1.38.12
**Base branch:** `main`
---------
Co-authored-by: christian-byrne <72887196+christian-byrne@users.noreply.github.com >
Co-authored-by: github-actions <github-actions@github.com >
Co-authored-by: Alexander Brown <drjkl@comfy.org >
v1.38.12
2026-01-27 04:44:39 +00:00
Alexander Brown
c8785c32dd
feat: add Hugging Face model source support ( #8330 )
...
Add support for Hugging Face as a model source in the Model Info Panel.
- Display HF logo for Hugging Face sources
- Extract source URL from `repo_url` metadata field
┆Issue is synchronized with this [Notion
page](https://www.notion.so/PR-8330-feat-add-Hugging-Face-model-source-support-2f56d73d3650816b8a01d903411ee3a1 )
by [Unito](https://www.unito.io )
Co-authored-by: Amp <amp@ampcode.com >
2026-01-26 20:37:18 -08:00