* Implement moving cells with keyboard shortcuts
* Add tests for cell movement operation
* Refactor
* Does not mark cells as stale if Elixir cells did not change order
* Keep track of connected clients in session data
* Add API for confirming and purging deltas
* Send delta confirmation from clients once received
* Update naming
* Fix and extend Data tests
* Update naming
* Basic filesystem navigation
* Add file picker modal
* Implement autosave when dirty and show the status
* Add hompage link in the session view
* Improve file picker and use in both places
* Move session list to homepage
* Some refactoring
* Show import messages if any
* Fix and extend tests
* Show a message when there are no sessions running
* Rename import to fork and make that clear in notebook name
* Fix old route
* Show info when no file is connected to the given session
* Show runtime type next to filename
* Show button for joining session when a running path is selected
* Move modal components to SessionLive namespace
* Add FileGuard to lock files used for notebook persistence
* Use radio for specifying persistence type
* Don't lock nil path
* Simplify FileGuard implementation
* Test notebook persistence
* Fix typo
* Further simplify FileGuard
* Improve file listing
* Don't show parent dir when there's a basename being typed
* Add path component tests
* Isolate evaluation in separate node for each session
* Start new remote upon first evaluation and handle nodedown
* Add UI for managing evaluation node, improve naming and structure
* Show runtime initialization errors and some fixes
* Improve standalone node initialization
* Correctly handle multiple sessions connecting to the same node
* Fix session tests concerning evaluation
* Documentation and some refactoring
* Various improvements
* Configure schedulers to get to sleep immediately after evaluation
* Move EvaluatorSpervisor into the Remote namespace
* Fix evaluators cleanup
* Add tests
* Improve flash messages
* Introduce remote genserver taking care of cleanup
* Redefine the Runtime protocol to serve as an interface for evaluation
* Cleanup operations
* Use reference for communication with a standalone node
* Use shortnames for distribution by default
* Update node configuration and make sure epmd is running
* Rename Remote to ErlDist
* Render evaluation outputs and result
* Fix auto-scrolling to not be interrupted by editor focus
* Add cell output tests
* Run formatter
* Show cell status
* Apply review suggestions
* Change EEx strings to Live EEx
* Set up editor and client side delta handling
* Synchronize deltas on the server
* Document the client code, add more tests
* Implement delta on the server, use compact representation when transmitting changes
* Simplify transformation implementation and add documentation
* Add session and data tests
* Add more delta tests
* Clean up evaluator tests wait timeout
* Sync session data within LV client
* Add basic session UI
* Add operations for setting notebook and section name
* Update notebook and section name from the UI
* Some cleanup
* Return current data upon client registartion to avoid race conditions
* Small fixes
* Define session data structure and some operations
* Make code evaluation request async, so that we don't need an intermediary process
* Simplify id typespecs
* Make operation application composable
* Keep a separate evaluation queue per section and actually support concurrent evaluation
* Small fixes
* Validate queued cell type and set evaluation timestamp
* Apply review suggestions
* Add tests
* Store evaluating_cell_id instead of section status
* Add dynamic supervisor for managing evaluator processes
* Some fixes
* Refactor operation application
* Upon cell deletion mark dependent cells as stale