Appearance
SystemsLab 155.0.0
Added
- A
systemslab optimize <spec> <config.toml>command searches an experiment's parameter space with Bayesian optimization: it seeds a Latin hypercube of parameter combinations, submits each as an experiment into a shared context, scores it with the PromQL query named in the config file, and fits a Gaussian process to pick the next combination. Continuous, integer, and categorical parameters are supported, along with constraints and rules restricting valid combinations of dependent parameters. A run's state is stored as a context artifact, so--resume <context_id>picks up where an interrupted (or Ctrl-C'd) run left off. - The MCP
submit_experimenttool now returns awatch_urlper experiment (plus acontext_watch_urlfor matrix submissions), andget_experimentreturns awatchUrl. Connecting to one of these loopback WebSockets sends the current state, then one frame per state change, then closes once the experiment or context is terminal, so an agent can block on completion instead of pollingget_experiment.
Changed
- TOML experiment steps are now action-agnostic: a step names any action with
uses(typeremains an alias) and passes its arguments either inline or under awithtable, which are forwarded verbatim and validated against the action's own schema. Previously onlyshell,barrier,write_file, andupload_artifactwere understood, so no other action could be used from a TOML spec.write_fileandupload_artifactstill work as deprecated aliases forsystemslab/write-fileandsystemslab/upload-artifact, and emit a warning. - The MCP
submit_experimenttool now requires anamefor matrix submissions, which names the shared context the variants are grouped under. It can be supplied via thenameargument or the spec's[matrix].context_name; if neither is given the submission is rejected rather than falling back to a generatedTOML matrix (N variants)default. For single-variant specsnameremains an optional override of the spec's ownname. - The MCP
get_logstool now caps output at 200 events by default instead of returning the entire log, so a long run's fullset -xtrace no longer blows past the MCP token cap. It also gains filters to narrow the result before paging:grep(case-insensitive substring),tail(last N events, ideal for "why did it fail"),source(stdout/stderr/agent), andstep(per-step index). Each returned event now also reports itssourceandstep.
Fixed
- Fixed every submitted experiment failing immediately with
error, no runs, and no job logs. The workflow WASM modules were JIT-compiled with wasmtime debug info enabled, which hit a codegen assertion in the current wasmtime and turned into a compilation error. Debug info is now off by default and opt-in via a newdurable.debug_infoserver config field. - Fixed jobs running under cgroup isolation losing their logs and being retried up to
max_experiment_runs: the recursive cgroup kill used for cleanup also killed the runner itself before it could upload logs or report the run's terminal state. Cancellation cleanup is also more thorough — the graceful SIGTERM now goes to the background step's whole process group, so a shell's children stop with it instead of surviving until the later SIGKILL. - Fixed jobs running under cgroup isolation uploading no
metrics.parquet; the cgroup cleanup killed the rezolus recorders along with the workload before they could finalize their output. systemslab login --devicenow works against Google-backed servers. It uses a client registered for limited-input devices (Google rejects the device grant for the browser flow's client), and when the configuredoauth_client_idis not eligible the error now says the device flow isn't supported for that client instead of surfacing a rawinvalid_client.- Fixed the Debian and RPM package builds, which had been failing since 2026-06-23 — including for the v154.0.0 release — so no packages were published. The RPM build additionally failed to compile
aws-lc-sysunder hardened build flags. - Removing or upgrading the
systemslab-agentandsystemslab-server-standalonepackages no longer deletes their service users; the accounts are now removed only on purge. Thesystemslab-serverpackage also no longer depends onsystemslab-greptime.