# linux QA Video Report
- Generated at: 2026-03-27T02:13:40.668Z
- Model: `gemini-3-flash-preview`
- Target: https://github.com/Comfy-Org/ComfyUI_frontend/pull/10247
- Before video: `./qa-artifacts/qa-report-Linux-23627581093/qa-before-session.mp4` (3.8 MB)
- After video: `./qa-artifacts/qa-report-Linux-23627581093/qa-session.mp4` (2.6 MB)
- Mode: **Comparative (before/after)**
## AI Review
## Summary
The PR successfully addresses viewport persistence and navigation state issues when working with subgraphs and multiple workflow tabs.
- **BEFORE** video confirms the bug where switching between workflow tabs causes the application to lose the active subgraph navigation, reverting the view to the root graph.
- **AFTER** video demonstrates that the active subgraph and its viewport position are now correctly persisted across tab switches.
- The architectural changes (workflow-scoped keys and sync flushing) ensure that multiple "Unsaved Workflow" tabs do not interfere with each other's viewport states.
## Behavior Changes
| Behavior | Before (main) | After (PR) | Verdict |
|---|---|---|---|
| **Subgraph Tab Persistence** | Switching tabs resets the view to the root graph, losing the active subgraph navigation. | Switching tabs preserves the active subgraph and its specific viewport position. | **Fixed** |
| **Viewport Cache Isolation** | Viewports could potentially leak between workflows using generic IDs. | Viewports are scoped to specific workflow instances (verified with multiple "Unsaved" tabs). | **Improved** |
| **First-visit Positioning** | Default viewport might leave nodes off-screen on the first entry. | Automatically fits the viewport to nodes on the first visit via `fitToBounds`. | **Improved** |
## Timeline Comparison
| Time | Type | Severity | Before (main) | After (PR) |
|---|---|---|---|---|
| 0:13 | State | None | Enters subgraph in "Unsaved Workflow". | Enters subgraph in "Unsaved Workflow". |
| 0:17-0:18 | Behavior | **Fixed** | Switches to a new tab and back; the original tab has **reverted to the Root graph**, losing the subgraph view. | N/A |
| 0:12-0:14 | Behavior | **Fixed** | N/A | Switches to a second "Unsaved Workflow" tab and back; the **subgraph remains open** exactly where it was left. |
| 0:21 | Behavior | None | Re-enters subgraph manually to check for "drift". No significant drift visible in this specific trace. | N/A |
## Confirmed Issues
### Loss of subgraph context on tab switch
`MAJOR` `0:17` `Confidence: HIGH`
In the BEFORE branch, navigating into a subgraph is not "sticky" across tab switches. Returning to a tab resets the user to the root graph.
**Evidence:** Video 1 at 0:13 (inside subgraph) vs 0:18 (returned to root graph after tab switch).
**Suggested Fix:** This is the core fix of the PR, using `subgraphNavigationStore` to persist state.
---
## Possible Issues (Needs Human Verification)
- **Node Visibility**: In both videos, the subgraph area appears empty (dark grid). While the code implements `fitToBounds`, the specific template used in the demo might not have nodes inside the subgraph to verify the visual centering logic.
## Overall Risk
**Low**. The PR fixes a clear regression/limitation in the tabbed workflow system. The use of `WeakMap` for instance IDs and `flush: 'sync'` for watchers are appropriate senior-level solutions for timing issues in reactive state management. No regressions were observed in standard workflow navigation.