Skip to content

SystemsLab 154.0.0 ​

Added ​

  • TOML experiment specs now accept --param/-p overrides like jsonnet specs do. Each override replaces (or adds) the matching [params] entry and pins the matching [matrix] dimension to that value, so a pinned dimension no longer expands into multiple variants; CLI overrides take precedence over static params and matrix values. A reserved [matrix].context_name key names the context that groups matrix variants on submit, with precedence --name > [matrix].context_name > generated default. The MCP submit tool gains equivalent params and context_name fields.
  • A scripts/install.sh curl-to-bash installer sets up the public SystemsLab package repository for the host distro (Ubuntu jammy/noble, Debian trixie, Amazon Linux 2023) and installs systemslab-cli via apt or dnf. Honors SYSTEMSLAB_CHANNEL=nightly and a dry-run mode.
  • Experiment and context terminal-state browser notifications now survive navigating away from the watched page: an app-level service worker owns the notification and its click routing, so a notification still fires (and focuses the right tab) after you leave the entity's page.

Changed ​

  • The homepage context status column now renders as a colored badge (pending / success / failure / error / cancelled) instead of plain text, matching how experiment statuses are shown.
  • The homepage and context pages now update in place from server change events — new contexts appear, and per-context state counters and experiment states refresh live — without a manual page reload.
  • Wide tables (e.g. KPI summaries with many columns) now scroll horizontally within their own section instead of scrolling the whole page sideways.

Fixed ​

  • Fixed a race in the scheduler that could leave an experiment stuck in scheduled forever: the ExperimentScheduled wakeup was sent on a separate connection from the transaction writing run.host_id, so a woken workflow could read NULL hosts and skip launching those jobs, stalling the experiment while it held its hosts and deadlocking everything queued behind it. The wakeup is now enqueued inside the assignment transaction so it cannot become visible before the host writes commit.
  • systemslab sweep now uploads its jsonnet spec and sweepfile as context-level artifacts, so a swept context can be reconstructed from its captured spec; previously only submit did this despite the docs claiming both did.
  • A stalled artifact upload or other server request can no longer hang a runner job indefinitely; runner-to-server requests are now bounded by a timeout.
  • Fixed systemslab configure (the nss integration) leaving /etc/nsswitch.conf readable only by root, which made glibc silently fall back to files dns and break name resolution for non-root users; the rewritten file now preserves the original permissions.