Comfy-Org / Comfy-Org/ComfyUI_frontend

FE PR backlog triage — 311 open PRs, risk-tiered & claimable

Open
#13,061 3 comments 1 reaction 0 assignees View on GitHub
area:CI/CD area:testing
Dominant language
TypeScript
Stars
2k
Forks
704
Avg merge
1d 8h
Merged PRs (30d)
512

Description

This is a risk-tiered triage of every open non-draft frontend PR, built to unblock the review backlog. There are **311 open non-draft PRs** (149 drafts excluded), **214 of them open >14 days** — split into **29 claimable**, **122 medium**, **143 high**, and **17 bot** PRs. Pick a PR, put your name in the Claimed by column (edit this issue), review & merge.

## How to read this table

Classification is by the **area a PR touches, not its diff size**. A 2-line change is HIGH if it touches litegraph/renderer or extension APIs (these power 40+ custom-node repos); a +8000-line change is LOW if it is pure locale text.

- 🟢 **LOW** — locales, tests, stories, docs, config only. Any frontend dev can review and claim.
- 🟡 **MEDIUM** — typical component/view/store/service logic. A general reviewer is fine; escalate if you find something deeper than the diff suggests.
- 🔴 **HIGH** — needs a core reviewer: deep zone (litegraph/renderer/canvas), extension-API surface, security-sensitive paths, or very large (>500 non-test lines).
- 🤖 **BOT** — automated PRs (backports, snapshots, releases). Decide whether they should land at all.
- **Sorting**: each tier is oldest-first. Within 🔴 HIGH, ⚡ **quick-verify** PRs come first — high-risk only because of *where* they touch, but the change itself is small and mechanical, so a capable reviewer can clear each in minutes. Knock these out before the heavy HIGH PRs.
- **How to use it**: anyone on FE picks a 🟢 to review. Reviewers who can handle deep-zone code should start with the ⚡ rows in 🔴 for quick wins, then take on the rest.

## 🟢 Claimable — any frontend dev can review (29)

Locales, tests, stories, docs, CI/config only; <=150 non-test lines. Sorted oldest-first.

| PR | Title | Author | Days | Lines | Touches | Claimed by |
| --- | --- | --- | --- | --- | --- | --- |
| [#10202](https://github.com/Comfy-Org/ComfyUI_frontend/pull/10202) | Improve spanish translations | ajtudela | 97 ⏰ | +8420/-8419 | src/locales | _(open)_ |
| [#10811](https://github.com/Comfy-Org/ComfyUI_frontend/pull/10811) | feat: add Storybook stories for Dialogue component | koshimazaki | 82 ⏰ | +136/-0 | src/components | _(open)_ |
| [#10813](https://github.com/Comfy-Org/ComfyUI_frontend/pull/10813) | feat: add Storybook stories for Popover and TypeformPopoverButton | koshimazaki | 81 ⏰ | +243/-0 | src/components | _(open)_ |
| [#11149](https://github.com/Comfy-Org/ComfyUI_frontend/pull/11149) | test: add unit tests for widgetInputs (0% → 90% coverage) | christian-byrne | 73 ⏰ | +1011/-0 | src/extensions | _(open)_ |
| [#11148](https://github.com/Comfy-Org/ComfyUI_frontend/pull/11148) | test: expand useCoreCommands coverage with behavioral tests | christian-byrne | 73 ⏰ | +721/-123 | src/composables | _(open)_ |
| [#11207](https://github.com/Comfy-Org/ComfyUI_frontend/pull/11207) | test: add E2E tests for sidebar tab switching | christian-byrne | 70 ⏰ | +65/-0 | browser_tests/tests | _(open)_ |
| [#11397](https://github.com/Comfy-Org/ComfyUI_frontend/pull/11397) | test: add unit tests for litegraphService | christian-byrne | 64 ⏰ | +579/-22 | src/services | _(open)_ |
| [#11382](https://github.com/Comfy-Org/ComfyUI_frontend/pull/11382) | test: colocate WidgetImageCrop tests with component | christian-byrne | 64 ⏰ | +272/-206 | src/components, src/composables | _(open)_ |
| [#11380](https://github.com/Comfy-Org/ComfyUI_frontend/pull/11380) | test: add tests for virtual node filtering in API export | christian-byrne | 64 ⏰ | +233/-0 | browser_tests/assets, browser_tests/tests, src/utils | _(open)_ |
| [#11578](https://github.com/Comfy-Org/ComfyUI_frontend/pull/11578) | test: add coverage for credit helper functions | christian-byrne | 60 ⏰ | +243/-0 | browser_tests/tests, src/base | _(open)_ |
| [#11814](https://github.com/Comfy-Org/ComfyUI_frontend/pull/11814) | test: add Playwright regression test for Shift focus-visible outline o | christian-byrne | 51 ⏰ | +72/-0 | browser_tests/assets, browser_tests/tests | _(open)_ |
| [#12150](https://github.com/Comfy-Org/ComfyUI_frontend/pull/12150) | ci: run Playwright Chromium tests on Windows | nleg1010 | 42 ⏰ | +64/-4 | .github/actions, .github/workflows | _(open)_ |
| [#12149](https://github.com/Comfy-Org/ComfyUI_frontend/pull/12149) | ci: add windows playwright runner | KarthikeyaPodicheti | 42 ⏰ | +54/-4 | .github/actions, .github/workflows | _(open)_ |
| [#12135](https://github.com/Comfy-Org/ComfyUI_frontend/pull/12135) | ci: add on-demand Windows E2E workflow | Draconna | 42 ⏰ | +132/-7 | .github/actions, .github/workflows | _(open)_ |
| [#12128](https://github.com/Comfy-Org/ComfyUI_frontend/pull/12128) | ci: add Windows Chromium browser tests | suhail-ak-2 | 42 ⏰ | +75/-9 | .github/actions, .github/workflows | _(open)_ |
| [#12125](https://github.com/Comfy-Org/ComfyUI_frontend/pull/12125) | test: add API-backed queue interaction coverage | suhail-ak-2 | 42 ⏰ | +192/-0 | browser_tests/tests | _(open)_ |
| [#12268](https://github.com/Comfy-Org/ComfyUI_frontend/pull/12268) | test: cover queue history clear refresh | Tingting1022 | 39 ⏰ | +72/-0 | browser_tests/tests | _(open)_ |
| [#12252](https://github.com/Comfy-Org/ComfyUI_frontend/pull/12252) | ci: replace npx with pnpx in workflows | christian-byrne | 39 ⏰ | +3/-3 | .github/workflows | _(open)_ |
| [#12312](https://github.com/Comfy-Org/ComfyUI_frontend/pull/12312) | fix(ci): add top-level permissions and concurrency to workflows | Jefsky | 37 ⏰ | +135/-0 | .github/workflows | _(open)_ |
| [#12354](https://github.com/Comfy-Org/ComfyUI_frontend/pull/12354) | test: add API-backed job history integration coverage | tybrooks123 | 33 ⏰ | +304/-0 | browser_tests/tests | _(open)_ |
| [#12684](https://github.com/Comfy-Org/ComfyUI_frontend/pull/12684) | fix: add /discord redirect on website to fix readme link | spacesitenet | 16 ⏰ | +5/-0 | apps/website | _(open)_ |
| [#12715](https://github.com/Comfy-Org/ComfyUI_frontend/pull/12715) | refactor: simplify scanAllModelCandidates mock parameters in tests | kashish00208 | 14 | +3/-5 | src/platform | _(open)_ |
| [#12706](https://github.com/Comfy-Org/ComfyUI_frontend/pull/12706) | fix: prevent payment routes from being indexed | balpreetgrowthnatives | 14 | +18/-1 | apps/website | _(open)_ |
| [#12939](https://github.com/Comfy-Org/ComfyUI_frontend/pull/12939) | ci: fold website e2e and release comments into the unified PR report | christian-byrne | 4 | +82/-50 | .github/actions, .github/workflows | _(open)_ |
| [#13038](https://github.com/Comfy-Org/ComfyUI_frontend/pull/13038) | fix: give backport push a token that can update workflow files | christian-byrne | 3 | +5/-0 | .github/workflows | _(open)_ |
| [#13037](https://github.com/Comfy-Org/ComfyUI_frontend/pull/13037) | test: stop flaky teardown error in AssetBrowserModal test | christian-byrne | 3 | +12/-0 | src/platform | _(open)_ |
| [#13027](https://github.com/Comfy-Org/ComfyUI_frontend/pull/13027) | chore: disable CodeRabbit docstring coverage pre-merge check | christian-byrne | 3 | +5/-0 | .coderabbit.yaml | _(open)_ |
| [#13005](https://github.com/Comfy-Org/ComfyUI_frontend/pull/13005) | fix: rename user-facing 'API Nodes' to 'Partner Nodes' | marawan206 | 3 | +6/-6 | src/locales | _(open)_ |
| [#13058](https://github.com/Comfy-Org/ComfyUI_frontend/pull/13058) | ci: add CLA Assistant workflow | alexisrolland | 0 | +62/-0 | .github/workflows | _(open)_ |

## ⚡ Quick-verify HIGH — quick wins for deep-zone reviewers (13)

These are high-risk only by *location* — they touch litegraph/renderer — but each change is small and mechanical, so a capable reviewer can clear each in minutes.

| PR | Title | Author | Days | Lines | Touches | Why HIGH | Claimed by |
| --- | --- | --- | --- | --- | --- | --- | --- |
| ⚡ [#6551](https://github.com/Comfy-Org/ComfyUI_frontend/pull/6551) | Fixing race condition | maludwig | 231 ⏰ | +6/-2 | src/lib | canvas/litegraph/renderer | _(open)_ |
| ⚡ [#9946](https://github.com/Comfy-Org/ComfyUI_frontend/pull/9946) | perf: add CSS contain:layout contain:style to node inner wrapper | christian-byrne | 99 ⏰ | +1/-1 | browser_tests/tests, src/renderer | canvas/litegraph/renderer | _(open)_ |
| ⚡ [#10034](https://github.com/Comfy-Org/ComfyUI_frontend/pull/10034) | fix: add background to textarea label to prevent text overlap on scrol | christian-byrne | 98 ⏰ | +44/-1 | browser_tests/tests, src/renderer | canvas/litegraph/renderer | _(open)_ |
| ⚡ [#11936](https://github.com/Comfy-Org/ComfyUI_frontend/pull/11936) | fix: suppress UA focus-visible outline on selected Vue nodes | christian-byrne | 49 ⏰ | +4/-5 | browser_tests/tests, src/renderer | canvas/litegraph/renderer | _(open)_ |
| ⚡ [#12305](https://github.com/Comfy-Org/ComfyUI_frontend/pull/12305) | fix: resolve scroll event leak in text widget (#3990) | bomlinux92-byte | 37 ⏰ | +9/-1 | src/renderer | canvas/litegraph/renderer | _(open)_ |
| ⚡ [#12334](https://github.com/Comfy-Org/ComfyUI_frontend/pull/12334) | fix(form-dropdown): stop cancelling native scroll on slow trackpad whe | LittleSound | 34 ⏰ | +38/-24 | src/renderer | canvas/litegraph/renderer | _(open)_ |
| ⚡ [#12438](https://github.com/Comfy-Org/ComfyUI_frontend/pull/12438) | fix: split subfolder from filename in getMediaUrl for correct /api/vie | phazei | 30 ⏰ | +22/-1 | src/renderer | canvas/litegraph/renderer | _(open)_ |
| ⚡ [#12834](https://github.com/Comfy-Org/ComfyUI_frontend/pull/12834) | fix: serialize widgets_values densely to keep values aligned on reload | jtydhr88 | 8 | +31/-2 | src/lib | canvas/litegraph/renderer | _(open)_ |
| ⚡ [#12833](https://github.com/Comfy-Org/ComfyUI_frontend/pull/12833) | fix: respect API base for media view URLs | mturac | 8 | +36/-11 | src/extensions, src/renderer | canvas/litegraph/renderer | _(open)_ |
| ⚡ [#12885](https://github.com/Comfy-Org/ComfyUI_frontend/pull/12885) | When dragging vue nodes, also drag reroutes | AustinMroz | 6 | +60/-10 | browser_tests/tests, src/renderer | canvas/litegraph/renderer | _(open)_ |
| ⚡ [#12864](https://github.com/Comfy-Org/ComfyUI_frontend/pull/12864) | Add long widget values to tooltips | AustinMroz | 6 | +46/-6 | browser_tests/tests, src/renderer | canvas/litegraph/renderer | _(open)_ |
| ⚡ [#12952](https://github.com/Comfy-Org/ComfyUI_frontend/pull/12952) | fix: hide advanced inputs toggle on collapsed nodes | Nynxz | 4 | +29/-2 | src/renderer | canvas/litegraph/renderer | _(open)_ |
| ⚡ [#12977](https://github.com/Comfy-Org/ComfyUI_frontend/pull/12977) | Add center dividing line to image compare node | AustinMroz | 3 | +12/-2 | browser_tests/tests, src/renderer | canvas/litegraph/renderer | _(open)_ |

🟡 MEDIUM (122) — general reviewer

_Full 122-row table posted as a comment below (the issue body hit GitHub's 65k-char limit)._

🔴 HIGH — remaining 130 (needs a core reviewer)

_Full 130-row table posted as a comment below (the issue body hit GitHub's 65k-char limit)._

🤖 BOT PRs (17) — decide whether they should land

| PR | Title | Author | Days | Lines | Touches |
| --- | --- | --- | --- | --- | --- |
| [#12190](https://github.com/Comfy-Org/ComfyUI_frontend/pull/12190) | chore(website): refresh Ashby roles snapshot | comfy-pr-bot | 41 ⏰ | +2/-16 | apps/website |
| [#12271](https://github.com/Comfy-Org/ComfyUI_frontend/pull/12271) | chore(website): refresh Ashby and cloud nodes snapshots | comfy-pr-bot | 39 ⏰ | +5029/-302 | apps/website |
| [#12365](https://github.com/Comfy-Org/ComfyUI_frontend/pull/12365) | [backport cloud/1.43] Fix group selection selecting nodes | comfy-pr-bot | 33 ⏰ | +7/-1 | src/renderer |
| [#12364](https://github.com/Comfy-Org/ComfyUI_frontend/pull/12364) | [backport core/1.43] Fix group selection selecting nodes | comfy-pr-bot | 33 ⏰ | +7/-1 | src/renderer |
| [#12423](https://github.com/Comfy-Org/ComfyUI_frontend/pull/12423) | [backport cloud/1.44] fix: remove failed to export toast when cancelli | comfy-pr-bot | 31 ⏰ | +306/-38 | browser_tests/fixtures, browser_tests/tests, src/platform |
| [#12422](https://github.com/Comfy-Org/ComfyUI_frontend/pull/12422) | [backport core/1.44] fix: remove failed to export toast when cancellin | comfy-pr-bot | 31 ⏰ | +306/-38 | browser_tests/fixtures, browser_tests/tests, src/platform |
| [#12421](https://github.com/Comfy-Org/ComfyUI_frontend/pull/12421) | [backport cloud/1.44] fix: clear active job on reconnect if no longer | comfy-pr-bot | 31 ⏰ | +765/-55 | browser_tests/fixtures, browser_tests/tests, src/composables (+3 more) |
| [#12420](https://github.com/Comfy-Org/ComfyUI_frontend/pull/12420) | [backport core/1.44] fix: clear active job on reconnect if no longer i | comfy-pr-bot | 31 ⏰ | +765/-55 | browser_tests/fixtures, browser_tests/tests, src/composables (+3 more) |
| [#12539](https://github.com/Comfy-Org/ComfyUI_frontend/pull/12539) | [backport cloud/1.45] fix: Remove duplicate app workflow validation | comfy-pr-bot | 23 ⏰ | +30/-15 | src/platform |
| [#12538](https://github.com/Comfy-Org/ComfyUI_frontend/pull/12538) | [backport core/1.45] fix: Remove duplicate app workflow validation | comfy-pr-bot | 23 ⏰ | +30/-15 | src/platform |
| [#12777](https://github.com/Comfy-Org/ComfyUI_frontend/pull/12777) | [chore] Update Ingest API types from cloud@63bd631 | comfy-pr-bot | 12 | +10683/-11359 | packages/ingest-types |
| [#12775](https://github.com/Comfy-Org/ComfyUI_frontend/pull/12775) | [backport cloud/1.45] feat: send deploy_environment as Comfy-Env heade | comfy-pr-bot | 12 | +86/-30 | src/platform, src/schemas |
| [#12891](https://github.com/Comfy-Org/ComfyUI_frontend/pull/12891) | [backport core/1.45] fix: Add missing save nodes in text replacement m | comfy-pr-bot | 6 | +106/-0 | src/extensions |
| [#13042](https://github.com/Comfy-Org/ComfyUI_frontend/pull/13042) | [backport cloud/1.45] fix(asset-card): read image dimensions from type | comfy-pr-bot | 3 | +191/-6 | src/platform |
| [#13026](https://github.com/Comfy-Org/ComfyUI_frontend/pull/13026) | [backport cloud/1.46] feat: remove subscript prompt dialog on load | comfy-pr-bot | 3 | +0/-30 | src/extensions |
| [#13025](https://github.com/Comfy-Org/ComfyUI_frontend/pull/13025) | [backport cloud/1.45] feat: remove subscript prompt dialog on load | comfy-pr-bot | 3 | +0/-30 | src/extensions |
| [#12976](https://github.com/Comfy-Org/ComfyUI_frontend/pull/12976) | 1.47.3 | comfy-pr-bot | 3 | +4332/-13 | package.json, src/locales |

## Methodology

- Analyzed 311 non-draft open PRs; **149 drafts skipped**. 0 PRs failed to fetch files.
- Source: GitHub REST API (`pulls` list + per-PR `/files` for paths and line counts). GraphQL was 502-ing, so REST was used throughout.
- Tiering is path-driven. LOW = every touched file under `src/locales/`, `*.test.ts`, `*.spec.ts`, `*.stories.ts`, `*.md`, `docs/`, or pure config/asset, AND <=150 non-test lines. HIGH = touches `src/lib/litegraph/`, `src/renderer/`, canvas; or auth/secret/token/oauth/permission paths; or >500 non-test lines; or extension-ecosystem API identifiers in the diff. MEDIUM = everything else.
- For 56 borderline MEDIUM PRs touching node/graph/widget/canvas-ish paths, diffs were grepped for extension-API identifiers (`LGraphNode`, `LGraphCanvas`, `node.widgets`, `node.serialize`, `graph._version`, `onConnectionsChange`, etc.). **13 were upgraded MEDIUM->HIGH** on a real diff hit.
- "Days open" = 2026-06-22 minus createdAt. ⏰ = open >14 days.
- Line counts are total +/- across all files (including tests); the <=150 LOW gate counts non-test lines only.
- Generated 2026-06-22; a point-in-time snapshot — PR states drift, re-run to refresh.

Contributor guide

Open the contributing guide

Research direction

Start with the claimable and quick-verify tables in this issue, then inspect the listed PRs and their touched paths such as src/locales, browser_tests/tests, src/renderer, and .github/workflows. No single entry point or test is specified, so review each selected PR in GitHub against its stated risk tier. Done means recording your name in the Claimed by column and completing the review and merge decision.

Written by the indexing model from the issue text.

Assessment

Tech stack
github, typescript
Domain
developer-experience, frontend
Issue type
Documentation
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.