[pull] main from Comfy-Org:main - #39
Merged
Merged
Conversation
## Summary Add `release-recover-tag.yaml`: a dispatchable way to publish the release a merged version bump never got. ## Changes - **What**: new workflow. Takes a branch, reads its `package.json` version, refuses to run if that tag exists, builds the same artifacts as `release-draft-create.yaml`, and publishes the release. `release-draft-create.yaml` only fires when a Release-labelled bump PR closes, so when its release step fails the tag has no second path into existence. The branch then sits at a version nothing points at, and: - `publish-pypi` waits out its budget on a tag that cannot appear - the ComfyUI pin PR is never opened - every later run resolves the *next* patch instead of finishing this one, burning a version per run (#14997, #15004) `core/1.48` is stalled this way right now: `package.json` at 1.48.9, newest tag `v1.48.7`, two bumps (1.48.8, 1.48.9) merged and unreleased. There is currently no way to tag them short of doing it by hand. ## Review Focus - Refuses when `vVERSION` already exists, so it can only finish a release, never cut one. It has no bump step and writes no commit. - Build steps are copied from `release-draft-create.yaml` so a recovered release carries the same `dist.zip` / `dist-desktop.zip` as an on-time one. That duplication is the main cost; the alternative is converting `release-draft-create.yaml`'s `build` + `draft_release` into a `workflow_call` and calling it from both, which is a larger change to the critical release path. Happy to do that instead if preferred. - Uses `PR_GH_TOKEN` for the same reason as #15003 — `GITHUB_TOKEN` is currently refused on `core/*`. Without #15003 this workflow hits the same 403.
## Summary Add a repository skill for replacing TypeScript suppressions with minimal type-safe fixes. ## Changes - **What**: Documents the suppression-removal workflow, common repair patterns, repository guardrails, and verification commands. ## Review Focus Check that the workflow stays reusable and consistent with the repository's TypeScript guidance. --------- Co-authored-by: Amp <amp@ampcode.com>
## What comfy.org/mcp was cloud-only; its FAQ answered *"Can I use it with my local ComfyUI?"* with *"Coming soon"*. The open-source local server ([comfy-mcp](https://github.com/Comfy-Org/comfy-mcp)) is released on PyPI, so the page now sells both halves of Comfy MCP, with messaging aligned to the [launch blog](https://blog.comfy.org/p/comfy-mcp-turn-your-agent-into-a). ## Changes **Hero.** Heading: *"Drive ComfyUI from any AI agent, local or cloud."* Subtitle: *"Turn your agent into a creative technologist… Built for batch generation, reproducibility and teamwork."* **Setup section.** `Comfy Cloud | Local ComfyUI` connection toggle above the client tabs. Cloud panel unchanged. Local panel: `pip install comfy-mcp`, per-client stdio registration (Claude Code / Claude Desktop / Cursor / Others), an ask-your-agent card badged **Recommended**, and an open-source requirement line replacing the subscription note. Agent-paste commands use the `.md` docs URLs (agents get raw markdown, not the HTML shell); human links stay extensionless. **Section order.** Tools (capabilities) now come before Why-build on both locales. **Why-build rework** (from the blog, no em dashes): *"first MCP built for production pipelines"* subtitle; **Reproducible by design** replaces Outputs-you-keep (outputs folded in); auth line corrected (local needs no account); full-engine card mentions auto-updating templates; your-GPUs card sells the hardware-aware local agent (reads models, custom nodes, VRAM; untangles complex open-source workflows). **Capabilities copy.** Run-real-workflows reads your existing workflows ("start where you are"); model list refreshed (MiniMax H3, Seedance, Flux, GPT-Image, Nano Banana, Kling, Z-Image, ElevenLabs, HY3D, and more). **FAQ (nine questions).** New: cloud-vs-local difference (with which-one-to-choose routing + Apple-GPU caveat), both-at-once, open source. Corrected: local partner models sign in via comfy-cli (browser or API key) and spend credits; everyday local use needs no key. Removed: local-ComfyUI ("Coming soon"), Claude Desktop slash commands, GA. "Which agents are supported?" replaces "clients". **Links & analytics.** `docsMcp` → merged docs IA (`agent-tools/mcp`); new `docsMcpMd`/`docsMcpLocalMd`/`comfyMcpRepo`. New `website:mcp_connection_tab_clicked` PostHog event; client tabs emit `local-*` ids in the local panel. Both locales covered (en + zh-CN) for every change. ## Testing - `pnpm --filter @comfyorg/website typecheck` — 0 errors - `pnpm --filter @comfyorg/website test:unit` — 423 passed - `pnpm exec playwright test e2e/mcp.spec.ts` — 10/10 (specs updated: connection toggle, local install flow, nested-tabs strict-mode, FAQ count) - `pnpm build` — clean --------- Co-authored-by: ComfyUI Wiki <contact@comfyui-wiki.com>
Automated refresh of remote-data snapshots used by the website build: - `apps/website/src/data/ashby-roles.snapshot.json` — Ashby job board API - `apps/website/src/data/cloud-nodes.snapshot.json` — Comfy Cloud `/api/object_info` **Flow:** 1. `Release: Website` workflow ran (manual trigger). 2. This PR opens with the regenerated snapshots. 3. `CI: Vercel Website Preview` deploys a preview for review. 4. Merging to `main` triggers the production Vercel deploy. The snapshot fallback in `apps/website/src/utils/ashby.ts` and `apps/website/src/utils/cloudNodes.ts` remains intact: builds without the respective API keys continue to use the committed snapshot (with a warning annotation in CI). Triggered by workflow run `31854048709`. Co-authored-by: christian-byrne <72887196+christian-byrne@users.noreply.github.com>
…ors (#15061) ## Root cause The release sheriff job at run [#31508324202](https://github.com/Comfy-Org/ComfyUI_frontend/actions/runs/31508324202) failed with: ``` Error: Command failed: gh pr list ... --search author:app/dependabot HTTP 502: 502 Bad Gateway (https://api.github.com/graphql) ``` GitHub's GraphQL API returned a transient 502. The `gh()` helper calls `execFileSync` which throws immediately on non-zero exit, so one bad gateway took down the whole run before any sheriff could be assigned. The query itself is valid — running it now returns results correctly. ## Fix Add `ghWithRetry()` that wraps `gh()` with up to 3 attempts and exponential backoff (2s → 4s). `ghPrList` now calls `ghWithRetry` instead of `gh`. On the third failure it re-throws so the degraded-run reporter still fires. ## Test plan - [x] All 34 existing unit tests pass (`npx vitest run scripts/release-sheriff/release-sheriff.test.ts`) - [x] No new TS errors in the sheriff script Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
Automatic SHA bump — `cursor-review.yml` was updated in `Comfy-Org/github-workflows` at [`41fb831`](Comfy-Org/github-workflows@41fb831). _Opened by the `bump-cursor-review-callers` workflow._ Co-authored-by: cloud-code-bot[bot] <234529496+cloud-code-bot[bot]@users.noreply.github.com>
…15282) *PR Created by the Glary-Bot Agent* --- ## Summary Fixes 6 of the 9 pre-existing `vue-tsc` errors in `apps/website`, both caused by reading a field that does not exist on every member of a union. First of three stacked PRs that end with `vue-tsc` running in CI. ## Changes - **What**: - `templates/mcp/mcpDemoPrompts.ts` — the array was declared `as const satisfies readonly McpDemoPrompt[]`. `satisfies` checks assignability but preserves the `as const` type, so the array became a union of nine distinct literal shapes rather than `McpDemoPrompt[]`. Since no single member declares all of `via` / `variants` / `stacked`, every read of those optional fields failed (5 errors in `ComfyMcpDemo.vue`). Annotating as `readonly McpDemoPrompt[]` restores the intended optional fields and matches how `data/drops.ts` declares its data. No consumer depended on the literal types. - `templates/drops/DropsSection.vue` — `drop.media.poster` was read without narrowing `DropMedia` on its `type` discriminant; `poster` only exists on the `video` member. Now narrowed with `drop.media.type === 'video' ? drop.media.poster : undefined`. - **Breaking**: none. Both changes are type-level only — see Review Focus. ## Review Focus Neither change alters runtime behaviour: - `DropsSection`: for `type: 'video'` the value still comes from `drop.media.poster`; for images the property access already evaluated to `undefined` at runtime, which is exactly what the ternary now yields. Confirmed no drop in `data/drops.ts` passes a poster — all three `videoFor(...)` calls take only `(fileName, alt)` — so the rendered output is byte-identical. - `mcpDemoPrompts`: dropping `as const` only widens literal types to their declared ones. The values are unchanged. These were invisible until now because `.vue` files are type-checked by nothing in this repo — that gap is fixed in the third PR of this stack. ## Verification `astro check` 0 errors · `vue-tsc` drops from 9 errors to 3 (the remaining 3 are fixed in the next PR) · 422 unit tests passing (1 pre-existing `minimaxMusic3` `.jpeg` failure, also fails on `main`) · lint/format/knip clean · production build 595 pages. Manually verified the MCP hero demo in a production build (screenshot below) — all three optional fields still render exactly as before: - `variants: 4` → Character Concepts shows 4 separate thumbnails - `stacked: true` → Keyframe Board shows the offset layers behind the thumbnail - `via` → NOTION / FIGMA / BLENDER badges render, and cards without `via` (Set Extension) correctly show none Also loaded `/launches` (DropsSection): 3 videos, 0 with a `poster` attribute (matching the data), 31 images, none with a broken `src`, and no page errors. ## Screenshots  Co-authored-by: Glary-Bot <glary-bot@users.noreply.github.com>
## Summary Add two events to the `/events` page: an upcoming Aug 19 livestream and the past Aug 10 Comfy Creatives Model Jam recording. ## Changes - **What**: Two new `ComfyEvent` entries in `apps/website/src/data/events.ts`. - `beyond-the-models` — "Using Comfy to Go Beyond the Models" (upcoming, Aug 19 2026, `liveVideoId`). Renders in the Upcoming section on `/events` and gets `/events/beyond-the-models`. Includes `media` so it becomes a valid past-gallery card automatically after it airs. - `comfy-creatives-model-jam` — "Comfy Creatives Model Jam: MiniMax H3, Seedance 2.5, Wan Animate 2 & More" (past, Aug 10 2026, `recordingVideoId`). Renders in the Past gallery and emits VideoObject JSON-LD on `/events/comfy-creatives-model-jam`. ## Review Focus - Neither event is featured (no hero carousel) by design — both surface in their list sections only. - The past event uses `recordingVideoId` (not `liveVideoId`) so the already-published recording gets VideoObject structured data. - zh-CN copy is a machine first-pass, consistent with the file's existing "pending native review" note. --------- Co-authored-by: Robin Huang <robin.j.huang@gmail.com> Co-authored-by: Richard Yu <richard95yu@gmail.com> Co-authored-by: bymyself <cbyrne@comfy.org> Co-authored-by: Claude <noreply@anthropic.com>
… to the MCP page (#15305) ## Summary Adds the two videos asked for in the launch thread, on top of #15240: the Comfy MCP launch film under the capabilities heading, and a new "Production use cases." section below it. ## Changes - **What**: `FeatureRows01` gains an optional `media` slot; `ToolsSection` fills it with the 16x9 launch film (autoplay, muted, loop, corner play/mute toggles). New `UseCasesSection` renders a heading, one-line subtitle, and the narrated walkthrough as click-to-play behind its own title-card poster — no autoplay, since it has a voiceover. Both sections hydrate with `client:visible` so the controls work. The setup subtitle now breaks before "Add the server yourself". - **Assets**: launch film from the Air board (`COMFY_MCP_16x9`, 33.9s, re-encoded to 4.9 MB); walkthrough from the launch blog (`short with voice over`, 96.3s, 14 MB); poster is frame 1 of the walkthrough. Copy added in en and zh-CN. ## Review Focus - **The media is not on the CDN yet.** `launch-film.mp4`, `production-use-cases.mp4` and `production-use-cases-poster.webp` still need uploading to `gs://comfy-org-videos/website/mcp/`. Until then both players 404 on any deploy built from this branch, including this PR's Vercel preview. - Copy on the new section — "Production use cases." and its subtitle are a first pass. - `client:visible` on `ToolsSection` is new; it was static before because every video there had `hideControls`. ## Screenshots Standalone preview with the media served from the deployment itself, as a stand-in for the pending CDN upload: https://website-frontend-16jmxfsd8-comfyui.vercel.app/mcp
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
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
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.
See Commits and Changes for more details.
Created by
pull[bot] (v2.0.0-alpha.4)
Can you help keep this open source service alive? 💖 Please sponsor : )