Skip to content

Releases: UNC-Robotics/eos

0.24.0

22 Apr 17:28

Choose a tag to compare

  • Added task parameter groups. Task parameters can now be grouped in YAML under parents up to 1 level deep, and groups are rendered in UI
  • Reduced clutter in the task properties panel, as well as in submission dialogs
  • Added description tooltips for parameters in the task properties panel
  • Added effort slider for Claude Agent SDK models in the Beacon optimizer UI
  • Improved parameter default value handling by showing them in the UI rather than having blank fields
  • Fixed parameter default values when submitting protocol runs
  • Fixed auto-rounding when trying to type floating point numbers in the UI
  • Added tests for parameter defaults

0.23.0

16 Apr 21:32

Choose a tag to compare

  • Added eos pkg install CLI command for installing user package dependencies more easily
  • Added eos update CLI command to pull master, sync dependencies, and run database migrations in one step

0.22.0

15 Apr 20:57

Choose a tag to compare

  • Changed Bayesian optimizer random sampling to use BoFire's RandomStrategy when using constraints, which is more robust
  • Improved protocol run execution view in the UI to update task details when task statuses change
  • Improved campaign submission form when Beacon optimizer is used to show loading indicator while its loading default parameters
  • Fixed error page in the UI to use dark theme when dark theme is enabled
  • Fixed failing tasks not being marked as failed in the DB
  • Added test for task failure

0.21.0

15 Apr 20:04

Choose a tag to compare

  • Improved and fixed device management code to properly handle device loading, unloading, and reloading
  • Fixed Bayesian optimizer random sampling not respecting constraints via rejection sampling
  • Improved how error messages are displayed in the web UI
  • Added copy button for error messages displayed in the web UI
  • Added tests for device loading, unloading, and reloading
  • Added tests for task reloading
  • Fixed bugs

0.20.0

10 Apr 20:59

Choose a tag to compare

  • Added scheduling simulator in the web UI, allowing users to simulate how protocol tasks would run, estimate parallelism and resource utilization, and more
  • Added file change detection in the web UI editor page, warning users if source files on disk were changed outside the web UI before saving
  • Added resources view in the web UI, allowing users to view the state of all resources in EOS, such as view metadata, and reset their state to default
  • Fixed several bugs

0.19.0

27 Mar 23:14

Choose a tag to compare

Breaking Release: This version renames experiments to protocols/protocol runs.
Existing user code that references experiments will need to be updated.
A migration script is provided in scripts/migration/migrate_experiment_to_protocol.py.

  • Replaced experiments with protocols and protocol runs to describe more general lab workflows beyond experiments
  • Refactored code to support the new naming
  • Added search for parameters in web UI submission dialogs
  • Optimized submission dialog layout to be more vertically compact
  • Collapsed Beacon optimizer domain on submission dialogs by default
  • Added delayed automatic refresh after making a submission
  • Fixed dark theme font color of timestamp columns
  • Updated documentation

0.18.0

25 Mar 18:20

Choose a tag to compare

  • Improved entity cloning feature in the web UI to increment a number rather than appending _clone suffix
  • Improved task, experiment, and campaign tables to use correct pagination
  • Created Docker setup for running the web UI

Thanks @dirkzon and @yordan-ov !

0.17.0

22 Mar 22:21

Choose a tag to compare

This is the biggest EOS update to date, bringing a brand-new web UI for EOS, a powerful new default optimizer called Beacon combining traditional methods like Bayesian optimization with cutting-edge methods like LLMs, an MCP server for connecting AI agents to EOS with 50 tools, and many improvements to the EOS scheduler and EOS internals.

  • New web UI for designing experiments visually, submitting tasks/experiments/campaigns, monitoring optimization, inspecting devices, browsing files, streaming logs, and managing packages.
  • New Beacon optimizer that combines Bayesian optimization with LLM reasoning.
  • New MCP server allowing AI assistants like Claude to connect to EOS and interact with EOS.
  • New device and resource holds in the scheduler to keep allocations locked between tasks so other experiments can't claim them mid-workflow.
  • New scheduling simulator (eos sim) to simulate experiment scheduling offline without hardware.
  • New REST API endpoints for optimizer state, log streaming, and package management.
  • Error messages are now stored for failed tasks, experiments, and campaigns.
  • On-demand tasks now go through the scheduler, improving efficiency and stability.
  • Optimizer sampling is now async and no longer blocks the orchestrator loop.
  • CP-SAT scheduler runs in a thread executor to avoid blocking the event loop.
  • Campaign optimizer parameters can be overridden at submission time
  • EOS now lazy-loads optimizers, reducing startup time and memory usage.
  • Fixed a bug that caused Ray to consume large amounts of disk space.
  • Refactored parts of the codebase.
  • Improved performance in several parts of the codebase.
  • Various bug fixes and stability improvements.
  • Updated documentation.
  • Updated dependencies.

0.16.0

03 Feb 23:52

Choose a tag to compare

  • Optimized the exclusive allocation of devices and resources. It now scales much better with more concurrent requests.
  • Fixed the optimizer to properly handle initial samples with batched sample requests.
  • Fixed the interrupt signal handling for EOS getting intercepted by Ray and preventing cleanup logic from firing.

0.15.0

03 Feb 14:28

Choose a tag to compare

  • Replaced MinIO with SeaweedFS
  • Made the file DB interface S3-compatible
  • Changed the file DB interface to be async
  • Made optimizer calls in campaigns non-blocking. This allows the EOS loop to keep going instead of optimizers blocking work
  • Made priorities in the CP-SAT scheduler soft to avoid infeasible schedules
  • Changed CP-SAT optimization to have 1 phase rather than 2, speeding up solving
  • Fixed reference resolution in the CP-SAT scheduler to properly follow reference chains
  • Changed the CP-SAT scheduler to use relative time to avoid possible int64 overflow