Releases · 33 versions

v1.5.1

latest on GitHub

Release notes

Added

  • Homebrew: brew install runwisp/tap/runwisp installs RunWisp on macOS and Linux, and the tap updates with every release. runwisp service install from a Homebrew install keeps working after brew upgrade.

Fixed

  • runwisp restart --attach follows only the new runs, and runwisp logs and --attach report a stopped run as run ended instead of run failed.
  • The Download log button in the Web UI saves the run’s log again instead of failing.
  • Opening a link to an older run in the Web UI no longer adds one to the run count or skips a run when you scroll further down the list.
  • A restart no longer reports missed runs and re-runs a cron task whose run history was deleted by keep_runs, keep_for, max_size or by hand.
  • A cron task you remove from the config and later add back starts fresh, instead of reporting the time it was gone as missed runs and re-running them.
  • Searching runs for a task name with _ in it finds that task.
  • runwisp import systemd skips a comment line inside a multi-line ExecStart, as systemd does, instead of adding it to the command.
  • runwisp import supervisord reads keys indented under their section as separate keys, as supervisord does, instead of folding them into the previous value.
  • runwisp stop and runwisp restart wait for the whole shutdown, services and then tasks, instead of reporting a still-exiting daemon as stuck.
  • No new run starts while the daemon is stopping its services at shutdown, including cron, retries, queued runs and jittered runs.
  • A daemon installed with runwisp service install is no longer killed by systemd or launchd partway through a long shutdown. Run runwisp service install again to update an existing install.
  • A stopped service offers Start instead of Restart in the Web UI and the TUI after a page reload, in other tabs, and when you reopen one of its runs.
  • max_queued = 0 means no run waits in line, as documented, instead of quietly becoming the default of 100.
  • Failed actions in the Web UI, such as a rejected config reload, show the daemon’s reason instead of a bare status code.
  • Tasks whose names differ only in punctuation, like db-backup and db.backup, no longer share a sidebar highlight or page header in the Web UI.
  • Editing an env_file written as ~/... marks the config as changed.
  • The TUI opens a single-instance service’s new run when it starts while you are viewing that task.
  • The TUI colours run statuses the same everywhere: timeouts, start failures and unhealthy runs show as failures, and a status cut short in a narrow terminal keeps its colour.
  • The TUI picks up a new timezone after runwisp reload.
  • runwisp stop and runwisp restart no longer treat a daemon running as another user as already stopped.

Security

  • runwisp tui --url pins the daemon’s TLS certificate on first connect, like runwisp run --url, and refuses to connect if it changes.
  • Each GitHub release also carries its signed build provenance as runwisp.intoto.jsonl.
All releases