Added
runwisp import cron/runwisp import supervisord. Convert an existing crontab or supervisord config into an annotatedrunwisp.toml, with inline# TODOs for anything that needs a human. See Migrating from cron and Migrating from supervisord.depends_onon[services.*]. Gate a service’s boot on other services becoming healthy, with reverse-order teardown on shutdown — boot ordering only, never a workflow DAG, and it never deadlocks (a dependency that won’t come up starts the dependent anyway with a warning). See Boot order withdepends_on.includeon[daemon]. Glob extra TOML files (e.g.conf.d/*.toml) into the config so tasks can be split across files; collections accumulate, names stay unique across files, and singleton tables stay in the root. See Splitting config across files.runwisp reload(andSIGHUP) for explicit, validated config reload. Pick uprunwisp.tomltask add/change/remove edits in a running daemon without a restart; validate-first, so a bad edit or a restart-only change is rejected and the live set is untouched. See Reload.jitteron[tasks.*]/[defaults]. Pace cron tasks that share a fire time through a daemon-wide one-at-a-time gate so they take turns instead of stampeding — each runs as soon as the gate frees and slips up to its window only under contention. See jitter.- Missed-run alerts. A scheduled run skipped because the daemon was down is detected on restart, recorded as a browsable
missedrun, and raised as a failure-level alert — silence it per task or globally withnotify_on_missed. See Missed ticks. working_dirandshellon[tasks.*]/[services.*]. Run a command in a specific directory and under a chosen interpreter (e.g./bin/bash);shellalso takes a[defaults]value. See Working directory & shell.exit_codeson[tasks.*]/[services.*]/[defaults]. List the exit codes treated as success (default[0]) so a non-zero “nothing to do” code doesn’t trip retries or alerts. See Retries & timeout.stop_signalon[tasks.*]/[services.*]/[defaults]. Choose the signal that opens the stop ladder before SIGKILL (defaultSIGTERM);SIGKILLskips the grace window. See Retries & timeout.priorityandautostarton[services.*].priorityfixes the boot start order (lowest first, deterministic — not a dependency);autostart = falsedefines a service that boots stopped until you start it from the UI/API. See Startup.umaskon[tasks.*]/[services.*]. Set the octal file-creation mask for a run (e.g."027"); applied per-process so concurrent runs never affect each other. See Working directory & shell.run_on_starton[tasks.*]. Fire a task once at daemon boot, on top of anycron— the@rebootequivalent, taggedtriggered_by = startup. See Scheduling.useron[tasks.*]/[services.*]. Run as another OS user (useroruser:group, name or numeric id) when the daemon runs as root. See Working directory & shell.start_retrieson[services.*]/[defaults], plus FATAL services. A service that keeps fast-failing (exits belowhealthy_after) now toleratesstart_retriesfailed starts in a row before going FATAL — it stops restarting, records astart_failedrun, and rings the bell instead of flapping forever. See When a service can’t start.- Six-field cron with second precision.
cronnow accepts an optional leading seconds field, so*/30 * * * * *fires every 30 seconds aligned to the wall clock. Existing 5-field specs are unchanged. See Scheduling.
Changed
backoff_reset_afterrenamed tohealthy_after, which now governs both the restart-backoff reset and the failed-start/FATAL threshold. See Healthy threshold.
Fixed
- Spurious “managed by systemd” quit prompt. A daemon spawned by
runwisp/runwisp demofrom a systemd-scoped terminal no longer inheritsINVOCATION_IDand falsely self-reports as service-managed, so the TUI’s quit dialog offers “Shut Down” again.
- v1.5.1 latest
- v1.5.0
- v1.4.0
- v1.3.1
- v1.3.0
- v1.2.0
- v1.1.0
- v1.0.1
- v1.0.0
- v0.16.4 pre
- v0.16.3 pre
- v0.16.2 pre
- v0.16.1 pre
- v0.16.0 pre
- v0.15.1 pre
- v0.15.0 pre
- v0.14.0 pre
- v0.13.2 pre
- v0.13.1 pre
- v0.13.0 pre
- v0.12.0 pre
- v0.11.0 pre
- v0.10.0 pre
- v0.9.0 pre
- v0.8.0 pre
- v0.7.0 pre
- v0.6.0 pre
- v0.5.0 pre
- v0.4.0 pre
- v0.3.0 pre
- v0.2.0 pre
- v0.1.2 pre
- v0.1.0 pre