| Name | Modified | Size | Downloads / Week |
|---|---|---|---|
| Parent folder | |||
| checksums-sha256.txt | 2026-05-22 | 370 Bytes | |
| runwisp-darwin-arm64.tar.gz | 2026-05-22 | 8.0 MB | |
| runwisp-darwin-x64.tar.gz | 2026-05-22 | 8.6 MB | |
| runwisp-linux-arm64.tar.gz | 2026-05-22 | 7.7 MB | |
| runwisp-linux-x64.tar.gz | 2026-05-22 | 8.5 MB | |
| README.md | 2026-05-22 | 4.4 kB | |
| v0.6.0 source code.tar.gz | 2026-05-22 | 2.0 MB | |
| v0.6.0 source code.zip | 2026-05-22 | 2.3 MB | |
| Totals: 8 Items | 37.1 MB | 0 | |
Added
-
runwisp service installwires up systemd or launchd autostart. One command installs a user-level service unit (systemd on Linux/WSL, LaunchAgent on macOS) so the daemon comes back up after reboot. Companions:service uninstall,service status, and--printto emit the unit for Ansible / Nix. WSL prints aRegister-ScheduledTaskPowerShell recipe alongside the systemd path. -
Per-task environment variables via
envandenv_file. Setenv = { PORT = "8080" }on a[tasks.*]/[services.*](or[defaults]) table to overlay inline values;env_file = "secrets.env"reads dotenv from disk. Task-level entries override[defaults]on key collision. Values loaded fromenv_filestay on the daemon — the API and Web UI only show the file path. -
Prometheus-compatible
/metricsendpoint (opt-in). OpenMetrics 1.0 text covering run counters, last-failure timestamp, per-task active-run gauges, and daemon CPU / memory / uptime. Off by default; enable with[daemon] metrics_enabled = true, and bind it to loopback with[daemon] metrics_listen = "127.0.0.1:9478"when the main--hostis public. See Operations / Metrics. -
Bulk run actions in the Web UI with undo. Master checkbox in the heading plus per-row checkboxes, with inline Re-run, Cancel, and Delete. Deleted rows return for 5s via a toast (survives reload).
-
Delete a run from the Web UI and TUI. Trash button on the run detail panel; the TUI exec view binds D. Removes the metadata row and the captured log segment.
-
[daemon] external_urlfor notification deep-links. Setexternal_url = "https://your-host.example.com"and Slack / Telegram messages include a direct link to the run in the Web UI. -
The Web UI sidebar collapses on narrow viewports. The navigation lives behind a hamburger menu on phones and tablets — no more horizontal scroll.
-
Trigger-type icons next to every task. Server icon for services, clock for cron, hand for manual — in the sidebar and dashboard. Hover for the cron expression or instance count.
-
Notification "View run #abc1234 →" chip. Run-scoped in-app notifications now carry a chip with the short run ID so you can jump straight to it.
Changed
- Web UI design refresh. Every panel snaps to the same border radius, tone, and shadow; sidebar/page hue drift is gone. A topbar connection pip surfaces daemon reachability on every page. The runs list is now virtualized and server-paginated — search, status filter, and sort order route through the server instead of clipping at a 200-row client cap.
- Telegram and Slack notifications got a major facelift. A one-line headline with emoji + verb, exit code and duration, trigger and timestamp, plus the last 3 lines of captured output for failures and timeouts and a deep-link when
[daemon] external_urlis set. The flat single-paragraph form is gone. - Default data directory is now
./.runwisp/(was./data/). Keeps RunWisp's state out of the way whenrunwisp.tomllives next to a framework project that already has its owndata/. To stay on the old path, pass--data data. Absolute--datapaths are unaffected. - System resources panel shows live memory bytes inline. The Memory sparkline header now displays
used / total(e.g.1.2 GB / 8.0 GB) next to the percentage. - OpenAPI exposes
EndReasonas a named schema. Runend_reasonvalues (success,failed,timeout, …) reference a singlecomponents/schemas/EndReasonenum instead of inline enums per call site — generated clients pick it up as one shared type.
Fixed
-
Service runs no longer claim they were triggered by the API. Supervisor-driven instances (boot, crash, slot refill) now show Service ("Service auto-started" in notifications) in the dashboard, activity feed, and Slack / Telegram. Operator-initiated REST restarts still show API.
-
Graceful shutdown is now instant when there's nothing running. The notification retention ticker used to keep the daemon alive for the full
[daemon] shutdown_timeouton every exit; it now cancels with the rest of shutdown, so the daemon quits as soon as in-flight work drains.