Appearance
SystemsLab 141.0.0
Added
- Added support for cancelling experiments while they are running. Previously cancellation only worked while an experiment was queued.
- Added
systemslab artifact delete --artifact <UUID>CLI command (callsDELETE /api/v1/artifact/{id}). - Added
--oneshotflag tosystemslab-agentto run a single job and exit. - Added a context KPI and parameter summary section to the context page, showing sweep parameters alongside computed KPI metrics extracted from parquet metric artifacts. Constant parameters are surfaced above the table and only varying parameters appear as columns.
- Added
multi_line_chart,scatter, andheatmapitem types to the report template system, including editor support and live preview. - Added markdown rendering to report text content (in both the rendered report view and the template editor item cards).
- Added an "Attach Report" dropdown to the experiment page reports section with template search and a button to create a new template.
- Added a delete button to each row of the reports table on the experiment page (with confirmation dialog).
- Added an edit-template button (pencil icon) to the report view page.
- Added experiment selection and live chart previews to the report template editor. Template edits are now also persisted to localStorage so accidental refreshes don't lose work.
- Added a drag handle for tab reordering in the report template editor.
- Added an "Update Preview" button to the query panel in the item edit modal.
- Added a "latest" entry at the top of the report version history panel for easy navigation back to the current state.
- Added GPU metric views and dedicated viewer pages for
vllm_metricsandsgl_metrics. Fixed the PromQL query editor to show figures for those metrics. - Added a restart policy to
systemslab-server.service(on-failure, 5s delay, capped at 5 attempts within 300s).
Changed
- Refactored postprocessing into a generic background job worker. As a result:
- The
postprocessingserver config flag has been renamed tobackground_jobs(existing configs continue to work via a serde alias). GET /api/v1/postprocessing-queuehas been replaced with a genericGET /api/v1/jobs[?kind=...]endpoint, and thePostprocessingJob/PostprocessingStateREST types have been replaced withBackgroundJob/BackgroundJobState.
- The
- Removed the context scope option from report templates in the UI; new templates are now implicitly experiment-only.
- Removed GreptimeDB from the production Docker image and from the dev cluster docker-compose setup.
- The report editor now hides editing widgets while previewing a historical version, and closing the history panel keeps the previewed version selected (use the "Back to current" button in the preview banner to revert).
- Restructured the chart-type edit modal: the live preview now appears at the top, the modal is wider (96vw) to make room for it, and scatter plot fields are consolidated onto a single control row.
- Made the entire row clickable to expand JSON in durable task event and notification views (replacing the per-cell
<details>dropdown). - Removed
amazonlinux:2andubuntu:focalfrom the build/package matrices (both EOL or no longer compile).
Fixed
- Transient errors from the storage backend (e.g. occasional 5xx from S3) are now surfaced as
503 Service Unavailableinstead of500 Internal Server Error, signalling to clients that the request can be retried. - Fixed the
/api/v1/job/:id/:run/eventsSSE endpoint so it sends HTTP response headers immediately rather than after the run is scheduled, avoiding spurious client-side timeouts on slow runners. - Fixed the Attach Report dialog showing no templates (UI was treating
ReportTemplate.scopeas an integer bitmask after it had been migrated to an enum array). - Fixed slow agent status responses caused by mutex contention and missing per-request timeouts. Status calls now use a 5s timeout and the agent publishes its state via a watch channel that
status()reads lock-free. - Fixed hosts getting permanently stuck in the
assignedstate when job submission failed before the host transitioned tobusy. Hosts are now reset toidlewhen a run reaches a terminal state. - Fixed stale KPI summary results caused by the browser caching the endpoint response across page loads.
- Fixed PromQL load errors silently returning empty results instead of surfacing as proper HTTP errors.