Fixed
- A second daemon started against a data dir already owned by a live daemon refuses to start, and PID-file cleanup removes the file only while it still holds that daemon’s own PID, so a running daemon stays managable via
stop/restart/reload. stopandrestartconfirm the recorded PID still belongs to a RunWisp daemon before signalling it, so a recycled stale PID leaves an unrelated process untouched.- The background daemon spawned by the launcher (and
runwisp demo) inherits the launcher’s--hostand--socket, binding where the operator probed instead of defaulting to loopback and the default socket path. - TUI log search opens the highlighted result on Enter and scrolls the result list to keep the selected hit in view when there are more matches than fit the window.
- The TUI notification panel keeps its cursor on the highlighted notification when a newer one streams in above it, so open and mark-read act on the intended row; the collapsed summary truncates by display width so styled output stays intact on narrow terminals.
- The web UI run count decrements once per deletion, keeping the total accurate when the optimistic removal and the
run.deletedevent both fire for the same run. - The web UI overview merges snapshot fetches through the same phase-order guard as live updates, so a finished run keeps its final status when a fetch resolves with an older view.
- The web UI keeps the freshest data when overlapping fetches resolve out of order.
- The SSE log-stream drop counter is guarded against concurrent access between the publishing goroutine and the stream handler.
- 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