mirror of
https://github.com/Comfy-Org/ComfyUI_frontend.git
synced 2026-04-20 06:20:11 +00:00
fix: remove ephemeral QA reports from version control
CI-generated QA reports are already uploaded as GitHub Actions artifacts and posted as PR comments. Keeping them in docs/qa/ just creates stale files that will diverge over time. Replace with .gitkeep so the directory remains tracked.
This commit is contained in:
@@ -1,189 +0,0 @@
|
||||
# QA Report: ComfyUI Frontend
|
||||
|
||||
**Date**: 2026-03-05
|
||||
**Environment**: CI (Linux, Chromium headless via Playwright MCP)
|
||||
**Frontend Version**: v1.41.12 (commit dbd8462784c45ec666a5118be29992c479b56c99)
|
||||
**Backend Version**: ComfyUI 0.15.1
|
||||
**Agent**: Claude Sonnet 4.6
|
||||
**Server URL**: http://127.0.0.1:8188
|
||||
**Branch**: sno-skills
|
||||
**PR**: #9430
|
||||
|
||||
## Summary
|
||||
|
||||
| Category | Pass | Fail | Skip | Total |
|
||||
| --------------- | ------ | ----- | ------ | ------ |
|
||||
| Routes & Load | 3 | 0 | 1 | 4 |
|
||||
| Canvas | 6 | 0 | 8 | 14 |
|
||||
| Node Operations | 2 | 0 | 8 | 10 |
|
||||
| Sidebar | 6 | 0 | 1 | 7 |
|
||||
| Topbar | 5 | 1 | 2 | 8 |
|
||||
| Settings | 6 | 1 | 0 | 7 |
|
||||
| Bottom Panel | 3 | 0 | 1 | 4 |
|
||||
| Execution | 2 | 0 | 3 | 5 |
|
||||
| File Operations | 2 | 0 | 3 | 5 |
|
||||
| Advanced | 3 | 0 | 2 | 5 |
|
||||
| Error Handling | 2 | 0 | 2 | 4 |
|
||||
| Responsive | 2 | 0 | 1 | 3 |
|
||||
| **Total** | **42** | **2** | **32** | **76** |
|
||||
|
||||
## Results
|
||||
|
||||
### Routes & Load
|
||||
|
||||
- [x] Root route loads — redirect to `/user-select` (multi-user mode), then loads GraphView ✅
|
||||
- [x] User select route — `/user-select` renders correctly with new/existing user forms ✅
|
||||
- [x] Default redirect — multi-user mode correctly redirects to `/user-select` first ✅
|
||||
- [-] 404 handling — `/nonexistent` triggers a file download from backend instead of a 404 page (backend behavior, not a frontend SPA 404 route)
|
||||
|
||||
### Canvas & Graph View
|
||||
|
||||
- [x] Canvas renders — LiteGraph canvas visible with grid background ✅
|
||||
- [x] Fit view — pressing `.` shows "Empty canvas" toast correctly ✅
|
||||
- [x] Zoom controls — zoom percentage displayed, controls accessible ✅
|
||||
- [x] Canvas context menu — right-click on canvas area handled (no crash) ✅
|
||||
- [x] Hide Links toggle — toggle correctly switches between Hide/Show Links states ✅
|
||||
- [x] State persistence — page reload restores workflow tabs and state ✅
|
||||
- [-] Pan canvas — skipped (canvas is a LiteGraph WebGL canvas, direct interaction not accessible via a11y tree)
|
||||
- [-] Zoom in/out via scroll — skipped (requires direct canvas interaction)
|
||||
- [-] Add node via double-click — skipped (double-click on canvas requires direct canvas coordinate interaction; canvas not in a11y tree)
|
||||
- [-] Add node via search — skipped (requires canvas double-click first)
|
||||
- [-] Delete node — skipped (no nodes on canvas)
|
||||
- [-] Connect nodes — skipped (no nodes on canvas)
|
||||
- [-] Disconnect nodes — skipped (no nodes on canvas)
|
||||
- [-] Multi-select — skipped (no nodes on canvas)
|
||||
- [-] Copy/Paste — skipped (no nodes on canvas)
|
||||
- [-] Undo/Redo — skipped (no nodes on canvas)
|
||||
- [-] Node context menu — skipped (no nodes on canvas)
|
||||
|
||||
### Node Operations
|
||||
|
||||
- [x] Node Library search — searching "KSampler" returns KSampler and KSampler (Advanced) ✅
|
||||
- [x] Node Library categories — all major Comfy node categories visible in tree ✅
|
||||
- [-] Bypass node — skipped (no nodes on canvas)
|
||||
- [-] Mute node — skipped (no nodes on canvas)
|
||||
- [-] Collapse node — skipped (no nodes on canvas)
|
||||
- [-] Pin node — skipped (no nodes on canvas)
|
||||
- [-] Rename node — skipped (no nodes on canvas)
|
||||
- [-] Node color — skipped (no nodes on canvas)
|
||||
- [-] Group nodes — skipped (no nodes on canvas)
|
||||
- [-] Widget interactions — skipped (no nodes on canvas)
|
||||
|
||||
### Sidebar Tabs
|
||||
|
||||
- [x] Node Library tab (N) — opens with category tree, search works ✅
|
||||
- [x] Model Library tab (M) — opens with folder list (checkpoints, loras, vae, etc.) ✅
|
||||
- [x] Workflows tab (W) — opens showing empty state "No workflows found" ✅
|
||||
- [x] Assets tab (A) — opens with Generated/Imported tabs and search ✅
|
||||
- [x] Tab toggle — clicking active tab closes sidebar ✅
|
||||
- [x] Search in Node Library — filtering by "KSampler" shows relevant results ✅
|
||||
- [-] Drag node from library — skipped (requires canvas drag interaction)
|
||||
|
||||
### Topbar & Workflow Tabs
|
||||
|
||||
- [x] Workflow tab display — current workflow name shown in tab bar ✅
|
||||
- [x] New workflow via "+" button — creates "Unsaved Workflow (2)" tab ✅
|
||||
- [x] Multiple tabs — two tabs visible, switching between them works ✅
|
||||
- [x] Tab context menu — right-click on tab shows context menu with Close/Save/Export options ✅
|
||||
- [x] Queue button — Run button visible and accessible ✅
|
||||
- [**FAIL**] Workflow actions menu — `menuLabels.Share` displays raw i18n key instead of translated "Share" text ❌
|
||||
- [-] Rename workflow via double-click — skipped (Rename is disabled for unsaved workflows)
|
||||
- [-] Batch count editor — not tested
|
||||
|
||||
### Settings Dialog
|
||||
|
||||
- [x] Open settings — Ctrl+, / clicking Settings button opens dialog ✅
|
||||
- [x] Settings categories — Account, Comfy, Lite Graph, Appearance, Mask Editor, 3D sections visible ✅
|
||||
- [x] Keybindings tab — shows keybinding table with Command/Keybinding/Source columns ✅
|
||||
- [x] About tab — shows ComfyUI 0.15.1, ComfyUI_frontend v1.41.12, system info ✅
|
||||
- [x] Close settings — close button works ✅
|
||||
- [x] Toggle setting — switches (Modern Node Design, etc.) are interactive ✅
|
||||
- [**FAIL**] Settings search — typing "language" in the search box does not visibly filter the settings list (all settings still displayed)
|
||||
|
||||
### Bottom Panel
|
||||
|
||||
- [x] Toggle panel — "Toggle Bottom Panel" button opens/closes panel ✅
|
||||
- [x] Logs tab — LOGS tab displays server output ✅
|
||||
- [x] Keyboard Shortcuts tab — opens with Essential/View Controls tabs and shortcut list ✅
|
||||
- [-] Ctrl+` shortcut — not explicitly tested
|
||||
|
||||
### Execution & Queue
|
||||
|
||||
- [x] Job Queue panel — expanding job queue shows All/Completed filter tabs ✅
|
||||
- [x] Queue button — Run button visible with batch count spinner ✅
|
||||
- [-] Queue prompt — skipped (no GPU in CI, execution would fail)
|
||||
- [-] Queue progress — skipped (requires execution)
|
||||
- [-] Interrupt — skipped (requires active execution)
|
||||
|
||||
### File Operations
|
||||
|
||||
- [x] Workflow actions menu — Save, Save As, Export, Export (API), Clear Workflow, Delete Workflow visible ✅
|
||||
- [x] Clear Workflow — shows browser confirmation dialog "Clear workflow?" ✅
|
||||
- [-] Save workflow (Ctrl+S) — skipped (would prompt for filename, browser dialog interaction limited in CI)
|
||||
- [-] Export JSON — skipped (download dialog in CI)
|
||||
- [-] Load default workflow — not available in menu (no "Load Default" option found)
|
||||
|
||||
### Advanced Features
|
||||
|
||||
- [x] Minimap — Alt+M / Show Minimap button toggles minimap in bottom-right ✅
|
||||
- [x] Link visibility — Hide Links / Show Links button toggles correctly ✅
|
||||
- [x] Zoom controls — "100%" zoom display button visible ✅
|
||||
- [-] Focus mode — not tested
|
||||
- [-] Subgraph conversion — skipped (no nodes on canvas)
|
||||
|
||||
### Error Handling
|
||||
|
||||
- [x] Clear Workflow confirmation — dialog appears before clearing ✅
|
||||
- [x] Empty canvas feedback — pressing Fit View (.) on empty canvas shows "Empty canvas" toast ✅
|
||||
- [-] Missing nodes dialog — skipped (requires loading workflow with non-existent nodes)
|
||||
- [-] Network error handling — skipped (would require disconnecting backend)
|
||||
|
||||
### Responsive & Accessibility
|
||||
|
||||
- [x] Window resize — resized to 768×600 (tablet), layout adapts without overflow or crashes ✅
|
||||
- [x] Keyboard navigation — settings, menus, sidebar all accessible via keyboard ✅
|
||||
- [-] Sidebar resize — not tested
|
||||
|
||||
## Issues Found
|
||||
|
||||
### Issue 1: Missing i18n Translation — `menuLabels.Share`
|
||||
|
||||
- **Severity**: Minor
|
||||
- **Location**: Workflow actions menu (topbar) and tab right-click context menu
|
||||
- **Steps to reproduce**: Click "Workflow actions" dropdown OR right-click a workflow tab → observe "menuLabels.Share" as a menu item
|
||||
- **Expected**: Translated text "Share" (or equivalent)
|
||||
- **Actual**: Raw i18n key `menuLabels.Share` displayed in grey (disabled state)
|
||||
- **Screenshot**: `docs/qa/screenshots/07-workflow-actions-menu-i18n-issue.png`, `docs/qa/screenshots/12-tab-context-menu.png`
|
||||
- **Note**: The item is disabled, so this is cosmetic/minor — users cannot interact with it
|
||||
|
||||
### Issue 2: Settings Search Not Filtering
|
||||
|
||||
- **Severity**: Minor
|
||||
- **Steps to reproduce**: Open Settings (Ctrl+,) → type "language" in the Search Settings box → observe the settings list
|
||||
- **Expected**: Settings list filters to show only settings matching "language"
|
||||
- **Actual**: Full settings list still displayed (no visible filtering)
|
||||
- **Note**: The left navigation panel was collapsed initially (had to click "Show left panel") — search may work only in combination with navigation, or may require the panel to be open. Could be a display/scroll issue rather than a functional bug.
|
||||
|
||||
### Issue 3: Backend Error in Logs — `KeyError: 'Unknown user: default'`
|
||||
|
||||
- **Severity**: Minor (backend issue, not frontend)
|
||||
- **Steps to reproduce**: Open Bottom Panel → Logs tab
|
||||
- **Actual**: Log shows `KeyError: 'Unknown user: default'` from `user_manager.py`
|
||||
- **Note**: This is a server-side error related to user management in multi-user mode, not a frontend issue. The frontend handles it gracefully by redirecting to `/user-select`.
|
||||
|
||||
### Issue 4: `/nonexistent` Route Triggers Download
|
||||
|
||||
- **Severity**: Minor (backend routing behavior)
|
||||
- **Steps to reproduce**: Navigate to `http://127.0.0.1:8188/nonexistent`
|
||||
- **Expected**: 404 page or redirect to main app
|
||||
- **Actual**: Browser attempts to download a file called "nonexistent" from the backend
|
||||
- **Note**: The ComfyUI backend serves filesystem paths directly. The SPA frontend does not handle this route — it relies on the backend to serve `index.html` for unknown routes. This is expected behavior for this backend, but may surprise users.
|
||||
|
||||
## Notes
|
||||
|
||||
- **Environment**: CI container with CPU-only PyTorch. No GPU available, so all execution-related tests (queue prompt, progress, interrupt) were skipped.
|
||||
- **Canvas interaction**: The LiteGraph canvas is a `<canvas>` element not represented in the accessibility tree. Tests requiring direct canvas interaction (add node by double-click, connect nodes, etc.) were skipped. These are covered by existing Playwright e2e tests in `browser_tests/`.
|
||||
- **Performance**: FPS counter in canvas bottom-left showed 30-60 FPS throughout testing, indicating good rendering performance in CI.
|
||||
- **State persistence**: After navigating away and back, the app correctly restored the two workflow tabs ("Unsaved Workflow" and "Unsaved Workflow (2)"), confirming the workflow persistence feature works.
|
||||
- **Frontend version**: v1.41.12 with ComfyUI backend 0.15.1 running on Python 3.10.19 with PyTorch 2.10.0+cpu.
|
||||
- **Workflow templates**: 13 templates visible in the template chooser (Getting Started section), including text-to-image, image-to-video, 3D, audio, etc.
|
||||
@@ -1,199 +0,0 @@
|
||||
# QA Report: ComfyUI Frontend
|
||||
|
||||
**Date**: 2026-03-07
|
||||
**Environment**: CI (macOS, Chromium via Playwright MCP)
|
||||
**Frontend Version**: ComfyUI_frontend v1.41.13 (commit 9cbc0d97b28f4be3d959e7df30bf306a38f76d84)
|
||||
**Backend Version**: ComfyUI 0.16.3
|
||||
**Agent**: Claude Sonnet 4.6
|
||||
**Server URL**: http://127.0.0.1:8188
|
||||
**Branch**: sno-skills
|
||||
|
||||
## Summary
|
||||
|
||||
| Category | Pass | Fail | Skip | Total |
|
||||
| --------------- | ------ | ----- | ------ | ------ |
|
||||
| Routes & Load | 3 | 1 | 0 | 4 |
|
||||
| Canvas | 3 | 0 | 11 | 14 |
|
||||
| Node Operations | 0 | 0 | 10 | 10 |
|
||||
| Sidebar | 6 | 0 | 1 | 7 |
|
||||
| Topbar | 6 | 0 | 1 | 7 |
|
||||
| Settings | 6 | 0 | 1 | 7 |
|
||||
| Bottom Panel | 3 | 0 | 1 | 4 |
|
||||
| Execution | 2 | 0 | 3 | 5 |
|
||||
| File Operations | 0 | 0 | 6 | 6 |
|
||||
| Advanced | 3 | 0 | 2 | 5 |
|
||||
| Error Handling | 1 | 0 | 4 | 5 |
|
||||
| Responsive | 1 | 0 | 2 | 3 |
|
||||
| **Total** | **34** | **1** | **42** | **77** |
|
||||
|
||||
## Results
|
||||
|
||||
### Routes & Load
|
||||
|
||||
- [x] Root route loads — redirects to `/user-select` (multi-user mode), GraphView renders after login
|
||||
- [x] User-select route — displays user selection UI with new user / existing user fields
|
||||
- [x] Default redirect — `/` correctly redirects to `/user-select` in multi-user mode
|
||||
- [ ] 404 handling — navigating to `/nonexistent` triggered a file **download** instead of a 404 page (backend serves unknown paths as files)
|
||||
|
||||
### Canvas & Graph View
|
||||
|
||||
- [x] Canvas renders — LiteGraph canvas visible with grid, FPS counter active (8–243 FPS observed)
|
||||
- [x] Fit view — Period (`.`) key and Fit View button both respond; "Empty canvas" alert shown correctly
|
||||
- [x] Zoom controls — Zoom Controls button opens dropdown with Zoom In/Out/Fit and editable % spinbutton
|
||||
- [ ] Pan canvas — skip (canvas `<canvas>` element not reachable via accessibility tree in Playwright)
|
||||
- [ ] Add node via double-click — skip (canvas not reachable via accessibility tree)
|
||||
- [ ] Add node via search — tested via Node Library search (see Sidebar); in-canvas search not testable
|
||||
- [ ] Delete node — skip (no nodes present)
|
||||
- [ ] Connect nodes — skip (no nodes present)
|
||||
- [ ] Disconnect nodes — skip (no nodes present)
|
||||
- [ ] Multi-select — skip (no nodes present)
|
||||
- [ ] Copy/Paste — skip (no nodes present)
|
||||
- [ ] Undo/Redo — skip (no undoable actions taken)
|
||||
- [ ] Node context menu — skip (no nodes present)
|
||||
- [ ] Canvas context menu — skip (canvas not reachable)
|
||||
|
||||
### Node Operations
|
||||
|
||||
- [ ] All node operations — skip (no nodes present on canvas; requires adding nodes first)
|
||||
|
||||
### Sidebar Tabs
|
||||
|
||||
- [x] Node Library tab (N) — opens with Bookmarked, Subgraph Blueprints, Partner Nodes, Comfy Nodes, Extensions categories
|
||||
- [x] Model Library tab (M) — opens with model folders (checkpoints, loras, vae, text_encoders, diffusion_models, etc.)
|
||||
- [x] Workflows tab (W) — opens with empty state ("No workflows found")
|
||||
- [x] Assets tab (A) — opens with Generated / Imported tabs; "No generated files found" shown correctly
|
||||
- [x] Tab toggle — clicking active sidebar button closes the panel
|
||||
- [x] Search in sidebar — Node Library search for "KSampler" returns KSampler, KSampler (Advanced), and related sampler nodes
|
||||
- [ ] Drag node from library — skip (drag-and-drop onto canvas not testable via accessibility)
|
||||
|
||||
### Topbar & Workflow Tabs
|
||||
|
||||
- [x] Workflow tab display — "Unsaved Workflow" shown in tab bar with unsaved indicator (•)
|
||||
- [x] New workflow — `+` button creates "Unsaved Workflow (2)" tab; tab bar shows both
|
||||
- [x] Tab context menu — right-click shows: Rename (disabled), Duplicate, Add to Bookmarks (disabled), Save, Save As, Export, Export (API), Clear Workflow, Close Tab, Close Tabs to Left/Right, Close Other Tabs
|
||||
- [x] Multiple tabs — two tabs open simultaneously; switching between them works correctly
|
||||
- [x] Queue button — Run button present and triggers execution (error shown for empty workflow as expected)
|
||||
- [x] Batch count — Increment/Decrement buttons work; value changes from 1 → 2
|
||||
- [x] Workflow actions menu — Graph dropdown shows: Rename, Duplicate, Add to Bookmarks, Save, Save As, Export, Export (API), Clear Workflow, Delete Workflow
|
||||
- [ ] Rename workflow — skip (Rename disabled for unsaved workflow)
|
||||
|
||||
### Settings Dialog
|
||||
|
||||
- [x] Open settings — Ctrl+, opens Settings dialog correctly
|
||||
- [x] Settings navigation — left panel shows: Account (User), Application Settings (Comfy, Lite Graph, Appearance, Mask Editor, 3D), Special Settings (Keybinding, Extension, About)
|
||||
- [x] Search settings — searching "locale" filters to show Comfy > Locale > Language setting
|
||||
- [x] Keybindings tab — table renders with all keybindings (New Blank Workflow, Open Workflow, Save Workflow, etc.) with Edit/Reset/Delete actions
|
||||
- [x] About tab — shows ComfyUI 0.16.3, ComfyUI_frontend v1.41.13, Templates v0.9.10, system info (OS: darwin, Python 3.10.11, PyTorch 2.10.0, RAM 7 GB, CPU device)
|
||||
- [x] Close settings — Escape key closes dialog
|
||||
- [ ] Change a setting — skip (not tested to avoid side effects)
|
||||
|
||||
### Bottom Panel
|
||||
|
||||
- [x] Toggle panel — "Toggle Bottom Panel" button opens/closes bottom panel correctly
|
||||
- [x] Logs tab — server log output displayed (including backend tracebacks)
|
||||
- [x] Shortcuts tab — Keyboard Shortcuts panel with Essential and View Controls tabs, Manage Shortcuts link
|
||||
- [ ] Ctrl+` shortcut — skip (backtick key behavior not explicitly verified)
|
||||
|
||||
### Execution & Queue
|
||||
|
||||
- [x] Queue prompt — Run button queues execution; shows "1 ERROR" alert for empty workflow (correct)
|
||||
- [x] Job history — queue panel opens with "All" and "Completed" tabs, Clear queue, Filter/Sort buttons
|
||||
- [ ] Queue progress — skip (no GPU, CPU execution not triggered)
|
||||
- [ ] Interrupt — skip (no running execution)
|
||||
- [ ] Clear history — skip (no history present)
|
||||
|
||||
### Workflow File Operations
|
||||
|
||||
- [ ] Save workflow — skip (file dialog not available in CI headless mode)
|
||||
- [ ] Open workflow — skip (file dialog not available in CI headless mode)
|
||||
- [ ] Export JSON — skip (file download not verifiable in CI)
|
||||
- [ ] Import workflow — skip (file dialog not available in CI)
|
||||
- [ ] Load default — skip (not tested)
|
||||
- [ ] Clear workflow — skip (not tested)
|
||||
|
||||
### Advanced Features
|
||||
|
||||
- [x] Minimap — Alt+M / Show Minimap button toggles minimap overlay in bottom-right of canvas
|
||||
- [x] Focus mode (App mode) — "Enter app mode" button shows simplified app view; "Enter node graph" in hamburger menu returns to graph
|
||||
- [x] Link visibility — Hide Links / Show Links toggle button works correctly
|
||||
- [ ] Canvas lock — skip (H/V key behavior not tested)
|
||||
- [ ] Subgraph — skip (no nodes to create subgraph from)
|
||||
|
||||
### Error Handling
|
||||
|
||||
- [x] Empty workflow error — running empty workflow shows "The workflow does not contain any output nodes (e.g. Save Image, Preview Image) to produce a result." with Dismiss / See Errors options
|
||||
- [ ] Missing nodes dialog — skip (no workflow with unknown nodes loaded)
|
||||
- [ ] Missing models dialog — skip (not triggered)
|
||||
- [ ] Network error — skip (not tested)
|
||||
- [ ] Invalid workflow — skip (not tested)
|
||||
|
||||
### Responsive & Accessibility
|
||||
|
||||
- [x] Properties panel resize — Workflow Overview properties panel opens/closes as a side panel
|
||||
- [ ] Window resize — skip (not tested)
|
||||
- [ ] Keyboard navigation — skip (not fully tested)
|
||||
|
||||
---
|
||||
|
||||
## Issues Found
|
||||
|
||||
### Issue 1: Persistent pointer-blocking overlay after concurrent zoom dropdown + error dialog
|
||||
|
||||
- **Severity**: Major
|
||||
- **Steps to reproduce**:
|
||||
1. Open the zoom controls dropdown (click "Zoom Controls" button)
|
||||
2. While dropdown is open, the Run button error alert appears simultaneously
|
||||
3. Press Escape to attempt dismissal
|
||||
4. A `<div class="fixed inset-0 z-1200">` overlay from the PrimeVue splitter component remains on the page
|
||||
5. All subsequent pointer interactions on the page fail with "subtree intercepts pointer events"
|
||||
6. Full page reload required to recover
|
||||
- **Expected**: Dismissing dialogs/dropdowns should cleanly remove any overlay divs; interaction should be restored immediately
|
||||
- **Actual**: Overlay persists indefinitely, blocking all clicks until page reload
|
||||
- **Screenshot**: `docs/qa/screenshots/16-run-error-empty.png` (state before block), page reload required to continue
|
||||
|
||||
### Issue 2: Navigating to unknown route triggers file download
|
||||
|
||||
- **Severity**: Minor
|
||||
- **Steps to reproduce**: Navigate to `http://127.0.0.1:8188/nonexistent`
|
||||
- **Expected**: 404 page or redirect to main application
|
||||
- **Actual**: Browser triggers a file download — the ComfyUI backend serves unknown paths as file downloads (backend behavior, not a frontend bug)
|
||||
- **Note**: This is expected ComfyUI backend behavior but may surprise users who mistype the URL
|
||||
|
||||
### Issue 3: Backend error in server logs — Unknown user: default
|
||||
|
||||
- **Severity**: Minor / Informational
|
||||
- **Observed in**: Bottom panel > Logs tab
|
||||
- **Log content**: `KeyError: 'Unknown user: default'` from `app/user_manager.py line 67 in get_request_user_id`
|
||||
- **Context**: Occurs on page load in multi-user mode when the session tries to access a "default" user that was not created. CI creates a "qa-user" but the system also attempts to look up "default".
|
||||
|
||||
### Issue 4: App Mode "Back to workflow" button unreachable
|
||||
|
||||
- **Severity**: Minor
|
||||
- **Steps to reproduce**: Enter App Mode with empty workflow; attempt to click "Back to workflow" button
|
||||
- **Expected**: Button should be clickable
|
||||
- **Actual**: Button is outside the viewport and Playwright click times out. Workaround: use hamburger menu > "Enter node graph"
|
||||
- **Note**: May be a layout issue specific to empty-workflow App Mode at default viewport size (756×441 or similar)
|
||||
|
||||
### Issue 5: Console 404 errors on startup
|
||||
|
||||
- **Severity**: Cosmetic / Informational
|
||||
- **URLs failing**:
|
||||
- `/api/userdata/user.css` — user-specific CSS file (expected when not uploaded)
|
||||
- `/user.css` — same
|
||||
- `workflows/.index.json` — workflow index (expected for new user)
|
||||
- `api/userdata/comfy.templates.json` — user-level templates override (expected)
|
||||
- `/favicon.ico` — missing favicon
|
||||
- `subgraphs` endpoint — 404 in CI environment
|
||||
- **Note**: All are gracefully handled; UI continues to function normally
|
||||
|
||||
---
|
||||
|
||||
## Notes
|
||||
|
||||
- **Environment**: macOS CI runner, CPU-only PyTorch (--cpu flag), 7 GB RAM, Python 3.10.11
|
||||
- **Multi-user mode**: Server started with `--multi-user` flag; user "qa-user" was created for this test run
|
||||
- **Canvas interaction**: The LiteGraph canvas is a `<canvas>` element that does not expose an accessibility tree. Node-level operations (add, connect, delete, bypass, mute, etc.) could not be tested via Playwright's accessibility-based selectors. These require coordinate-based interaction or direct JS injection.
|
||||
- **Performance**: FPS counter ranged from 8 FPS (initial load) to 243 FPS (after clearing overlays), indicating normal canvas performance variation.
|
||||
- **Templates**: Template gallery loaded successfully with 13 templates across Getting Started and other categories.
|
||||
- **Workflow persistence**: Page reload correctly restored the last workflow state (Unsaved Workflow 2 was active after reload).
|
||||
- **Overall**: The application loads correctly, all major UI surfaces are functional, sidebar navigation works, settings are comprehensive, and error handling for common cases (empty workflow run) is clear and informative.
|
||||
@@ -1,245 +0,0 @@
|
||||
# QA Report: ComfyUI Frontend
|
||||
|
||||
**Date**: 2026-03-08
|
||||
**Environment**: CI (Windows, Chromium via Playwright MCP)
|
||||
**Frontend Version**: ComfyUI_frontend v1.41.13 (commit e7d2fbba6989b85a533284f5edd5fc73cf15a633)
|
||||
**Backend Version**: ComfyUI (running at http://127.0.0.1:8188)
|
||||
**Agent**: Claude Sonnet 4.6
|
||||
**Server URL**: http://127.0.0.1:8188
|
||||
**Branch**: sno-skills
|
||||
|
||||
## Environment Note
|
||||
|
||||
The Playwright MCP server (`@playwright/mcp@0.0.68`) was not available as an injected tool in this agent execution context. The MCP server is configured via `mcp-config.json` and passed to the Claude CLI via `--mcp-config`, which is only active when the agent is launched through the CI workflow step. As a result, browser-based interactions were not possible in this run.
|
||||
|
||||
This report covers:
|
||||
|
||||
1. Code analysis of all new features merged since the last report (2026-03-07)
|
||||
2. Static review of changes that affect testable behavior
|
||||
3. Cross-referencing with prior macOS (2026-03-07) and Linux (2026-03-05) reports
|
||||
4. Identification of new features requiring QA coverage
|
||||
|
||||
---
|
||||
|
||||
## Summary
|
||||
|
||||
| Category | Pass | Fail | Skip | Total |
|
||||
| --------------- | ----- | ----- | ------------------------- | ------ |
|
||||
| Routes & Load | 0 | 0 | 4 (no browser tools) | 4 |
|
||||
| Canvas | 0 | 0 | 14 (no browser tools) | 14 |
|
||||
| Node Operations | 0 | 0 | 10 (no browser tools) | 10 |
|
||||
| Sidebar | 0 | 0 | 7 (no browser tools) | 7 |
|
||||
| Topbar | 0 | 0 | 8 (no browser tools) | 8 |
|
||||
| Settings | 0 | 0 | 7 (no browser tools) | 7 |
|
||||
| Bottom Panel | 0 | 0 | 4 (no browser tools) | 4 |
|
||||
| Execution | 0 | 0 | 5 (no browser tools + CI) | 5 |
|
||||
| File Operations | 0 | 0 | 6 (no browser tools + CI) | 6 |
|
||||
| Advanced | 0 | 0 | 5 (no browser tools) | 5 |
|
||||
| Error Handling | 0 | 0 | 5 (no browser tools) | 5 |
|
||||
| Responsive | 0 | 0 | 3 (no browser tools) | 3 |
|
||||
| **Total** | **0** | **0** | **78** | **78** |
|
||||
|
||||
---
|
||||
|
||||
## Results
|
||||
|
||||
All tests skipped due to Playwright MCP browser tools being unavailable in this execution context. See "Environment Note" above.
|
||||
|
||||
### Routes & Load
|
||||
|
||||
- [-] Root route loads — skip (no browser)
|
||||
- [-] User-select route — skip (no browser)
|
||||
- [-] Default redirect — skip (no browser)
|
||||
- [-] 404 handling — skip (no browser)
|
||||
|
||||
### Canvas & Graph View
|
||||
|
||||
- [-] All canvas tests — skip (no browser)
|
||||
|
||||
### Node Operations
|
||||
|
||||
- [-] All node operation tests — skip (no browser)
|
||||
|
||||
### Sidebar Tabs
|
||||
|
||||
- [-] All sidebar tests — skip (no browser)
|
||||
|
||||
### Topbar & Workflow Tabs
|
||||
|
||||
- [-] All topbar tests — skip (no browser)
|
||||
|
||||
### Settings Dialog
|
||||
|
||||
- [-] All settings tests — skip (no browser)
|
||||
|
||||
### Bottom Panel
|
||||
|
||||
- [-] All bottom panel tests — skip (no browser)
|
||||
|
||||
### Execution & Queue
|
||||
|
||||
- [-] All execution tests — skip (no browser + no GPU)
|
||||
|
||||
### Workflow File Operations
|
||||
|
||||
- [-] All file operation tests — skip (no browser + CI file dialog restrictions)
|
||||
|
||||
### Advanced Features
|
||||
|
||||
- [-] All advanced tests — skip (no browser)
|
||||
|
||||
### Error Handling
|
||||
|
||||
- [-] All error handling tests — skip (no browser)
|
||||
|
||||
### Responsive & Accessibility
|
||||
|
||||
- [-] All responsive tests — skip (no browser)
|
||||
|
||||
---
|
||||
|
||||
## New Features Since Last Report (Code Analysis)
|
||||
|
||||
The following features were merged between 2026-03-05 and 2026-03-08 and require explicit QA verification in subsequent runs with browser tools available:
|
||||
|
||||
### Run Controls Redesign (`fix: align run controls with queue modal design #9134`)
|
||||
|
||||
- Batch count controls moved to **left** of the Run button
|
||||
- Run button styling updated to match Figma queue modal spec: secondary background for batch + dropdown, primary for run button
|
||||
- Heights normalized to match actionbar buttons
|
||||
- New chevron SVG for dropdown/batch up/down
|
||||
|
||||
**Test items**: verify batch count placement left of run button; verify run button is visually primary (filled); verify dropdown arrow renders; verify batch increment/decrement works.
|
||||
|
||||
### Workflow Menu Quick Mode Toggle (`feat: Update workflow menu to allow quick toggling modes #9436`)
|
||||
|
||||
- Mode toggle button added to the workflow menu for easier discovery
|
||||
- Current mode text shown in menu
|
||||
- Specific app mode rendering removed
|
||||
- Spacing around breadcrumbs menu increased
|
||||
- New `base` button variant added
|
||||
|
||||
**Test items**: open workflow actions menu; verify current mode text displayed; verify mode toggle button works; verify mode change takes effect on target workflow.
|
||||
|
||||
### App Mode QA Feedback 2 (`feat/fix: App mode QA feedback 2 #9511`)
|
||||
|
||||
- Warning added to welcome screen and share dialog when all outputs removed from an app
|
||||
- Fix: target workflow now correct when changing mode via tab right-click menu
|
||||
- "Edit" vs "Build" text in app button is now conditional (based on whether app already defined)
|
||||
- Empty apps sidebar tab button text updated for clarity
|
||||
- Templates button removed from app mode (will be re-introduced later)
|
||||
|
||||
**Test items**: enter app mode; verify button text is "Edit" if app already defined, "Build" if not; right-click a workflow tab and change mode, verify the correct workflow is affected; add/remove all outputs and verify warning appears in share dialog.
|
||||
|
||||
### App Mode Progress Updates (`feat: App mode progress updates #9375`)
|
||||
|
||||
- Progress bar moved below preview thumbnail (was previously overlaying it)
|
||||
- Interactive pending placeholder added
|
||||
- In-progress items scoped to active workflow in output history
|
||||
|
||||
**Test items**: queue a prompt in app mode; verify progress bar appears below (not over) thumbnail; verify pending state shows interactive placeholder.
|
||||
|
||||
### App Mode Empty Graph Handling (`feat: App mode empty graph handling #9393`)
|
||||
|
||||
- Entering app mode with empty graph prompts user to load a template
|
||||
|
||||
**Test items**: clear the canvas; attempt to enter app mode; verify template prompt appears.
|
||||
|
||||
### More App Fixes (`More app fixes #9432`)
|
||||
|
||||
- z-index on app mode outputs increased (displays above zoomed image)
|
||||
- "View job" toast button in mobile app mode goes to outputs tab
|
||||
- Image previews: minimum zoom ~20%, maximum zoom ~50x
|
||||
- Enter panel in linear mode has minimum size ~1/5 screen
|
||||
- Drag-to-rearrange inputs no longer causes horizontal scrollbar
|
||||
- Videos now display first frame instead of generic video icon
|
||||
- Muted/Bypassed nodes excluded from app mode inputs/outputs
|
||||
|
||||
**Test items**: in app mode, zoom an image and verify outputs overlay above it; verify muted/bypassed nodes don't appear as app inputs or outputs; verify video previews show first frame.
|
||||
|
||||
### ComfyHub Workflow Sharing (`feat: workflow sharing and ComfyHub publish flow #8951`)
|
||||
|
||||
- Share dialog with URL generation and asset warnings
|
||||
- ComfyHub publish wizard (Describe → Examples → Finish) with thumbnail upload and tags
|
||||
- Profile gate flow; shared workflow URL loader with confirmation dialog
|
||||
- Gated by feature flags
|
||||
|
||||
**Test items**: open workflow actions menu; look for "Share" option; if enabled by feature flag, verify share dialog opens with URL; verify asset warnings appear if workflow uses local models.
|
||||
|
||||
### Logo & Loading Indicator (`feat: add Logo C fill and Comfy wave loading indicator components #9433`)
|
||||
|
||||
- New `LogoCFillLoader` and `LogoComfyWaveLoader` SVG components
|
||||
- Wave loader used as app loading screen in `App.vue` and `WorkspaceAuthGate.vue`
|
||||
- Loader z-index raised above BlockUI overlay (z-1200) to prevent dim wash-out
|
||||
|
||||
**Test items**: hard-reload the page and observe the loading animation; verify the wave animation plays during initial load; verify loader disappears cleanly when app is ready.
|
||||
|
||||
### Transparent Image/Video Preview Backgrounds (`feat: Transparent background for the Image and Video Previews #9455`)
|
||||
|
||||
- Image and video preview nodes now use transparent backgrounds instead of solid fill
|
||||
|
||||
**Test items**: run a workflow with an image output; verify the preview node background is transparent; verify different aspect ratios look correct.
|
||||
|
||||
### Model Metadata Fetching (`[feat] Add model metadata fetching #9415`)
|
||||
|
||||
- File sizes fetched via HEAD requests (HuggingFace) and Civitai API with caching/deduplication
|
||||
- Skeleton loader shown while metadata loads
|
||||
- Gated repo support
|
||||
|
||||
**Test items**: open Model Library; select a model; verify metadata panel shows skeleton loader then populates with file size; verify caching (second open is faster).
|
||||
|
||||
### Exposed LiteGraph Internal Keybindings (`feat: expose litegraph internal keybindings #9459`)
|
||||
|
||||
- LiteGraph's internal keybindings now exposed in the keybindings settings panel
|
||||
|
||||
**Test items**: open Settings > Keybinding; verify LiteGraph keybindings (pan, zoom, etc.) visible in the table alongside ComfyUI keybindings.
|
||||
|
||||
### PostHog Telemetry Provider (`feat: add PostHog telemetry provider #9409`)
|
||||
|
||||
- PostHog analytics integration added
|
||||
|
||||
**Test items**: verify no console errors related to telemetry on page load; verify analytics events are fired correctly (network tab).
|
||||
|
||||
---
|
||||
|
||||
## Open Issues from Prior Reports
|
||||
|
||||
The following issues were identified in previous reports and should be re-verified:
|
||||
|
||||
### Issue 1 (from 2026-03-05): Missing i18n Translation — `menuLabels.Share`
|
||||
|
||||
- **Status**: Likely fixed — commit `55b8236c8 Fix localization on share and hide entry (#9395)` was merged after the Linux report and addresses share/hide localization.
|
||||
- **Verify**: Open workflow actions menu — confirm "Share" displays as translated text, not `menuLabels.Share`.
|
||||
|
||||
### Issue 2 (from 2026-03-05): Settings Search Not Filtering
|
||||
|
||||
- **Status**: Unknown — no specific fix identified in commits. Re-test required.
|
||||
- **Verify**: Open Settings → type "language" in search box → confirm filtering works.
|
||||
|
||||
### Issue 3 (both reports): Backend `KeyError: 'Unknown user: default'`
|
||||
|
||||
- **Status**: Backend issue, not frontend. No frontend fix expected.
|
||||
- **Verify**: Still present in logs — informational.
|
||||
|
||||
### Issue 4 (both reports): `/nonexistent` Route Triggers File Download
|
||||
|
||||
- **Status**: Backend routing behavior, not a frontend SPA issue. No frontend fix expected.
|
||||
|
||||
### Issue 5 (from 2026-03-07): Persistent Pointer-Blocking Overlay After Concurrent Zoom Dropdown + Error Dialog
|
||||
|
||||
- **Status**: Unknown. Re-test required.
|
||||
- **Steps**: Open zoom dropdown → trigger run error alert simultaneously → press Escape → verify no persistent `fixed inset-0` overlay remains.
|
||||
|
||||
### Issue 6 (from 2026-03-07): App Mode "Back to Workflow" Button Unreachable
|
||||
|
||||
- **Status**: Likely improved — commits `4ff14b5eb`, `7a01be388`, `1058b7d12` include multiple app mode fixes. Re-test required.
|
||||
- **Verify**: Enter App Mode → verify "Back to workflow" / "Enter node graph" button is accessible at default viewport.
|
||||
|
||||
---
|
||||
|
||||
## Notes
|
||||
|
||||
- **Root Cause**: The Playwright MCP server (`npx @playwright/mcp@0.0.68`) is launched as a subprocess by the Claude CLI when the `--mcp-config` flag points to the JSON config file. In this execution, the agent was invoked without that config, so no `mcp__playwright__*` tools were injected. This is a CI workflow configuration issue — the agent must be launched via the `claude` CLI with the correct `--mcp-config` and `--allowedTools` flags as shown in `.github/workflows/qa-claude.yaml`.
|
||||
- **Recommendation**: The CI workflow step "Run Claude QA" correctly configures the MCP server and tool allowlist. This report was produced by an agent invoked outside that workflow step.
|
||||
- **Prior Coverage**: The Linux (2026-03-05) and macOS (2026-03-07) reports together cover the core application features. The major new features requiring re-test are the run controls redesign, workflow mode toggle, app mode improvements, and the share/publish flow.
|
||||
- **Next Steps**: Re-run QA via the CI workflow on Windows to get browser-interactive results, or verify that the MCP config is passed correctly when invoking Claude for QA.
|
||||
Reference in New Issue
Block a user