Skip to content

SystemsLab 144.0.0 ​

Added ​

  • Contexts can now be pinned. The home page surfaces a dedicated pinned section, the context pin and context unpin commands toggle the flag, and the context detail page gains a pin button. Pinning is also exposed through PATCH /api/v1/context/{id} via a pinned: bool field.
  • Contexts gained a markdown description field, plumbed through the REST and GraphQL APIs, CLI, and frontend. The context new command accepts --description and --description-file, and a new context describe <id> subcommand edits an existing context's description. Submitted markdown is sanitized server-side with ammonia.
  • host list and host show CLI commands for inspecting hosts registered in the cluster. host list supports --name, --state, --tag, and --limit filters along with the standard tabular output flags; host show displays detailed state, tags, registration time, and agent version.
  • GET /api/v1/job/:id/:run/events now supports SSE event resumption via the Last-Event-ID header or ?lastEventId=<n> query parameter (the latter for browser EventSource clients, which cannot set the header on the initial connection). Each emitted event carries a monotonic u64 ordinal in its id: field.

Changed ​

  • The report view and report-template editor have been restructured to use a fixed sidebar tab nav matching the rezolus metrics page, replacing the previous horizontal tab bar. The sidebar is now shown even for single-tab reports, and the editor's section cards have been replaced with collapsible <details> blocks.
  • The KPI cache is now backed by a new artifact_kpis PostgreSQL table rather than an in-memory LRU. Cached entries survive server restarts and are no longer bounded by process memory; they are automatically invalidated when the underlying artifact bytes change.
  • On-demand host provisioning has been folded into the main scheduler. Operators declare [ec2.virtual_tags] (and optionally [local.virtual_tags]) mapping a virtual tag to an EC2 launch template; runs carrying an unmatched virtual tag cause the scheduler to provision a host on demand and bind it to the run via IMDSv2 user-data. The standalone AmiScheduler service has been removed.
  • The home page no longer filters out cancelled contexts client-side, so the "Cancelled" option in the status filter dropdown is now reachable.

Fixed ​

  • When a barrier action's barrier reaches the Cancelled state (because another job in the experiment failed and the agent cancelled the remaining barriers), the runner now reports the job as cancelled rather than failed.
  • GET /api/v1/job/:id/:run/events no longer hangs for runs that ended in the Cancelled, Lost, or Timeout states; any terminal state now opens the event stream.
  • New systemslab-agent package installs now create a home directory for the systemslab-agent user.