← all releases

v1.0.1

on GitHub

Not the newest. v1.5.1 is out →

Release notes

Added

  • runwisp run now accepts --param key=value (repeatable) to supply task parameter values from the CLI, matching what the REST API, Web UI, and TUI already support.
  • The Web UI’s stale-config banner now has a Reload button, applying runwisp.toml changes without switching to the CLI or TUI.
  • runwisp validate and daemon startup now warn when a [compose.*] block would import RunWisp’s own service, or a bind-mount source that doesn’t exist from RunWisp’s point of view.

Fixed

  • Web UI login now works over plain HTTP on non-localhost addresses (e.g. a LAN IP), where browsers hide WebCrypto.
  • The Web UI login screen no longer clears the password field when you’re rate limited.
  • The Web UI no longer flashes offline every few seconds when served over unsigned HTTPS.
  • Long group and service names in the TUI sidebar no longer overflow the panel — they’re truncated to fit. (@hash-bang)
  • on_overlap = "kill" with max_concurrent > 1 now cancels only the excess runs instead of killing every live run when triggers arrive faster than runs stop.
  • A day-of-week cron step like 1/2 now includes Sunday (matching vixie cron) instead of silently dropping it, so imported crontabs keep their full schedule.
  • An explicit timeout = "0s" or jitter = "0s" on a task now opts out of an inherited [defaults] value (run with no timeout / no jitter) instead of being overridden by the default.
  • Outbound notification retries now honor the retry budget when a channel keeps returning HTTP 429, instead of retrying forever and stalling that channel.
  • The first failure after a coalesced window-close summary now pages immediately instead of being folded into the next summary.
  • The in-app notification stream now drops its oldest buffered update under backpressure, keeping a busy client’s unread count current.
  • Age-based retention now evicts the oldest runs first when a task’s expired backlog exceeds one cleanup batch.
  • The daemon now refuses to start if it cannot mark crash-orphaned runs interrupted, instead of leaving them stuck as “running” forever.
  • The Web UI login form now offers proper autofill/save hooks, so password managers (Firefox, Chrome, Bitwarden, 1Password) prompt to save and can autofill the password.
  • retry_attempts and restart = "on_failure" now respect the unit’s failures policy, so narrowing failures (an exit-code range, a dropped reason) narrows what gets automatically retried or restarted.
All releases