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:
snomiao
2026-03-17 00:47:59 +00:00
parent b0ad8d3ea1
commit b7f3fdb6d2
3 changed files with 0 additions and 633 deletions

View File

@@ -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.

View File

@@ -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 (8243 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.

View File

@@ -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.