* perf(renderer): bail out of identity-equal terminal layout and cache-timer writes setCacheTimerStartedAt and setTabLayout spread a fresh object and returned it unconditionally, so every redundant call published a new AppState and ran every zustand subscriber's selector across all mounted panes. Both have a real redundant cadence: parked-terminal-byte-watcher writes a null cache timer on each agent working/exit/stale-title transition, and TerminalPane re-persists an identical layout on pane-title churn. Extract the existing terminalLayoutEqual comparator out of web-session-tabs-sync into a shared module and use it to gate the layout write, and dedupe the remote-runtime layout IPC against the last snapshot pushed per tab. * fix(renderer): retry failed remote pane layout pushes * test(renderer): cover stale remote layout failures * test(e2e): cover remote pane layout retry |
||
|---|---|---|
| .. | ||
| e2e | ||
| tools | ||
| .gitignore | ||
| playwright.config.ts | ||