Several components add event listeners in useEffect but never clean them up. Each remount stacks another listener on top of the old ones.
GraphArea.jsx adds a resize listener with an anonymous arrow... no way to remove it. File-drag-drop.jsx does the same with drag events on document.body. Header.jsx and TabBar.jsx register hotkey bindings and never unbind them. The hotkey ones are worse because the callbacks capture initial state via closure, so after remount you get duplicate firings with stale data
Easy to verify , mount/unmount a graph tab a few times and check getEventListeners(window) in devtools. The list grows.