* Add secrets to the sidebar
* Get and put secrets (naive)
* Secrets list - shortcut
* Validates secret name
* Livebook secrets as environment variables
* Restores secrets when necessary
* Minor adjustments
* Implements add_system_envs for NoopRuntime
* Moves secrets to session data
* Granular operations for secrets
* Minor adjustments
* Applying suggestions
* Test for add secrets
* Type for secret
* Applying suggestions
* Prevents duplicates
* Refactor to live_render
* Update lib/livebook/session/data.ex
Co-authored-by: Jonatan Kłosko <jonatanklosko@gmail.com>
* Sort secrets
* Applying suggestions
Co-authored-by: Jonatan Kłosko <jonatanklosko@gmail.com>
* Add windows version of ci
Config autocrlf to input on Windows
start epmd in background
* Update .github/workflows/test.yaml
* Update .github/workflows/test.yaml
* Update .github/workflows/test.yaml
* Fix tests
* Fix ownership of cached files
* Fix tests
* Increase timeouts
* Run tests on Windows only on main
Co-authored-by: Jonatan Kłosko <jonatanklosko@gmail.com>
* Fix horizontal scrollbar on smaller screens
* Apply navigation shortcuts without an additional roundtrip
* Shorten the data element selector
* Fix URL in changelog
* Return reference from handle_intellisense
* Automate searching and adding new dependencies
* Restructure runtime management
* Leave search restrictions up to the runtime
* Support predefined dependencies in Embedded runtime dependency search
* Use the embedded runtime for dependency search test
* Fix typo
* Use module for loading embedded runtime dependencies
* Improve naming
* List predefined smart cells and automatically add their dependencies
* Generalize dependency insertion to multiple entries
* Add runtime setup modal
* Don't evaluate setup when restarting the runtime fails
* Automatically add vega_lite for chart builder
* Improve confirmation modal actions when the action is not destructive
* Add support for scanning evaluation context from smart cells
* Rename prev_locator to base_locator to clarify the meaning
* Adjustments
* Add data tests
* Adjustments
* Test smart cell intearaction with RuntimeServer
* Serialize binding scanning and leave sending to the user
* Monitor the scanning process
* Show reconnect for all runtime types when applicable
* Make it clear which runtime is the default
* Show Mix.install restart suggestion only for standalone runtimes
* Fix tests not to rely on the default runtime tab
* Introduce file system abstraction and an S3 implementation
* Support arbitrary absolute paths and delegate resolution to file system
* Remove accidental notebook file
* Apply suggestions from code review
Co-authored-by: José Valim <jose.valim@dashbit.co>
* Apply review comments
* Add missing path assertions
* Apply review comments
* Fix test saving notebook in project root
Co-authored-by: José Valim <jose.valim@dashbit.co>
* Introduce branching sections
* parent_index -> branch_parent_index
* Flip the branch icon
* Don't mark branching sections as aborted if the main flow crashes
* Outline more details about branching sections in the Elixir and Livebook notebook
* Add branch indicator to the sections sidebar
* Add support for Mix runtime as a default
* Support default runtime options in the CLI
* Set cell status to queued while runtime is being started
* Clean up tests
* Add embedded runtime for evaluating code in the Livebook VM
* Update lib/livebook_web/live/session_live/embedded_live.ex
Co-authored-by: José Valim <jose.valim@dashbit.co>
* Use standard error proxy globally in the Livebook node
* Add configuration env variable for setting the default runtime
* Increase evaluation response assertion timeouts
Co-authored-by: José Valim <jose.valim@dashbit.co>
* Set up Escript packaging
* Use MD5 digest sa ETAG
* Make sure changes to the static files recompile the relevant module
* Manually start the application in Escript
* Set up basic CLI
* Run formatter
* Start Elixir app before anything else
* Improve version output
* Build Escript to project root directory
* Improve assets handling
* Move plug related modules under plugs directory
* Include bundled assets in the repository
* Use the same plug with different static providers in prod and dev
* Refactor providers
* Rename StaticProvidedPlug to StaticPlug
* 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