Download Latest Version v0.12.0 source code.zip (9.7 MB)
Email in envelope

Get an email when there's a new version of runwisp

Home / v0.10.0
Name Modified Size InfoDownloads / Week
Parent folder
checksums-sha256.txt 2026-06-18 370 Bytes
runwisp-darwin-arm64.tar.gz 2026-06-18 9.6 MB
runwisp-darwin-x64.tar.gz 2026-06-18 10.4 MB
runwisp-linux-arm64.tar.gz 2026-06-18 9.3 MB
runwisp-linux-x64.tar.gz 2026-06-18 10.2 MB
README.md 2026-06-18 3.6 kB
v0.10.0 source code.tar.gz 2026-06-18 4.8 MB
v0.10.0 source code.zip 2026-06-18 5.3 MB
Totals: 8 Items   49.6 MB 0

Added

  • params on [tasks.*]. Let a task take inputs — env vars, arguments, options, and flags — that you fill in when you trigger it by hand from the UI, TUI, or REST; scheduled runs fall back to the defaults you declare. Clearing a value omits the parameter entirely (the default is not re-applied), and you can pass an explicit empty string when you mean one. Values are passed safely as arguments and env (never pasted into the shell) and saved with the run so you can see what it ran with. See Parameters.
  • Configurable control socket (--socket / RUNWISP_SOCKET). Set the daemon's socket path explicitly so a bind-mounted --data can't break it and CLI commands can reach a daemon without restating --data. See Daemon.
  • Bundled tzdata. IANA time zones now resolve on slim images (Alpine/distroless) without installing tzdata.
  • runwisp exec --url. Trigger a task on a remote daemon over the network: it logs in (CHAP), follows the live log stream, and exits with the task's exit code, caching the session token so repeated calls don't re-authenticate. Add --detach to fire-and-forget. See Triggering a task remotely.
  • POST /api/tasks/{name}/run?wait=true. Block the trigger request until the run finishes and get the completed run (with exit_code) back in one call — no trigger-then-poll loop. Bound the hold with wait_timeout (seconds). See Triggering a task remotely.

Changed

  • Runs are identified by when they ran. The Web UI's run lists and detail header now lead with the run's start time, outcome, trigger, and a retry badge instead of an opaque ULID suffix (Run #52TNPQK0); the full run ID stays visible and copyable in the detail panel.
  • Daemon-owned compose containers. Services-mode containers are labelled, reclaimed before launch, and removed on exit, so a daemon restart or kill -9 no longer collides with its own leftover container and drives the service FATAL. See Compose profiles.
  • Clearer startup/shutdown logs. A fatal server error logs its real cause instead of a phantom signal=terminated, the stale-socket message says a daemon may already be running, and a slow listener bind no longer emits a spurious health-check warning.
  • Section-aware config errors. A misplaced on_overlap/timezone/host/port now hints at the correct section in the unknown-key error.

Fixed

  • Skipped runs now show up live. A run dropped by an on_overlap = "skip" policy emits a terminal event, so it reaches the Web UI as skipped over SSE instead of appearing stuck in pending until a page reload.
  • Spring-forward cron ticks no longer vanish. A cron like 0 2 * * * whose time falls in the DST gap now fires once at the gap end (the next valid instant). See DST behaviour.
  • Horizontal scrolling in the log viewer has the line-number gutter pinned.
  • Control socket on bind mounts. A socket whose filesystem rejects chmod (Docker Desktop bind mounts, some network FS) is tolerated with a warning now.
  • Cloud dispatch opt-in covers container/compose. Peer-dispatched ad-hoc container and compose runs now require allow_cloud_dispatch like shell. See Daemon.
Source: README.md, updated 2026-06-18