* Keep memory usage state at the root on homepage
* Update lib/livebook/system_resources.ex
Co-authored-by: José Valim <jose.valim@dashbit.co>
Co-authored-by: José Valim <jose.valim@dashbit.co>
* 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
* Group all runtime messages under a common prefix
* Move output specification ot the Runtime protocol
* Update doc comments
* Livebook.Evaluator -> Livebook.Runtime.Evaluator
* Livebook.ContentLoader -> Livebook.Notebook.ContentLoader
* Livebook.UniqueTask -> Livebook.Utils.UniqueTask
* Add import/export delegates to Livebook.LiveMarkdown
* Accessibility improvements on home page
* Unique ids for file info path buttons
* Improves navigation for screen readers in the session list
* Landmarks navigation for screen readers
* Headings navigation for screen readers
* Group navigation - running sessions list
* Fix typo
* Minor adjustments based on review suggestions
* Support downloading source on a per session basis
* Update session_list_component.ex
* Add test
* Update lib/livebook_web/live/home_live/session_list_component.ex
* Update test/livebook_web/live/home_live_test.exs
Co-authored-by: José Valim <jose.valim@gmail.com>
Co-authored-by: Jonatan Kłosko <jonatanklosko@gmail.com>
1. Allow multiple sessions to close or disconnect at once,
and then request the system resources to be updated
2. Make sure that closing a session happens synchronously,
otherwise a race condition could still list the closed
session in a dashboard
3. Ensure close and disconnect can happen more than once
(for example if two users click the same button at the
same time)
* Initial implementation to close multiple sessions
* Sessions: bulk actions with components
* Rename Disconnect sessions to Disconnect runtime
* Select all and disabled when nothing is selected
* Styled checkbox
* Renames toggle events
* Warning about not persisted notebooks
* Adds disconnect runtime option for a single session
* Edit sessions on right
* Fix: typos and plural
* Minor adjustments
* Removes the loop for rendering the menu
* Menus with fixed width
* Minor adjustments
* Pluralize as global helper
* Bulk actions form on client side
* Track bulk actions buttons state
* Fix: home live tests
* Doctests for pluralize
* Fix: bulk actions buttons losing state on session update
* Fix: format
* Minor adjustment on toggle_edit
* Review-based adjustments
* Reset the Edit state after single-session actions
* Minor adjustments
* Fixes bulk action events
* Submit the bulk action form directly
* Tests for bulk actions
* Indentation
* Update lib/livebook_web/live/home_live/close_session_component.ex
Co-authored-by: José Valim <jose.valim@gmail.com>
Co-authored-by: José Valim <jose.valim@gmail.com>
* Address race condition on cancel timer
* Include memory measurement as part of evaluation metadata
* Move periodic resource computation to a single process
* Have a explicit call out for total memory
* Utils to fetch and format system and node memory usage
* Order by memory
* Track memory on session
* Show memory usage on runtime sidebar
* Shows memory usage percentage on home
* Layout adjustments
* Sidebar design adjustments to match Figma
* Home design adjustments to show the memory information
* Move memory calculations to utils
* Shows disconnected notebooks as consuming 0mb on home
* Simplifies the data structure of memory usage
* Node memory tracker on runtime
* Clean up
* Renames node memory to runtime memory
* Standardizes the data structure of memory usage
* Sends evaluation_finished to the runtime to update the memory usage after an evaluation
* Fix: The evalutor does not notify when there is no notify_to option
* Adds a test with the notify_to option to the evaluator
* Documents the notify_to option
* Minor fixes on runtime and runtime_server
* Minor fixes on sessions
* Minor adjustments
* Updates docs and specs on Utils
* Minor adjustments on session_live
* Fix total memory used by sessions on home
* Put duplicated functions on helpers
* Better filter by memory
* Fix the tooltip text for memory information on sidebar
* Minor alignment adjustment on home
* Fix error on back after closing session
Clicking the browsers back button after closing a session
resulted in an error since it was trying to close an already closed notebook
* Overwrite back history on section delete
* Improve file select layout on long paths
* Automatically back up notebooks without a file
* Run formatter
* Add margin when there are no sections
* Add an informative note about autosave directory
* Store autosave path instead of file in the config
* Rename autosave dir to autosave path
* Fix insert mode escape on section headlines
* Show ellipsis on selected file too
* Always create the default directory
* Apply review comments
* Remove Code.Fragment backport
* Fix tests compatibility with Elixir 1.13
* Implement signature intellisense
* Don't show signatures on module attributes
* Add tests for calls with do-end block
* Unify spec formatting
* Insert parentheses when completing a function call
* Send all text until cursor in signature request
* Add configuration for completion/signature popups (#693)
* Add editor settings form
* Add configuration for intellisense defaults
* Read fresh settings when editor mounts
* Scope attribute names
* Fix disabled button styling
* Simplify signature box and enable by default
* Split settings into system and user sections
* Update lib/livebook_web/live/settings_live.ex
Co-authored-by: José Valim <jose.valim@dashbit.co>
* Update lib/livebook_web/live/settings_live.ex
Co-authored-by: José Valim <jose.valim@dashbit.co>
Co-authored-by: José Valim <jose.valim@dashbit.co>
* Fix spacing in documentation tests
Co-authored-by: José Valim <jose.valim@dashbit.co>
* adding a new message to close session modal when the session has a file attached to it
* Update lib/livebook_web/live/home_live/close_session_component.ex
Co-authored-by: Jonatan Kłosko <jonatanklosko@gmail.com>
Co-authored-by: Jonatan Kłosko <jonatanklosko@gmail.com>
* Use Phoenix.Tracker to keep track of sessions within the cluster
* Apply review comments
* Cleanup topics and updates
* Update lib/livebook_web/live/session_live.ex
* 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>
* Update phoenix deps
* Update reference to LiveDashboard encode_pid
* Fix form input id references
* Move to HEEx
* Update back to filesystem LV npm package
* Further HEEx rewrites
* Refactor icons into function components
* .html.leex -> .html.heex
* Further refactoring
* Move render helpers into function components
* Add doctype back
* Further refactoring
* Refactor cell component
* Further refactoring
* Compose sidebar using function components
* Rewrite notebook card component as function component
* Fruther refactoring
* Fix race condition in runtime tests
* Rewrite tooltips into function component
* Update Tailwind purge rules
* Revert "Rewrite tooltips into function component"
This reverts commit bd6ca8f0b5.
* Refactor conditional tooltip
* Render basic input
* Make each cell type a separate struct
* Add operation to set input value
* Prototype communication
* Make input name editable
* Refactoring
* Unify cell attribute setters
* IO tests
* Document input communication protocol in Runtime
* Add more tests
* Add persistence
* Fix status update on cell attributes change
* Rework persistence
* Integrate input cell with insert mode
* Add missing users keybinding
* Mimic autofocus for dynamically inserted elements
* Support input type selection
* Support URL input and set up validation
* Convert input error into a more meaningful io error
* Add missing client checks
* Consume every input only once per evaluation
* Fixes
* 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 importing notebook from URL or clipboard
* Extract loading functions into separate module
* Replace import icon with text
* Add TLS peer verification
* Remove unnecessary tests setup step
* Force menu items into a single line
* Add shortcut for saving the notebook
* Make the disk icon always show file dialog
* Split runtime and file settings into separate modals
* Add ctrl+s to the shortcuts list
* Add togglable menu to the session page
* Make sure newly saved file appears in the file selector
* Fix path seletor force reloading
* Remove notebook generated in tests
* Add test for file list refresh after save