The problem with reconnecting ad-hoc is that a branch's workflow version may have changed. In principle, this means doing a complete refresh on the workflow, potentially wiping out everything that the user was working on. This is not something that we want to do automatically.
However, if the head workflow version is unchanged, we should be able to reconnect safely.
[ ] While disconnected, start periodically polling for a connection.
[ ] If the connection exists, check the branch head for equivalence before connecting a branch
[ ] Possibly needed: track the branch head version in the UI.
[ ] Update all of the cell states, outputs, and artifact lists to match what is current (these are read only, and should be safe)
[ ] Create a ticket to see if we can do something similar based on a workflow delta.
The problem with reconnecting ad-hoc is that a branch's workflow version may have changed. In principle, this means doing a complete refresh on the workflow, potentially wiping out everything that the user was working on. This is not something that we want to do automatically.
However, if the head workflow version is unchanged, we should be able to reconnect safely.