-
Notifications
You must be signed in to change notification settings - Fork 391
Merge main into bl-selective-snapshot-update #6138
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Closed
snomiao
wants to merge
49
commits into
bl-selective-snapshot-update
from
bl-selective-snapshot-update-rebased-by-sno
Closed
Merge main into bl-selective-snapshot-update #6138
snomiao
wants to merge
49
commits into
bl-selective-snapshot-update
from
bl-selective-snapshot-update-rebased-by-sno
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
## Summary Continuation of #6032 ┆Issue is synchronized with this [Notion page](https://www.notion.so/PR-6037-add-aria-labels-on-vue-node-widgets-2-2-28b6d73d365081d68795f5dfaca0b89a) by [Unito](https://www.unito.io)
## Summary After #5292, at certain browser zoom levels, the xterm terminal did not fill horizontal space properly, showing a gap with mismatched background colors (`#171717` viewport vs `black` terminal content). Fixes #6049 ## Problem The hardcoded `#171717` terminal theme background only affected the xterm viewport, while terminal content remained black, causing a visible color mismatch at low zoom levels where the gap was more apparent. Fixed by keeping original theme when not on desktop distribution. ┆Issue is synchronized with this [Notion page](https://www.notion.so/PR-6056-fix-terminal-style-28c6d73d36508132b521e5767f41d540) by [Unito](https://www.unito.io)
## Summary Revise some traditional Chinese to simplified Chinese. <!-- One sentence describing what changed and why. --> ## Changes - **What**: <!-- Core functionality added/modified --> - **Breaking**: <!-- Any breaking changes (if none, remove this line) --> - **Dependencies**: <!-- New dependencies (if none, remove this line) --> ## Review Focus <!-- Critical design decisions or edge cases that need attention --> <!-- If this PR fixes an issue, uncomment and update the line below --> <!-- Fixes #ISSUE_NUMBER --> ## Screenshots (if applicable) <!-- Add screenshots or video recording to help explain your changes --> ┆Issue is synchronized with this [Notion page](https://www.notion.so/PR-6039-Fix-Simplified-Chinese-Translation-28b6d73d365081aebba5f60893b75cb3) by [Unito](https://www.unito.io)
## Summary This PR redesigns the graph canvas interface components including minimap, toolbox, and menu systems with updated spacing, colors, and interaction patterns - using the design tokens directly from Figma, which can be used elsewhere going forward. There are some other changes to the designs, outlined [here](https://www.notion.so/comfy-org/Update-Minimap-Menu-v2-2886d73d365080e88e12f8df027019c0): - [x] Update/standardize the padding between viewport and toolbox - [x] Update toolbox component’s style to match the other floating menus style (border radius, height, padding and follow theme colors) - [x] Expose the minimap button - [x] Remove the focus button and delete it’s keybinding - [x] Group the hand and the default cursor buttons https://github.com/user-attachments/assets/92542e60-c32d-4a21-a6f6-e72837a70b17 ## Review Focus New CSS variables for cross-component theming consistency and CanvasModeSelector component extraction for improved code organization. ┆Issue is synchronized with this [Notion page](https://www.notion.so/PR-6038-rework-minimap-toolbox-and-menu-designs-with-unified-theming-28b6d73d36508191a0c6cf8036d965c4) by [Unito](https://www.unito.io) --------- Co-authored-by: github-actions <[email protected]>
## Summary Updates the keybinding badges in the context menu (from selection toolbox and right click on Vue node) to align with [the design](https://www.figma.com/design/vALUV83vIdBzEsTJAhQgXq/Comfy-Design-System?node-id=3128-104039&m=dev) exactly, including using the tokens from Figma variables. https://github.com/user-attachments/assets/e37492f7-81a8-4598-bebb-56eb86b5dc56 ┆Issue is synchronized with this [Notion page](https://www.notion.so/PR-6059-style-update-design-of-keybinding-badges-in-menus-28c6d73d3650817784c8d8afac9ed8b8) by [Unito](https://www.unito.io)
This pull request introduces a new system for displaying environment-specific badges in the application's top bar, with a focus on supporting a "Comfy Cloud" badge in production environments. The changes include new badge types, extension support, UI components, and environment detection logic to ensure badges are only shown in appropriate contexts. **Topbar Badge System** * Added a new `TopbarBadge` type and support for topbar badges in the `ComfyExtension` interface to allow extensions to specify badges for the top bar. [[1]](diffhunk://#diff-c29886a1b0c982c6fff3545af0ca8ec269876c2cf3948f867d08c14032c04d66R24-R31) [[2]](diffhunk://#diff-c29886a1b0c982c6fff3545af0ca8ec269876c2cf3948f867d08c14032c04d66R85-R88) * Created a Pinia store `topbarBadgeStore` to aggregate topbar badges from all registered extensions for display. **UI Integration** * Added a new `TopbarBadges.vue` component to render topbar badges and integrated it into the top menu bar UI. [[1]](diffhunk://#diff-6f460b1398fd033a2059daca1f991c74ce572cef86046a3726d1b1a70a3a4325R1-R32) [[2]](diffhunk://#diff-b7d7bf1028f09fb907c09edf27631214d005c93b80eaff7cf15cfd53671b1e8aL5-R14) * Updated CSS variables and menu styling to support the new badge visuals. [[1]](diffhunk://#diff-71b6b57a56095b04e47c797a5016149b76b27971cab04b93f033f1f846e0f5a0R88-R89) [[2]](diffhunk://#diff-b7d7bf1028f09fb907c09edf27631214d005c93b80eaff7cf15cfd53671b1e8aL5-R14) **Environment Detection and Extension Registration** * Added a runtime environment detection utility to determine if the app is running in production or staging, replacing the previous build-time constant approach. * Registered a new `cloudBadge` extension that conditionally adds a "Comfy Cloud" badge with a "BETA" label when running in production. [[1]](diffhunk://#diff-b7818ca9daae2411d56695777160b8132507f2a3ff4f700d2510453c8833ca75R1-R15) [[2]](diffhunk://#diff-236993d9e4213efe96d267c75c3292d32b93aa4dd6c3318d26a397e0ae56bc87R2) ┆Issue is synchronized with this [Notion page](https://www.notion.so/PR-6048-Badge-for-cloud-environment-28c6d73d365081188050ece527c3c8f3) by [Unito](https://www.unito.io) <img width="996" height="897" alt="Screenshot 2025-10-14 at 20 02 40" src="https://github.com/user-attachments/assets/5a3258c5-87fc-46ae-ad23-7669696cb8b6" />
## Summary fix mask editor issues on vueNodes ┆Issue is synchronized with this [Notion page](https://www.notion.so/PR-5953-fix-mask-editor-bug-under-vueNodes-2856d73d3650810aa8a2e1a94c4d97a6) by [Unito](https://www.unito.io)
This pull request refactors how top bar badges are handled in the application, making badge rendering extensible and moving cloud badge logic into the extension system. The main changes include replacing the old `CloudBetaBadge` component with a new, generic badge system, introducing a Pinia store for badge management, and updating the extension API to support top bar badges. **Badge System Refactor and Extensibility** * Replaced the hardcoded `CloudBetaBadge` with a new `TopbarBadges` component, which dynamically renders badges from the store instead of relying on the `isCloud` flag in `TopMenubar.vue`. [[1]](diffhunk://#diff-b7d7bf1028f09fb907c09edf27631214d005c93b80eaff7cf15cfd53671b1e8aL9-R9) [[2]](diffhunk://#diff-b7d7bf1028f09fb907c09edf27631214d005c93b80eaff7cf15cfd53671b1e8aL43-R48) * Renamed and refactored `CloudBetaBadge.vue` to `TopbarBadge.vue`, making it accept a generic `badge` prop and removing i18n logic from the component. * Added a new `TopbarBadges.vue` component to render all badges from the `topbarBadgeStore`. **Badge Data Management** * Introduced a new Pinia store `topbarBadgeStore` that aggregates top bar badges from all extensions, enabling dynamic badge management. **Extension System Integration** * Updated the extension API (`ComfyExtension` interface) to support a new `topbarBadges` property, allowing extensions to contribute badges to the top bar. * Added a core extension (`cloudBadge.ts`) that registers a "Comfy Cloud" beta badge when running in a cloud environment, using the new badge system. [[1]](diffhunk://#diff-b7818ca9daae2411d56695777160b8132507f2a3ff4f700d2510453c8833ca75R1-R16) [[2]](diffhunk://#diff-236993d9e4213efe96d267c75c3292d32b93aa4dd6c3318d26a397e0ae56bc87R2) **Type Definitions** * Added a new `TopbarBadge` type to `comfy.ts` to define the structure for top bar badges, supporting optional labels.
## Summary The prices for Veo3.1 are the same as the existing Veo3, just added a new model via `||` ## Screenshots (if applicable) <img width="1125" height="1077" alt="Screenshot From 2025-10-15 20-39-37" src="https://github.com/user-attachments/assets/441cba83-cdd7-4bae-af0a-259c2dd38a59" /> ┆Issue is synchronized with this [Notion page](https://www.notion.so/PR-6074-add-pricing-for-new-Veo3-1-model-28d6d73d3650817b8bb8ea7442ff3e1a) by [Unito](https://www.unito.io)
## Summary Using this tool, will generates dist/stats.html after build, we can see the parts that are excessively large when packaged. ```bash pnpm run build:analyze ``` <img width="2486" height="1780" alt="CleanShot 2025-10-15 at 17 25 17@2x" src="https://github.com/user-attachments/assets/fd3ff5c9-2e7a-44a0-8b9f-4d87664c848c" /> ┆Issue is synchronized with this [Notion page](https://www.notion.so/PR-6072-chore-rollup-plugin-visualizer-28d6d73d36508184800cf7a67141b782) by [Unito](https://www.unito.io)
## Summary - Enhanced video control visibility logic for better UX - Added fullscreen gallery view with zoom-in button - Fixed hover interaction issues with overlays ## Changes ### Video Controls - **Before**: Controls hidden when not hovering - **After**: Controls always visible when not playing, hover-based during playback ### Overlay Behavior - **Before**: All overlays hidden during video playback - **After**: All overlays (actions, tags, layers) show on hover even during playback ### Gallery View - Added zoom-in button to top-right corner (all media types except 3D) - Integrated with existing ResultGallery component - Gallery closes when clicking dimmed background area ### Bug Fixes - Fixed hover flicker issue by proper event handling on overlay elements ## Test Plan - [x] Test video controls visibility (paused vs playing) - [x] Test overlay hover behavior during video playback - [x] Test zoom-in button opens gallery view - [x] Test gallery closes on background click - [x] Test 3D assets don't show zoom button - [x] Test in Storybook with various media types 🤖 Generated with [Claude Code](https://claude.ai/code) ┆Issue is synchronized with this [Notion page](https://www.notion.so/PR-6065-feat-Improve-MediaAssetCard-video-controls-and-add-gallery-view-28d6d73d3650818c90cfc5d0d00e4826) by [Unito](https://www.unito.io) --------- Co-authored-by: Claude <[email protected]>
## Summary Increase asset API limit to 500 to account for additional models being added. ┆Issue is synchronized with this [Notion page](https://www.notion.so/PR-6078-feat-assetService-increase-limit-to-500-28d6d73d365081539760f986dd5bff23) by [Unito](https://www.unito.io)
Adding `[skip ci]` causes release workflows to break and the added safety of rerunning tests is beneficial for releases. ┆Issue is synchronized with this [Notion page](https://www.notion.so/PR-6081-In-update-locales-workflow-don-t-skip-ci-28e6d73d365081208332ef7b11ebbb52) by [Unito](https://www.unito.io)
Prior to #6014, I had identified and started on #6015 to resolve what I believed to be a larger class of issues. While the issue I was solving produced the same error log on the same line, I misunderstood the circumstances in which the reported issue would occur. As proxyWidgets do not have their own value, only linked widgets should have their value restored from `widgets_values`. This PR adds an additional check both that the property entry is within bounds, and that the property entry is for a linked widget. See #6014 A potential additional issue is still being investigated. - Additional issue seems unrelated to fix here. Will leave issue open, but recommend merging this as is to not block v1.28.7 ┆Issue is synchronized with this [Notion page](https://www.notion.so/PR-6054-Add-additional-check-when-restoring-widgets_values-28c6d73d365081489d29fc9723132db0) by [Unito](https://www.unito.io)
## Summary 1. fix `preview_url` logic 2. design tweaks for border radius, fallback gradient, and name line clamping (2 lines) 3. handle image error states by showing gradient 4. misc. refactors ## Screenshots <img width="1515" height="1087" alt="Screenshot 2025-10-15 at 8 13 41 PM" src="https://github.com/user-attachments/assets/85642869-d8cb-4ee4-b23d-a381e33fe802" /> ┆Issue is synchronized with this [Notion page](https://www.notion.so/PR-6085-feat-AssetCard-tweaks-28e6d73d3650818da7a2f4148be48ff7) by [Unito](https://www.unito.io)
…on (#5891) ## Summary This PR implements a systematic naming convention for all GitHub workflows to improve organization and discoverability. All 22 workflows have been renamed and grouped by logical categories with consistent prefixes. ## Changes ### Naming Convention - **`ci-*`**: Continuous Integration workflows (testing, linting, validation) - **`pr-*`**: PR-specific automation triggered by labels - **`release-*`**: Release management workflows - **`types-*`**: TypeScript type generation workflows - **`i18n-*`**: Internationalization workflows ### Key Renames - `tests-ci.yaml` → `ci-tests-e2e.yaml` - `vitest-tests.yaml` → `ci-tests-unit.yaml` - `storybook-and-chromatic-ci.yaml` → `ci-tests-storybook.yaml` - `auto-backport.yaml` → `pr-backport.yaml` - `claude-pr-review.yml` → `pr-claude-review.yaml` - `version-bump.yaml` → `release-version-bump.yaml` - `publish-frontend-types.yaml` → `release-npm-types.yaml` - `create-dev-pypi-package.yaml` → `release-pypi-dev.yaml` ### Test Workflow Improvements - Grouped all test workflows under `ci-tests-*` pattern - Fork-safe deployment workflows: `ci-tests-e2e-forks.yaml`, `ci-tests-storybook-forks.yaml` - Added comments explaining fork deployment security workarounds ### Documentation - Added comprehensive `.github/workflows/README.md` - Documents naming conventions, best practices, and workflow organization - Includes trigger patterns and external dependencies ## Benefits 1. **Better Organization**: Workflows are now grouped logically by prefix 2. **Improved Discoverability**: Easy to find related workflows 3. **Consistent Naming**: All workflows follow the same pattern 4. **Clear Purpose**: Workflow names immediately indicate their function 5. **Maintainable**: README provides guidelines for future workflows ## Test Plan - [x] All workflow cross-references updated - [x] Display names match new file names - [x] Fork deployment workflows properly reference main workflows - [x] Release workflows reference correct npm types workflow - [x] All workflows retain original functionality 🤖 Generated with [Claude Code](https://claude.ai/code) ┆Issue is synchronized with this [Notion page](https://www.notion.so/PR-5891-refactor-reorganize-GitHub-workflows-with-consistent-naming-convention-2806d73d365081febe47c7511bf0507e) by [Unito](https://www.unito.io) --------- Co-authored-by: Claude <[email protected]> Co-authored-by: Alexander Brown <[email protected]>
## Summary
Enhancing and further modernizing the UI, giving users more usable area
whilst keeping farmiliar positioning and feel of elements.
## Changes
- **What**: Significant restructure of the UI elements, changing
elements from large blocks to floating elements, updating:
- Side toolbar menu (floating style, supports small/normal mode,
combines to scroll on height overflow)
- Bottom tabs panel (floating style, tabs redesigned)
- Action bar (support for docking/undocking menu)
- Added login/user menu button to top right
- Restyled breadcrumbs (still collapse when overflows)
- Add litegraph support for fps info position (so it isn't covered by
the sidebar)
- **Breaking**:
- Removed various elements and added new ones, I have tested custom
sidebars, custom actions, etc but if scripts are inserting elements into
"other" elements they may have been (re)moved.
- Remove support for bottom menu
- Remove support for 2nd-row tabs
## Screenshots
<img width="1116" height="907" alt="ui"
src="https://github.com/user-attachments/assets/b040a215-67d3-4c88-8c4d-f402a16a34f6"
/>
https://github.com/user-attachments/assets/571dbda5-01ec-47e8-b235-ee1b88c93dd0
┆Issue is synchronized with this [Notion
page](https://www.notion.so/PR-5980-Floating-Menus-UI-rework-2866d73d3650810aac60cc1afe979b60)
by [Unito](https://www.unito.io)
---------
Co-authored-by: GitHub Action <[email protected]>
Co-authored-by: github-actions <[email protected]>
Allow for Right Click -> Save Image to work for the "SaveAnimatedWEBP" node. Fixing this revealed other existing issues: - Attempting to resize the node causes runaway scaling - Right clicking on the image directly causes a browser context menu without a save option. Significant rewriting has been performed to resolve both of these issues. ┆Issue is synchronized with this [Notion page](https://www.notion.so/PR-6095-Support-Right-Click-Save-for-animated-webp-28e6d73d3650818e85a2ec58c38c2aae) by [Unito](https://www.unito.io)
## Summary - rename the ImagePreview test file to use the .test.ts suffix required outside of browser tests - align with the eslint no-restricted-syntax rule that forbids .spec.ts files in tests-ui ## Testing - pnpm typecheck ------ https://chatgpt.com/codex/tasks/task_e_68f14718b0608330bd559182c9f7c62e ┆Issue is synchronized with this [Notion page](https://www.notion.so/PR-6093-Rename-ImagePreview-spec-to-test-28e6d73d36508191b7e0c076fd96e4a3) by [Unito](https://www.unito.io)
## Summary I believe tree-shaking does not affect [the shim](https://github.com/Comfy-Org/ComfyUI_frontend/blob/rizumu/perf/cloud-minify/build/plugins/comfyAPIPlugin.ts#L73), and it should safe to enable it. maybe we need to find the extension that will broke in this case. | | Rendered | Gzip | Brotli | |--------|-----------|----------|----------| | Before | 16.69 MB | 4.23 MB | 3.54 MB | | After | 12.07 MB | 3 MB | 2.53 MB |
When renaming a workflow through the breadcrumb bar. It is intended to complete the rename operation if the user clicks away from the text input. However, completing the text input by pressing enter can cause the rename operation to occur twice: On pressing enter and on loss of focus. When this occurs, the second rename causes, an error to be raised because renaming a workflow to the same name is not allowed. Worse, a user should be able to cancel a rename by pressing escape, but this still causes the "loss of focus" event to fire and rename the workflow anyways. As a simple fix to both of these, this PR disables rename on loss of focus. A rename only occurs when the user completes a rename operation with the enter key. Resolves #6051 ┆Issue is synchronized with this [Notion page](https://www.notion.so/PR-6052-Skip-rename-operation-on-focus-lost-28c6d73d3650815d9a5fecd8567d4299) by [Unito](https://www.unito.io)
…ons become desynced (#6058) ## Summary Added Vue mode guards to LiteGraph canvas to prevent dual event handling between Vue node components and LiteGraph node event handlers. Fixes a bug where the litegraph and vue positions become out of sync and then there are effectively dead spots on the canvas (the user should still be able to interact with the graph even if the positions desync - the only real downside of desync should just be mispositioned nodes in the serialized state). Returns early only in `processNodeClick` and the node-related (alt+click+drag node cloning) canvas handlers. In general, the LiteGraph canvas still owns some events/interactions - but the node interactions are fully owned by Vue when in Vue nodes mode. ## Changes - **What**: Added `LiteGraph.vueNodesMode` checks in [LGraphCanvas.ts](src/lib/litegraph/src/LGraphCanvas.ts) to skip native event processing when Vue components handle interactions - **Breaking**: This could have some side effects or break some extensions if anything was relying on these. However, prior to this change, things like `processNodeClick` should only have been getting the click events in de-sync scenarios anyway (described in [Summary](##Summary) section) ## Review Focus Any possible side-effects you can think of. ┆Issue is synchronized with this [Notion page](https://www.notion.so/PR-6058-fix-LiteGraph-capturing-node-pointer-events-if-Vue-and-LG-node-positions-become-desynced-28c6d73d365081f389f8c72299c31b0b) by [Unito](https://www.unito.io)
 ┆Issue is synchronized with this [Notion page](https://www.notion.so/PR-6011-Implement-a-legacy-canvas-widget-for-vue-mode-2896d73d36508127a5d1debcccb519a0) by [Unito](https://www.unito.io) --------- Co-authored-by: GitHub Action <[email protected]>
Minor version increment to 1.30.0 ┆Issue is synchronized with this [Notion page](https://www.notion.so/PR-6099-1-30-0-28f6d73d3650817b9505d85b906047c2) by [Unito](https://www.unito.io) --------- Co-authored-by: arjansingh <[email protected]> Co-authored-by: github-actions <[email protected]>
## Summary - Updated Prettier from 3.3.2 to 3.6.2 in pnpm-workspace.yaml - Ran `pnpm install` to update dependencies - Ran `pnpm format` to apply new formatting rules - Verified typecheck passes ## Test plan - [x] TypeScript typecheck passes - [x] Prettier formatting applied successfully 🤖 Generated with [Claude Code](https://claude.com/claude-code) ┆Issue is synchronized with this [Notion page](https://www.notion.so/PR-6089-chore-Upgrade-Prettier-from-3-3-2-to-3-6-2-28e6d73d3650816a888ff1129b14e0bc) by [Unito](https://www.unito.io) --------- Co-authored-by: Claude <[email protected]> Co-authored-by: Christian Byrne <[email protected]>
…6060) Updates style of mask editor button on Vue nodes image preview overlay to align with [design](https://www.figma.com/design/31uH3r4x3xbIctuRWYW6NM/V3---Vue-Nodes?node-id=7744-84270&m=dev). Also makes the custom mask have color be derived from text color class. ┆Issue is synchronized with this [Notion page](https://www.notion.so/PR-6060-style-update-style-of-mask-editor-button-on-Vue-node-image-preview-28c6d73d36508111a562c6a22c64f027) by [Unito](https://www.unito.io) --------- Co-authored-by: GitHub Action <[email protected]>
Moves around pointer events styling so that mouse events near the top and side bar don't get swallowed. Resolves #6102 ┆Issue is synchronized with this [Notion page](https://www.notion.so/PR-6103-Fix-mouse-clicks-being-swallowed-by-new-menu-28f6d73d3650819aa4a1dc1eacfd3adb) by [Unito](https://www.unito.io)
…6101) ## Summary - Investigated Claude Review workflow failures after CI workflow renaming - Found and fixed outdated workflow references in `.claude/commands` files - Created comprehensive workflow evolution documentation ## Problem Claude Review workflows were failing, initially thought to be due to workflow name changes in commit 5a7ec81. Investigation revealed the real issues and uncovered additional documentation problems. ## Root Cause Analysis After checking the [lewagon/wait-on-check-action documentation](https://github.com/lewagon/wait-on-check-action): - `check-regexp` matches against job names (`jobs.<job_id>.name`) - Job names like `lint-and-format`, `test`, `playwright-tests` were never changed - The real issue was Playwright test failures, not regex patterns ## Findings & Fixes ### 1. Claude Review Workflow ✅ - **Issue**: Failures were caused by actual test failures (e.g., `playwright-tests-chromium-sharded (8, 8): completed (failure)`) - **Fix**: Reverted unnecessary regex changes since original patterns were correct ### 2. Outdated Command References ❌→✅ Found 5 outdated workflow references in `.claude/commands` files: | File | Old Reference | New Reference | |------|---------------|---------------| | `create-frontend-release.md` | `release.yaml` | `release-draft-create.yaml` | | `create-frontend-release.md` | `create-release-candidate-branch.yaml` | `release-branch-create.yaml` | | `create-frontend-release.md` | `release.yaml` (in script) | `release-draft-create.yaml` | | `create-hotfix-release.md` | `release.yaml` | `release-draft-create.yaml` | | `create-frontend-release.md` | workflow text reference | updated to match filename | ### 3. Historical Analysis & Documentation 📚 Created comprehensive workflow evolution timeline: #### Documentation Added: - `logs/workflow-renames.md`: Complete mapping of all workflow name changes - `logs/report.md`: Comprehensive audit report with findings and recommendations - `logs/track-workflow-renames.md`: **Exhaustive history of all 77 workflow files that ever existed** #### Key Historical Insights: - **77 unique workflow files** have existed since 2024-06-13 - **195 commits** analyzed affecting workflows - **10 evolution phases** from ad-hoc naming to systematic categorization - **52 rename operations** and **10 file deletions** - **68% reduction** through optimization (77 total → 25 active) #### Timeline Highlights: - **2024-06-13**: `test-ui.yaml` - first workflow ever created - **2025-10-01**: First major reorganization (17 renames) - **2025-10-02**: Category-based naming introduction (`ci-*`, `pr-*`, `release-*`) - **2025-10-16**: API category refinement (`api-update-*`) - **2025-10-17**: Final consolidation (our current branch) #### Evolution Patterns: - **Era 1**: Descriptive names (`test-ui.yaml`, `format.yaml`) - **Era 2**: Category prefixes (`ci-*`, `pr-*`, `release-*`) - **Era 3**: Action-target patterns (`api-update-*-types.yaml`) - **Era 4**: Semantic categorization (current state) ## Impact - ✅ Claude Review workflow now works correctly (job names were always correct) - ✅ Command documentation now references actual workflow files - ✅ Complete archaeological record of workflow evolution created - ✅ Future workflow changes will be easier to track with comprehensive documentation ## Test Plan - [x] Workflow syntax validation passes - [x] All `gh run list --workflow=<filename>` commands in docs now work - [x] Documentation provides complete historical context - [ ] Monitor if Claude Review works properly once underlying test failures are resolved 🤖 Generated with [Claude Code](https://claude.ai/code) --------- Co-authored-by: Claude <[email protected]> Co-authored-by: Alexander Brown <[email protected]>
> "The watcher that should keep the active workflow tab visible compares the tab’s bounds against the scroll panel’s content element, whose rectangle spans the entire scroll width instead of the visible viewport. As a result, when the active tab starts off-screen, the computed offsets stay ≤ 0 and no corrective scroll occurs, so the selected tab remains hidden." fixes #6057 ------ https://chatgpt.com/codex/tasks/task_e_68efe2b5b4a08330940a20552c1db339
## Summary Expands the PR backport workflow so maintainers can target any release branch using labels, instead of being limited to the `core/x.y` release lines. The workflow now collects labels formatted as plain version numbers (`1.24`) as before, plus new prefixes like `branch:release/hotfix` or `backport:partner/foo`, validates that each referenced branch exists, and then cherry-picks the source merge commit to every target. All generated PRs and failure comments reference the actual branch name, making it clear where the backport landed or why it failed. This keeps the existing opt-in flow (`needs-backport`) but makes it flexible enough for custom support and partner branches without extra manual work. ┆Issue is synchronized with this [Notion page](https://www.notion.so/PR-6108-ci-extend-backport-workflow-to-work-with-arbitrary-branches-28f6d73d365081bf85a3d4c40a23bb68) by [Unito](https://www.unito.io)
Adds a new keybind to attempt to toggle the promotion state of the currently hovered widget Adds a keybind to open the subgraph configuration panel Neither of these options are given a default binding. Cleans up some incorrect version and icon information that was forgotten about. ┆Issue is synchronized with this [Notion page](https://www.notion.so/PR-6114-Add-subgraph-management-keybinds-28f6d73d365081e6b6f3c78f99afc094) by [Unito](https://www.unito.io) --------- Co-authored-by: Benjamin Lu <[email protected]>
…6080) ## Summary Refactor and cleanup `WorkflowTabs` scroll/overflow handling to improve stability, ensure proper watcher disposal, and keep the active tab in view more reliably. note: honestly a nit, can drop if review is too annoying ## Changes - **What**: - Replace `ScrollPanel` ref with `containerRef` and query `.p-scrollpanel-content` within the container. - Add computed `scrollContent` to centralize access to the scrollable element. - Add `ensureActiveTabVisible({ waitForDom })` option to skip `nextTick` when not needed. - Rework watchers with explicit `WatchStopHandle`s and `onCleanup` to stop previous watchers and dispose `overflowObserver` correctly when `scrollContent` changes. - Update arrow enable logic by watching `arrivedState.left/right` together and setting `leftArrowEnabled`/`rightArrowEnabled` immediately. - Only measure and re-ensure visibility when overflowing; call `scrollState.measure()` and `ensureActiveTabVisible({ waitForDom: false })` after arrows update. - **Breaking**: None - **Dependencies**: None ## Review Focus - Correctness of watcher lifecycle and cleanup when `scrollContent` changes - Arrow enablement behavior at scroll boundaries - Reliability of `ensureActiveTabVisible` across tab selection and overflow changes - Regressions in scroll performance and tab visibility ## Screenshots (if applicable) N/A ┆Issue is synchronized with this [Notion page](https://www.notion.so/PR-6080-WorkflowTabs-cleanup-scroll-overflow-handling-and-watcher-disposal-28d6d73d3650819cba6de70fb10354ad) by [Unito](https://www.unito.io)
## Summary show bundle size info automatically in Pull Request ┆Issue is synchronized with this [Notion page](https://www.notion.so/PR-6082-ci-size-report-28e6d73d365081c2bf73ce9919a7c01a) by [Unito](https://www.unito.io)
<img width="1350" height="691" alt="image" src="https://github.com/user-attachments/assets/4a1a909f-463e-4c77-8855-6fe0a177b659" /> Design docs show icon as being reversed in litegraph mode. If needed, fixing this is basically just removing a negative sign. LiteGraph implementation was not as clean as I hoped. I can spend some more time divining some non-magic constants, and mayybe resolve the svg data from css styles if desired. Resolves #4647 Resolves #6107 ┆Issue is synchronized with this [Notion page](https://www.notion.so/PR-6115-Move-subgraph-badge-into-node-title-2906d73d365081e4ba82d321fc27afed) by [Unito](https://www.unito.io) --------- Co-authored-by: GitHub Action <[email protected]>
…assword updates (#6109) ## Summary Implemented error recovery system to handle Firebase `auth/requires-recent-login` errors when deleting accounts or updating passwords. https://github.com/user-attachments/assets/92a79e2a-cff5-4b18-b529-dbaf5f2303f2 ## Changes - **What**: Added [ErrorRecoveryStrategy pattern](https://firebase.google.com/docs/auth/web/manage-users#re-authenticate_a_user) to `useErrorHandling` composable with automatic retry logic for sensitive Firebase operations - **Breaking**: None - recovery strategies are optional, all existing code unchanged ## Technical Details Firebase enforces [reauthentication](https://firebase.google.com/docs/reference/js/auth#autherrorcodes) for security-sensitive operations (account deletion, password changes) after ~5 minutes of inactivity. Previously these operations failed with cryptic error messages. New flow: 1. Operation throws `auth/requires-recent-login` 2. Recovery strategy shows confirmation dialog 3. User logs out and re-authenticates 4. Operation automatically retries ┆Issue is synchronized with this [Notion page](https://www.notion.so/PR-6109-auth-handle-auth-requires-recent-login-for-account-deletion-and-password-updates-28f6d73d36508119abf4ce30eecea976) by [Unito](https://www.unito.io)
Simplifies code with tautological condition. The extension is only loaded when `isCloud` is true due to https://github.com/Comfy-Org/ComfyUI_frontend/blob/38f188759dac8d3d8923156dd238c26594421f20/src/extensions/core/index.ts#L27-L29 ┆Issue is synchronized with this [Notion page](https://www.notion.so/PR-6106-refactor-simplify-redundant-check-in-cloud-badge-extension-28f6d73d365081d69903f5a985fdc8be) by [Unito](https://www.unito.io)
## Summary Updates `ComfyApp.getRandParam()` to return an empty string on cloud builds (detected via `isCloud`), letting hosted deployments rely on HTTP caching for `/view` assets while local hosts retain the legacy cache busting. The audio widget helpers now defer to the same method instead of generating their own random suffix, so every frontend consumer shares this logic. This keeps the original overwrite protection for localhost workflows but removes needless cache misses in the cloud stack, where GCS already serve strong ETags and there is not really a concern about stale filenames. Once the backend exposes a deterministic file-version field, we can delete the remaining local-only randomness entirely. ┆Issue is synchronized with this [Notion page](https://www.notion.so/PR-6105-perf-disable-cache-busting-param-on-cloud-28f6d73d36508181b34afad406fabc59) by [Unito](https://www.unito.io)
## Summary Continuation of #6068: set `SHOULD_MINIFY` in build workflows to enable minification. Our build plugin dictates what files are available for extensions to import at runtime: https://github.com/Comfy-Org/ComfyUI_frontend/blob/bfe083dcbad61965b0ef04cf91d06a9cddaca361/build/plugins/comfyAPIPlugin.ts#L52 The shimming marks these files and their named exports and named memebrs as side-effectful, so names should be preserved from the perspective of 3rd party extensions, making this safe in theory. ┆Issue is synchronized with this [Notion page](https://www.notion.so/PR-6116-ci-enable-minification-in-build-workflows-2906d73d36508141be57f63b619f9f16) by [Unito](https://www.unito.io)
…6062) ## Summary Change colors to match Figma variables. ┆Issue is synchronized with this [Notion page](https://www.notion.so/PR-6062-style-update-dropdown-button-text-class-in-Vue-node-upload-widgets-28c6d73d365081ae8857ddcef06784ef) by [Unito](https://www.unito.io) --------- Co-authored-by: github-actions <[email protected]>
#6094) Fixed the AUDIO_RECORD widget to display correctly in both rendering modes: - Removed conflicting AUDIO_RECORD registration from ComfyWidgets that was blocking the custom widget implementation in uploadAudio.ts extension - Changed canvasOnly flags from true to false on both audioUIWidget and recordWidget to enable Vue nodes rendering - Added type override (recordWidget.type = 'audiorecord') after widget creation to enable Vue component lookup while preserving LiteGraph button rendering - Removed unused IAudioRecordWidget type definition The widget now works correctly: - LiteGraph mode: Displays as a functional button - Vue nodes mode: Displays full recording UI with waveform visualization ## Summary <!-- One sentence describing what changed and why. --> ## Changes - **What**: <!-- Core functionality added/modified --> - **Breaking**: <!-- Any breaking changes (if none, remove this line) --> - **Dependencies**: <!-- New dependencies (if none, remove this line) --> ## Review Focus <!-- Critical design decisions or edge cases that need attention --> <!-- If this PR fixes an issue, uncomment and update the line below --> <!-- Fixes #ISSUE_NUMBER --> ## Screenshots (if applicable) <!-- Add screenshots or video recording to help explain your changes --> https://github.com/user-attachments/assets/cf6513d4-0a4b-4210-88e2-a948855b5206 ┆Issue is synchronized with this [Notion page](https://www.notion.so/PR-6094-fix-Enable-AUDIO_RECORD-widget-in-both-LiteGraph-and-Vue-nodes-modes-28e6d73d365081faa879f53e3e2dddad) by [Unito](https://www.unito.io) --------- Co-authored-by: bymyself <[email protected]>
#6110) ## Summary Fixes minimap not updating when node bypass/mute state changes in vue nodes mode by adding `onTrigger` tracking of relevant instrumented properties. ┆Issue is synchronized with this [Notion page](https://www.notion.so/PR-6110-fix-minimap-not-re-rendering-when-Vue-nodes-change-mode-bypass-mute-28f6d73d36508112bab1ce031705c6a9) by [Unito](https://www.unito.io) --------- Co-authored-by: github-actions <[email protected]>
Patch version increment to 1.30.1 ┆Issue is synchronized with this [Notion page](https://www.notion.so/PR-6124-1-30-1-2906d73d36508176a9a0dca7ecfbb40c) by [Unito](https://www.unito.io) --------- Co-authored-by: christian-byrne <[email protected]> Co-authored-by: github-actions <[email protected]>
## Summary Mark this test as `fixme` while I fix it. Don't want to disrupt CI signal for other repo maintainers - the test has already been broken for nearly 2 days now which is not acceptable. ┆Issue is synchronized with this [Notion page](https://www.notion.so/PR-6127-Mark-failing-vue-nodes-bypass-test-as-fixme-temporarily-2906d73d36508186a1def1d2dc7f85a5) by [Unito](https://www.unito.io) --------- Co-authored-by: GitHub Action <[email protected]>
) ## Summary Ensures all the floating shell app elements (graph canvas menu, minmap, floating sidebar) all have .5rem gap between edge and viewport. Was not proper distance for graph canvas menu and minimap due to splitter overlay (parent) itself having 8px gap from viewport. **After**: <img width="605" height="535" alt="Screenshot from 2025-10-18 01-34-51" src="https://github.com/user-attachments/assets/215efd5c-541f-441a-8b0d-1eb1f6fce672" /> ┆Issue is synchronized with this [Notion page](https://www.notion.so/PR-6120-style-ensure-all-floating-menus-have-same-gap-from-screen-edges-2906d73d365081598ae4d16f2380baf8) by [Unito](https://www.unito.io) --------- Co-authored-by: github-actions <[email protected]>
…nches (rather than just on main) (#6117) ## Summary Added configurable base branch selection to version bump workflows, enabling patch releases from `core/*` branches via GitHub Actions UI. ## Changes - **What**: Extended [workflow_dispatch inputs](https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#workflow_dispatch) with `branch` parameter for both main frontend and desktop-ui version bump workflows - **Validation**: Added branch existence check that lists available `core/*` branches on error - **Workflow modifications**: - `release-version-bump.yaml`: Checkout and create PRs targeting user-specified branch - `version-bump-desktop-ui.yaml`: Same behavior for desktop-ui releases ## Review Focus Branch validation logic correctly handles both local (`refs/heads/`) and remote (`refs/remotes/origin/`) refs. Default value preserves backward compatibility for release sheriffs unfamiliar with new feature. ## Use Case Previously, patch releases from `core/1.29` required manual version bumping. Now maintainers can trigger from Actions UI with dropdown selections. ┆Issue is synchronized with this [Notion page](https://www.notion.so/PR-6117-ci-allow-manual-workflow-dispatch-to-do-version-bumping-on-core-branches-rather-than-j-2906d73d365081cba3aff46471206a9e) by [Unito](https://www.unito.io)
## Summary Adjust size reporting scripts to aggregate baseline/current metrics, render collapsible GitHub-friendly tables using `<details>`, and expanded bundle categorisation heuristics ┆Issue is synchronized with this [Notion page](https://www.notion.so/PR-6118-ci-collapsible-sections-in-ci-size-report-comments-2906d73d365081d0b302c09fa1b98ccb) by [Unito](https://www.unito.io)
Summary Implements cloud subscription management UI and flow for ComfyUI Cloud users. Core Features: - Subscription Status Tracking: Global reactive state management for subscription status across all components using shared subscriptionStatus ref - Subscribe to Run Button: Replaces the Run button in the actionbar with a "Subscribe to Run" button for users without active subscriptions - Subscription Required Dialog: Modal dialog with subscription benefits, pricing, and checkout flow with video background - Subscription Settings Panel: New settings panel showing subscription status, renewal date, and quick access to billing management - Auto-detection & Polling: Automatically polls subscription status after checkout completion and syncs state across the application https://github.com/user-attachments/assets/f41b8e6a-5845-48a7-8169-3a6fc0d2e5c8 ┆Issue is synchronized with this [Notion page](https://www.notion.so/PR-6064-subscription-page-28d6d73d36508135a2a0fe7c94b40852) by [Unito](https://www.unito.io) --------- Co-authored-by: GitHub Action <[email protected]>
## Summary Introduces a `GENERATE_SOURCEMAP` environment flag in `vite.config.mts` that defaults to enabled (`true` unless set to `'false'`). This keeps source maps on by default, while allowing opt-out for lean production artifacts. Allows the choice to be made as part of the distribution pipeline and changed for different targets. ┆Issue is synchronized with this [Notion page](https://www.notion.so/PR-6134-ci-allow-setting-GENERATE_SOURCEMAP-as-env-var-2916d73d3650815d91b9eff12b6e55fd) by [Unito](https://www.unito.io)
Resolved conflict in pr-update-playwright-expectations.yaml by keeping the detailed comments from the feature branch while adopting the updated workflow name from main.
🎭 Playwright Test Results⏰ Completed at: 10/19/2025, 04:08:23 AM UTC 📈 Summary
📊 Test Reports by Browser
🎉 Click on the links above to view detailed test results for each browser configuration. |
|
trying to update branch but seems not easy to review, closed |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This branch merges the latest changes from
mainintobl-selective-snapshot-update.Merge Conflict Resolution
The following conflict was resolved:
.github/workflows/pr-update-playwright-expectations.yaml"PR: Update Playwright Expectations"from mainSummary
The merge brings bl-selective-snapshot-update up to date with main. Please review the conflict resolution approach and merge if satisfactory.
┆Issue is synchronized with this Notion page by Unito