From c36a4f7d499679e8f82aa4e4b5b624a1bce430ed Mon Sep 17 00:00:00 2001 From: multipleof4 Date: Wed, 18 Feb 2026 14:22:45 -0800 Subject: [PATCH] Feat: Include duration in ntfy notifications --- run.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/run.js b/run.js index 8780653..4c8a1e7 100644 --- a/run.js +++ b/run.js @@ -114,16 +114,18 @@ function stop(r) { flush(r, true) r.phase = 'done' r.error = null + const duration = ((Date.now() - r.startedAt) / 1000).toFixed(1) try { r.controller?.abort() } catch {} saveSnapshot(r) bcast(r, { type: 'done' }) - notify(`Run ${r.rid} ended.`, 3, ['stop_sign']) + notify(`Run ${r.rid} ended. Duration: ${duration}s`, 3, ['stop_sign']) } function fail(r, message) { if (r.phase !== 'running') return clearTimeoutTimer(r) const err = String(message || 'stream_failed') + const duration = ((Date.now() - r.startedAt) / 1000).toFixed(1) queueDelta(r, `\n\nRun failed: ${err}`) flush(r, true) r.phase = 'error' @@ -131,7 +133,7 @@ function fail(r, message) { try { r.controller?.abort() } catch {} saveSnapshot(r) bcast(r, { type: 'err', message: r.error }) - notify(`Run ${r.rid} failed: ${r.error}`, 3, ['rotating_light']) + notify(`Run ${r.rid} failed after ${duration}s: ${r.error}`, 3, ['rotating_light']) } function sanitizeMessages(messages) {