* fix(changes-tab): prevent freeze and stale highlights when staging/unstaging When files are staged/unstaged while the Changes tab is open, the diff viewer was re-rendering all sections, causing UI freezes and highlight flickering. - Add resolveCombinedUncommittedSnapshotEntries() to reconcile snapshot entries with live git status without destroying existing loaded diff content. - Track retainedResolvedSnapshotEntries from current sections to preserve area state when live git status temporarily loses entries. - Use Map-based O(snapshot + live) algorithm instead of nested loops. - Add unit tests for the resolver logic. - Add e2e test with performance measurement for stale unstaged diffs. Co-authored-by: Orca <help@stably.ai> * Prevent duplicate entries in uncommitted snapshot resolution Track resolved snapshot entries using composite area and path keys to ensure staged and unstaged sections remain distinct and do not duplicate when live Git status changes or disappears. Additionally, switch the retained entries from a Map to a list to support multiple areas per path, and update CombinedDiffViewer to avoid rebuilding the snapshot list on row load state changes. * test: add test coverage for duplicate-path snapshot remapping - Add unit test verifying that duplicate-path snapshots do not remap to a retained fallback area. - Robustify E2E large diff freeze repro test by ensuring interval timers are always cleared in a finally block. - Standardize path utilities in large diff fixtures to ensure cross-platform compatibility. --------- Co-authored-by: Orca <help@stably.ai> |
||
|---|---|---|
| .. | ||
| e2e | ||
| .gitignore | ||
| playwright.config.ts | ||