Spindle DocsStart a trial

Changelog

Releases

Control plane, agent and CLI are versioned together. Agents one minor version behind the control plane are always supported, so you are never forced into a same-day upgrade.

v3.82026‑02‑04
current

Late-run budgets and a quieter agent

  • late_after is now a workflow-level budget that can page while every step is still green. Previously the only way to express "this should have finished by now" was a timeout, which killed the run instead of warning about it.
  • Idle PULSE interval on the agent attachment lowered from 40 s to 25 s. A customer's reverse proxy was closing idle connections at 30 s, and agents looked like they were flapping while every step was in fact succeeding.
  • The agent persists its attach cursor across restarts, so a host reboot no longer marks in-flight steps as lost.
  • Run pages show the previous fourteen durations for each step inline.
v3.72025‑12‑10

Matrix steps, per-step idempotency

  • A step can expand over a list with matrix, producing one instance per entry; downstream steps may wait for all instances or for the first success.
  • idempotency_key added at step level and exposed to the step as an environment variable, for work that must not be duplicated by a retry.
  • retry_on accepts exit-code classes, so "bad input, skip it" is no longer indistinguishable from "transient failure, try again".
  • CLI: spindle logs --follow now reconnects by cursor instead of restarting the stream from the beginning.
v3.62025‑10‑21

Transport v3

  • Agents attach over a single long-lived stream with length-prefixed records multiplexed by track, replacing the per-step polling of transport v2. Connection setup had grown to more than half the bytes on the wire for agents with many short steps.
  • Records carry an explicit size rather than relying on a delimiter. Transport v2 agents cannot attach to a v3 control plane and must be upgraded first.
  • Reattach by cursor replaced reattach by agent identity; a dropped connection no longer re-assigns work that is already running.
v3.52025‑08‑26

Overlap policy, DST handling

  • Explicit overlap policy per workflow: skip, queue, cancel_previous or allow. Behaviour before this release was always allow, which surprised everybody who migrated a crontab.
  • Daylight-saving transitions handled per schedule: a run in a skipped hour moves forward, a run in a repeated hour fires once. Two customers had been double-processing one night a year.
  • Audit log records the previous value of a changed field, not just that it changed.
v3.42025‑06‑17

Conditional steps and artifacts

  • Steps may be gated on an expression over previous step outputs.
  • $SPINDLE_OUT introduced: files a step writes there are retained with the run, which is where most failure reports turn out to live.
  • A step whose dependency failed is now reported as skipped rather than failed.

Release policy

A minor release lands roughly every eight weeks. Patch releases go out as needed and never change behaviour deliberately — if a patch changes something observable, that is a bug in the patch.

Breaking changes appear only in minor releases, are announced at least one release in advance, and come with a migration note in the release itself. The transport is the one place where we have had to break compatibility, in v3.6, and agents had the whole v3.5 cycle to upgrade.

Support window
ComponentSupported versions
Control plane (hosted)current only
Control plane (self-hosted)current and two previous minors
Agentcurrent and one previous minor
CLIcurrent and two previous minors
REST API v3no sunset date announced

Hosted upgrades

Applied on Tuesdays between 06:00 and 08:00 UTC, rolling, with no scheduling pause. Runs in flight are not interrupted; an agent that loses its attachment during the roll reattaches by cursor within a few seconds.

Deprecations in flight

Transport v2 is refused as of v3.6. The schedule_utc field, superseded by timezone in v3.5, still parses but is no longer documented and will be removed in v4.0.

Self-hosted upgrades are yours to schedule. We publish images and a chart; nothing upgrades itself. Skipping more than two minors is not supported — step through them.