Appearance
SystemsLab 149.0.0
Added
- Experiments that sit in the work queue without ever being scheduled now time out and transition to a new
Timeoutterminal state instead of remaining queued indefinitely. The deadline is driven from inside the experiment workflow itself using a newqueue_timeoutconfig value (default 7 days), captured into each task at submission time. - The
shellaction spec gains acgroupfield. When set, the runner creates a named cgroup v2 sub-directory under the job's cgroup and moves the shell process into it, making it possible to isolate sub-processes for independent resource accounting. - Two new server-side MCP tools surface metric relationships:
analyze_correlationcomputes Pearson cross-correlation (with detrending, normalization, and lag detection) between two PromQL expressions, andfind_correlationssweeps all metrics in a time range and returns the top N ranked by absolute correlation with a target expression. Both honour the same experiment/job label scoping andidelta→iraterewrite asquery_range.
Changed
- OAuth tokens are no longer stored in the macOS Keychain. Tokens now live exclusively in
~/.config/systemslab/oauth/<host>.json(mode0600), eliminating the repeated unlock prompts that previously fired on every read and write. Automatic refresh viarefresh_tokencontinues to work as before.
Fixed
- The shell action binary now propagates the child process's exit code instead of always exiting
0, so failing shell commands properly fail their job. - CLI commands that take
--systemslab-urlnow actually honour the flag. Previously the fallback URLs from/etc/systemslab/server.tomland/etc/systemslab/systemslab.tomlwere merged in a way that overrode the user-supplied value, so commands likesystemslab logout --systemslab-url Xwould silently operate against a different host while reporting success. - The MCP
submit_experimenttool now forwards the spec'spriorityfield to the server, matching the behaviour of thesubmitCLI command. Previously priorities set in MCP-submitted specs were silently dropped. - The MCP
get_logstool no longer hangs when called on an experiment whose run is stillUnscheduledorScheduled, or whose run reached a terminal state without writing alogs.jsonartifact. Both cases now return zero events immediately instead of blocking the server.