mirror of
https://github.com/Comfy-Org/ComfyUI_frontend.git
synced 2026-02-04 15:10:06 +00:00
chore/include-scripts-tailwind
6 Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
c3c2681819 |
[feat] Implement pull_request_target deployment for forked PRs - solves secret access issue (#5209)
* [feat] Fix CI workflow issues for forked PRs and improve test diagnostics This commit addresses two critical blockers in the CI workflow: 1. **Cloudflare Token Access Issue**: - Added conditional deployment that skips Cloudflare Pages for forked PRs - Forked PRs now get artifact-based report access instead of live URLs - Maintains security by preventing secret access from external repos 2. **Test Startup Issues**: - Enhanced ComfyUI server startup with better diagnostics - Added server PID tracking and process status verification - Improved error messages and timeout handling Additional improvements: - Updated PR comment logic to handle both deployment scenarios - Added FORK_TESTING.md documentation for contributors - Enhanced deployment info handling for summary generation Fixes #5207 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * [feat] Implement pull_request_target deployment for forked PRs Add secure deployment solution for Playwright reports from forked PRs using pull_request_target event. Key Changes: - Add deploy-playwright-reports.yaml workflow using pull_request_target - Update test-ui.yaml to work with new deployment approach - Add comprehensive security documentation Security Features: - No untrusted code execution (artifacts only) - Follows GitHub security best practices - Maintains full secret access for deployment - Clear audit trail and logging Fixes #5207 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * [feat] Implement cost-optimized deployment with webhook triggers Replace expensive polling mechanism with repository_dispatch webhooks to reduce GitHub Actions costs by 85%. Key improvements: - Remove 30-minute polling wait in deploy-playwright-reports.yaml - Add repository_dispatch trigger for instant deployment activation - Implement concurrency controls to prevent redundant deployments - Add webhook trigger from test completion in test-ui.yaml - Maintain security and forked PR support Cost benefits: - Eliminates 4 Ubuntu runners waiting up to 30min each - Reduces API calls from 240+ to 1 per PR - Event-driven architecture for better reliability - No timeout risks or polling overhead 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * [cleanup] Simplify PR testing approach per review feedback - Revert enhanced ComfyUI server startup logging - Remove complex fork handling and webhook triggers - Simplify Cloudflare deployment to original approach - Remove FORK_TESTING.md and PULL_REQUEST_TARGET_DEPLOYMENT.md files - Remove deploy-playwright-reports.yaml workflow - Documentation moved to PR comments for better visibility 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * [feat] Implement workflow_run architecture for CI comment/deploy separation Restructures CI workflows to use workflow_run triggers, improving forked PR support and simplifying core testing workflows. - pr-playwright-comment.yaml - Comments Playwright test results after Tests CI completion - pr-storybook-comment.yaml - Comments Storybook build status after Chromatic completion - pr-playwright-deploy.yaml - Deploys Playwright reports with secret access after Tests CI completion - chromatic.yaml - Removed all commenting logic, focused on Chromatic testing only - test-ui.yaml - Removed deployment, commenting, and comment-summary job; focused on Playwright testing only - ✅ Better forked PR support - workflow_run has access to secrets for deployment - ✅ Cleaner separation of concerns - testing vs commenting/deployment - ✅ Reduced complexity in core testing workflows - ✅ Improved reliability for external contributors 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * [feat] Implement workflow_run for both start and completion events - Updated pr-playwright-comment.yaml to trigger on both 'requested' and 'completed' events - Updated pr-storybook-comment.yaml to trigger on both 'requested' and 'completed' events - Added conditional logic to post different messages for workflow start vs completion - Added "Tests are starting..." message when workflows begin - Added "Build is starting..." message for Storybook builds - Maintained existing completion logic with full test results and reports This allows users to see immediate feedback when their workflows start running, improving the user experience by providing real-time status updates. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * [cleanup] Remove continue-on-error from comment workflows Comment workflow failures should be visible rather than silently ignored. This allows better debugging when PR comments fail to post. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * [feat] Add logging when no PR found in comment workflows - Add explicit logging step when steps.pr.outputs.result == 'null' - Shows branch name, workflow run ID, repository, and event details - Improves debugging when workflow_run triggers but finds no open PR - Helps identify issues with branch name matching or PR state Previously these workflows would silently skip all steps when no PR was found, making it difficult to debug why comments weren't being posted. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * Update workflow formatting 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * [security] Implement security hardening for workflow_run workflows - Add URL sanitization for deployment report links to prevent malicious URL injection - Pin third-party GitHub Actions to commit hashes for supply chain security - Add repository validation checks to prevent workflow misconfiguration - Validate deployment URLs against pages.dev pattern before using in comments Following security recommendations from code review to implement defense-in-depth. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * [security] Pin only third-party actions to commit hashes Keep official GitHub actions (actions/github-script, actions/download-artifact) pinned to version tags as they are trusted first-party actions, while only pinning third-party edumserrano/find-create-or-update-comment to commit hash for supply chain security. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> --------- Co-authored-by: Claude <noreply@anthropic.com> |
||
|
|
1b83d6b5a6 |
Migration: pnpm (#5215)
* migration: npm to pnpm Step 1, package and lockfile * migration: npm to pnpm Step 2: docs / LLM instructions * migration: npm to pnpm Step 3: More documentation updates * migration: npm to pnpm Step 4: Even more documentation * migration: npm to pnpm Step 5: GitHub Actions * migration: npm to pnpm Step 6: PNPM installation in actions. This merge is going to be painful. * migration: npm to pnpm Unignore and add pnpm lockfile. * migration: npm to pnpm package-lock.json -> pnpm-lock.yaml * migration: explicit @primeuix/styled, move glob to prod deps * migration: more explicit deps required by the importmap plugin and vite * fix: missed merge artifact * fix: Make sure pnpm is available to install wrangler * migration: pnpm for dev-release.yaml * migration: new setup action version Won't work until that is updated and a new release is cut. * migration: Playwright needs uuid * migration: Add explicit deps for lobehub * chore(version-bump.yaml): change cache from npm to pnpm to optimize package management and improve build performance * migration: install pnpm in version-bump action --------- Co-authored-by: snomiao <snomiao@gmail.com> |
||
|
|
62e06f4358 |
[ci] Enhance CI/CD caching across all workflows (#5117)
* [ci] Enhance CI/CD caching across all workflows - Add tool cache steps for node_modules/.cache, .cache, and .eslintcache - Enable npm caching for Node.js setup actions where missing - Add cache configurations for ESLint, Prettier, Knip, and other build tools - Improve build performance by caching tool outputs between runs - Use unique cache keys per workflow to avoid conflicts 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * [ci] Enhance CI/CD caching with comprehensive improvements Extends caching strategy beyond PR #5107 with additional optimizations: - **i18n.yaml**: Add tool cache for locale generation workflow - **update-electron-types.yaml**: Add tool cache for type updates - **test-ui.yaml**: Add Playwright browser cache and Python pip cache - **vitest.yaml**: Add coverage directory caching - **chromatic.yaml**: Add Storybook static build cache - **All build workflows**: Add TypeScript incremental build cache - **Type generation workflows**: Add repository caching for external repos - **lint-and-format.yaml**: Improve cache key granularity with source hash Performance improvements: - Playwright browser downloads cached across runs - Python pip dependencies cached - TSC incremental compilation cache preserved - Storybook static builds cached - External repository clones cached - More granular cache invalidation based on source changes 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * [ci] Optimize CI/CD caching for better performance - Enhance cache keys with more specific file patterns for better cache hit rates - Add missing cache directories (.prettierCache, .knip-cache, .vitest-cache, tsconfig.tsbuildinfo) - Improve cache key naming for clarity (lint-format, vitest, storybook, playwright) - Add better fallback cache restore keys - Include browser-specific caching for Playwright tests - Add TypeScript build info caching across workflows Expected improvements: - 20-40% faster builds on cache hits - More granular cache invalidation - Better cache utilization across tools 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * Apply suggestion from @DrJKL Co-authored-by: Alexander Brown <drjkl@comfy.org> * Apply suggestion from @DrJKL Co-authored-by: Alexander Brown <drjkl@comfy.org> * Apply suggestion from @DrJKL Co-authored-by: Alexander Brown <drjkl@comfy.org> * Apply suggestion from @DrJKL Co-authored-by: Alexander Brown <drjkl@comfy.org> * Apply suggestion from @DrJKL Co-authored-by: Alexander Brown <drjkl@comfy.org> * Apply suggestion from @DrJKL Co-authored-by: Alexander Brown <drjkl@comfy.org> * [ci] Remove redundant node_modules/.cache from workflow caches setup-node already handles node_modules caching when cache: 'npm' is enabled. Removed conflicting node_modules/.cache entries from: - .github/workflows/lint-and-format.yaml - .github/workflows/vitest.yaml - .github/workflows/test-ui.yaml This prevents cache conflicts and follows best practices for npm caching. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * Update .github/workflows/chromatic.yaml Co-authored-by: Alexander Brown <drjkl@comfy.org> * Update .github/workflows/update-electron-types.yaml Co-authored-by: Alexander Brown <drjkl@comfy.org> * fix: address reviewer feedback on cache optimization PR (#5200) * fix: remove duplicate cache entries and fix YAML formatting - Remove duplicate path entries in dev-release.yaml - Remove redundant node_modules/.cache entries since setup-node handles npm caching - Fix YAML indentation issues across workflow files Addresses reviewer feedback on PR #5117 about duplication and maintenance * fix: add cache-dependency-path for setup-node in test-ui workflow The test-ui workflow runs at repo root but package-lock.json is in ComfyUI_frontend/ subdirectory, causing setup-node cache to fail. Added cache-dependency-path to fix this. --------- Co-authored-by: Claude <noreply@anthropic.com> Co-authored-by: Alexander Brown <drjkl@comfy.org> Co-authored-by: Christian Byrne <cbyrne@comfy.org> |
||
|
|
5cc916bf9f |
[ci] Restrict chromatic workflow to version-bump-* PRs and manual triggers (#5167)
- Remove automatic trigger on push to main - Add workflow_dispatch for manual triggering - Add conditional to only run for PRs from version-bump-* branches - Reduces unnecessary Chromatic builds on regular PRs 🤖 Generated with [Claude Code](https://claude.ai/code) Co-authored-by: Claude <noreply@anthropic.com> |
||
|
|
c75255327a |
[ci] Make Chromatic and Playwright comment steps safe to fail (#5156)
Add continue-on-error: true to all PR comment steps in both chromatic.yaml and test-ui.yaml workflows to prevent GitHub API permission errors (403) from blocking essential CI processes. Changes: - chromatic.yaml: Added continue-on-error to 2 comment steps - test-ui.yaml: Added continue-on-error to 4 comment steps This ensures that visual testing (Chromatic) and browser testing (Playwright) continue to run even when PR commenting fails due to token permissions. Fixes #5149 🤖 Generated with [Claude Code](https://claude.ai/code) Co-authored-by: Claude <noreply@anthropic.com> |
||
|
|
451ef24ea6 |
[feat] Add Storybook setup and NodePreview story (#4861)
* [feat] Add Storybook setup and NodePreview story - Install and configure Storybook v9.1.1 for Vue 3 - Set up Storybook configuration with Vite integration - Add Pinia store support for Storybook environment - Create comprehensive NodePreview.stories.ts with multiple node examples: - KSampler node (complex node with multiple inputs/outputs) - CLIP Text Encode node (simple text input node) - VAE Decode node (image processing node) - Example with long markdown description - Configure project paths and aliases for Storybook - Stories demonstrate various ComfyUI node types with realistic mock data - Update tsconfig.eslint.json to include Storybook files - Fix ESLint issues with imports and number precision - Add Storybook ESLint plugin configuration 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * [feat] Improve Storybook configuration and setup - Add comprehensive PrimeVue theme setup with ComfyUI preset - Configure proper Vue app setup with Pinia stores, i18n, and services - Remove unused onboarding addon from Storybook dependencies - Improve Vite configuration with better chunking and alias resolution - Add proper CSS imports and styling for ComfyUI components 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * [docs] Add comprehensive Storybook documentation - Add README.md explaining Storybook usage, benefits, and comparison with other tools - Add CLAUDE.md with development guidelines for working with Storybook - Include best practices, troubleshooting tips, and integration notes - Address PR review feedback for better developer onboarding 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * [refactor] Remove ts-expect-error comment from Storybook preview 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * [bugfix] Fix TypeScript errors in Load3D components and GLTF test - Fix type mismatches in Load3DScene eventConfig by casting string values to proper enum types (MaterialMode, CameraType, UpDirection) - Fix Uint8Array vs ArrayBuffer type issues in GLTF test by using .buffer property - Remove unused @ts-expect-error comment in Rectangle.ts 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * [feat] Add Chromatic GitHub Action for Storybook visual testing - Add automated visual regression testing for Storybook components - Configure workflow to run on main branch and PRs - Auto-accept changes on main branch for baseline updates - Uses build-storybook script for optimized builds 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * [docs] Add Chromatic documentation to Storybook README - Document Chromatic visual testing integration - Add information about automated testing workflow - Include best practices for visual regression testing - Explain how to view and manage test results 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * chore(chromatic.yaml): restrict push branches to main only for better workflow management * [feat] Rebase branch onto main and update Storybook configuration - Rebase sno-storybook branch onto origin/main with latest changes - Update .storybook/main.ts with additional plugins and component configuration - Add icons and component resolvers for Storybook support - Update .gitignore with new entries - Regenerate package-lock.json after rebase conflicts 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * [bugfix] Fix TypeScript errors in SubgraphNode type checking Add proper type validation for subgraph node selection before calling SubgraphNode-specific methods. This prevents undefined values from being passed to functions expecting SubgraphNode parameters. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * fix(vite.config.mts): correct path alias for src directory to ensure proper resolution in the project refactor(vite.config.mts): adjust templates proxy configuration for better readability and maintainability * [feat] Remove bun.lock as it's now ignored * [bugfix] Fix Storybook builder require() error by converting main.ts to main.mjs - Convert .storybook/main.ts to main.mjs to resolve ES module compatibility - Use dynamic imports instead of static imports to avoid require() errors - Add .storybook directory to tsconfig.json includes - Storybook build and dev server now work correctly 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * chore(storybook): replace main.mjs with main.ts for improved type safety and maintainability fix(storybook): remove unused import map plugins in Storybook configuration to prevent potential issues fix(storybook): update color palette store initialization to streamline code and improve readability * [feat] Optimize Chromatic workflow with automated PR status comments - Replace complex GitHub Script actions with edumserrano/find-create-or-update-comment@v3 - Add comprehensive PR comments showing Storybook build progress and results - Include build metrics: components, stories, visual changes, and errors - Add direct links to Chromatic builds and Storybook previews - Reduce workflow complexity by ~60 lines while maintaining functionality - Use native GitHub Actions expressions for cleaner maintainability 🤖 Generated with Claude Code Co-Authored-By: Claude <noreply@anthropic.com> * chore(chromatic.yaml): move permissions section inside the chromatic-deployment job for better organization and clarity * [fix] Resolve Vite CJS deprecation warning in Storybook config - Use dynamic import for mergeConfig to avoid CJS build warning - Replace static import with dynamic import in viteFinal function - Maintain type safety with separate type import - Fixes "The CJS build of Vite's Node API is deprecated" warning 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * fix(chromatic.yaml): change edit-mode from replace to append to preserve existing comments in pull request * [fix] Replace __dirname with process.cwd() in Storybook config __dirname is not available in all environments. Using process.cwd() provides better compatibility and resolves path issues in Storybook. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * feature: storybook-setting (#5088) --------- Co-authored-by: Claude <noreply@anthropic.com> Co-authored-by: Jin Yi <jin12cc@gmail.com> |