Repository navigation
v0.18.4
What's Changed
Upgrade notes — read before you roll out
- Migration 053 (two new indexes on
job): the server builds them at startup inside one transaction, and writes tojobwait while each index scans the table. On a large database, build them first withCREATE INDEX CONCURRENTLY, as described in Migration 053. After that pre-run the migration is a no-op. ([b6f3063]) - The leader lease needs PostgreSQL 14 or later: on an older database the leader logs one warning and runs without the lease (validity and self-release still apply). ([050a200])
/livezfails on a stopped background loop on every replica, followers included (before, only on the leader). With one replica and no liveness probe (Docker Compose, probes off), a loop that exits now stops all leader work until a restart; setleader.self_release_after_secs: 0for such a deployment. ([76dde86])- An empty templated
ref:now means "no ref": upgrade every server replica before you rely on it. A replica on 0.18.3 or older still fails such a step and answers400to such a webhook. ([5436d21]) GET /api/workspaces/{ws}/triggersfails closed (an error, not an unfiltered list) when the ACL context cannot be loaded. ([0007464])
Features
- Linux ARM64 releases: each release now has
aarch64-unknown-linux-gnuarchives ofstroem-server,stroem-worker,stroemandstroem-api, built natively on GitHub's ARM runners. The release imagesghcr.io/fremvaerk/stroem-{server,worker,runner}:X.Y.Z(andX.Y,X) are multi-arch (linux/amd64+linux/arm64). Thesha-*images built frommainstaylinux/amd64only. ([75ac29e]) - Trigger run status: the workspace page shows each trigger's last run and its result, and scheduler triggers show how many runs were missed (for example while no replica was leader). The task page shows the same missed-runs mark, and a new Dashboard card lists the triggers that need attention (
GET /api/triggers/attention). Only the trigger's own next run clears the mark. A run you may not view stays hidden. ([0007464], [1677e96], [729fcef], [b7d61a7], [b6f3063]) - Workspace display name and description:
workspaces.<name>.display_nameand.descriptionin the server config (env overrides work). The Workspaces list, the workspace page,GET /api/workspaces, MCPlist_workspacesandstroem-api workspacesshow them. ([c728864], [cb116c3], [6625c47]) - Later runs of a job: job detail gains
derived_jobs[], the Restarts and Re-runs made from a job, and the job page links them in a "Later runs" card that stays current while a later run is live. ([44074bd], [021bd81], [6fd6639]) - Configurable leader settings: a new
leader:section,lease_secs(default 30) andself_release_after_secs(default 30,0= off). All other leader timings come from the lease. ([76dde86], [771aafa]) - Optional branch from an input: a templated
ref:that renders empty (for exampleref: "{{ input.branch | default(value='') }}") runs the flow step, thetype: taskstep or the webhook job as ifref:were absent, instead of failing the step. ([5436d21], [9e9055c])
Bug Fixes
- A frozen leader no longer blocks all leader work: in production a node went silent while its kernel kept the database session alive, so its replica held the leader lock for 16.5 hours and every cron trigger was missed. The leader session now runs with
idle_session_timeout(the lease), a replica acts as leader only while its pings succeed, and a leader whose scheduler, recovery or event-source loop is stalled or stopped releases the lock. Followers log who holds the lock and warn when the holder looks stale. ([050a200], [76dde86]) - One dispatcher per
type: taskstep: two concurrent advances could both start a child job for the same readytype: taskstep. A dispatcher now claims the step first, and a dispatcher that lost cannot fail the step that another one dispatched. ([6340526], [c2d3bac]) - Docs links: the
llms.txt/llms-full.txtsidebar links and about 190 content links no longer 404 on the docs site, and the links inside the llms files are absolute. ([c56ea02], [096a87d], [c0f6cec], [dc57ef4])
Documentation
- Installation lists the real archive names (
stroem-server-…,stroem-worker-…,stroem-…,stroem-api-…) for both Linux targets, says thatstroem-serverneeds OpenSSL 3, and removes the macOS and Windows rows (those binaries are not published). ([1e98e9f], [7d42585], [808763d]) - New guides: trigger last run and missed runs, leader lease and settings (High availability), workspace display names, empty templated refs. ([f18cf05], [7eb6950], [cd5c28a], [b500763], [9e9055c])
Internal
- CodeQL runs as an advanced setup that excludes test code; unit tests that carry fixture secrets moved to sibling
tests.rsfiles. ([5388504]) - The shared test database runs on
postgres:15-alpine. ([3076ed8])
Full Changelog: v0.18.3...v0.18.4