Teknium
df4b3733ba
fix(cron): every last_status consumer renders delivery_failed explicitly (dashboard badge, Desktop inspector, /cron list, docs)
...
Audit of every last_status reader outside the scheduler (rg last_status across
web/, apps/desktop/, hermes_cli/, tui_gateway/, tools/, scripts/, website/):
- web dashboard CronPage: last_status was never rendered at all — a
delivery_failed job showed a green 'scheduled' badge and only a small red
'delivery: ...' line. New pure cronLastResult() helper maps the closed
literal set to tones (ok=success, delivery_failed/blocked_config=warning,
error/unknown=destructive) and the card now shows an amber
'delivery_failed' badge (title = last_delivery_error).
- Desktop hermes-bots routine inspector: 'Last result' printed the raw
literal; routineLastResult() spells out each one ('Ran, but delivery
failed', 'Blocked by configuration (not run)', ...), unknown passes through.
- /cron list (cli_commands_mixin): 'Last run: <ts> (delivery_failed)' now
appends the delivery reason, since last_error is None for those runs.
- hermes cron list/doctor and the cronjob tool already handled the literal
on this branch; no consumer compared == 'ok' for success apart from the
cronjob manual-run path, which the branch already fixed.
- developer-guide/cron-internals.md: table of last_status literals + which
detail field carries the reason.
Live repro (real 'hermes dashboard' on a temp HERMES_HOME with a
delivery_failed job, CronPage rendered against the live /api/cron/jobs):
before — badges [scheduled, default, telegram:123]; after — badges
[scheduled, delivery_failed (warning tone, title 'telegram: 502 Bad
Gateway'), default, telegram:123].
2026-09-02 00:52:58 -07:00
..
2026-08-31 12:36:33 -07:00
2026-09-01 22:42:27 +05:30
2026-08-22 23:25:29 -07:00
2026-08-29 18:01:25 -07:00
2026-08-31 12:05:07 -07:00
2026-08-31 11:19:05 -07:00
2026-08-23 20:00:53 -07:00
2026-08-24 03:22:57 -07:00
2026-08-22 23:25:43 -07:00
2026-08-29 18:34:35 -07:00
2026-08-21 13:01:35 -07:00
2026-08-20 01:47:06 -07:00
2026-09-01 16:01:53 -04:00
2026-08-22 19:30:10 -07:00
2026-09-01 16:01:53 -04:00
2026-08-29 18:13:33 -07:00
2026-09-01 16:01:53 -04:00
2026-08-29 07:25:17 -07:00
2026-08-28 02:59:17 -07:00
2026-09-01 16:01:53 -04:00
2026-09-01 16:01:53 -04:00
2026-09-01 16:01:53 -04:00
2026-08-21 15:23:51 -07:00
2026-08-24 15:42:58 +05:30
2026-09-01 00:26:55 +05:30
2026-08-26 11:41:04 -07:00
2026-08-26 11:41:04 -07:00
2026-08-31 12:58:14 -07:00
2026-08-23 02:14:35 -07:00
2026-08-29 19:14:36 -07:00
2026-08-20 04:08:57 -07:00
2026-08-31 12:18:47 -07:00
2026-09-01 07:00:22 -07:00
2026-08-22 02:25:12 -04:00
2026-08-27 11:49:58 +05:30
2026-09-02 00:07:15 -07:00
2026-09-01 10:56:49 -07:00
2026-08-27 13:27:24 +05:30
2026-09-01 16:01:53 -04:00
2026-08-19 19:22:48 -07:00
2026-08-31 03:37:43 -07:00
2026-09-01 08:31:37 -07:00
2026-08-17 11:29:10 -07:00
2026-08-31 10:00:29 -07:00
2026-08-31 06:02:32 -07:00
2026-09-02 00:52:58 -07:00
2026-08-23 21:12:20 -07:00
2026-08-29 19:14:15 -07:00
2026-08-24 15:45:52 +05:30
2026-08-20 20:21:12 -07:00
2026-08-18 14:26:16 -07:00
2026-09-01 01:39:59 -07:00
2026-09-01 11:47:38 +10:00
2026-08-27 10:35:22 -07:00
2026-08-23 16:09:14 -07:00
2026-08-31 15:57:21 +10:00
2026-08-23 15:49:44 -07:00
2026-09-01 11:47:38 +10:00
2026-08-21 22:33:45 +05:30
2026-08-26 07:57:04 -07:00
2026-08-26 04:03:21 -07:00
2026-08-23 19:55:17 -07:00
2026-08-28 05:27:15 -07:00
2026-08-19 19:24:41 -07:00
2026-08-24 03:14:30 -07:00
2026-08-22 21:36:44 -07:00
2026-09-01 16:01:53 -04:00
2026-08-17 02:56:17 -07:00
2026-08-31 21:59:11 +05:30
2026-09-01 10:56:49 -07:00
2026-08-22 13:39:04 -04:00
2026-08-22 13:38:56 -04:00
2026-08-31 03:37:43 -07:00
2026-08-23 05:12:59 -07:00
2026-08-26 16:14:32 -07:00
2026-08-21 14:13:28 +10:00
2026-09-01 11:43:36 -07:00
2026-08-21 03:51:03 -07:00
2026-08-23 18:42:59 -07:00
2026-08-27 20:39:11 +05:30
2026-09-01 10:06:06 -07:00
2026-08-31 10:41:54 -07:00
2026-08-31 12:21:46 -07:00
2026-08-26 16:45:22 -07:00
2026-08-21 02:48:14 +08:00
2026-08-18 16:08:29 -07:00
2026-09-01 02:32:39 -07:00
2026-08-19 19:42:31 -07:00
2026-09-01 16:01:53 -04:00
2026-08-19 16:10:01 -07:00
2026-08-25 21:59:52 -07:00
2026-08-30 19:46:14 -07:00
2026-08-21 14:38:41 -07:00
2026-08-19 23:28:14 -05:00
2026-08-27 11:31:21 -05:00
2026-08-27 17:45:43 -05:00
2026-08-18 11:58:48 -07:00
2026-08-27 19:07:15 +05:30
2026-09-01 10:52:42 -07:00
2026-08-28 22:38:01 -05:00
2026-09-01 22:42:27 +05:30
2026-08-23 03:55:14 -07:00
2026-09-01 22:09:24 -05:00
2026-09-01 02:32:39 -07:00
2026-08-18 14:26:16 -07:00
2026-09-01 16:01:53 -04:00
2026-09-01 16:01:53 -04:00
2026-09-01 16:01:53 -04:00
2026-09-01 16:01:53 -04:00
2026-09-01 16:01:53 -04:00
2026-09-01 16:01:53 -04:00
2026-09-01 16:01:53 -04:00
2026-09-01 16:01:53 -04:00
2026-09-01 16:01:53 -04:00
2026-09-01 16:01:53 -04:00
2026-09-01 16:01:53 -04:00
2026-09-01 16:01:53 -04:00
2026-08-29 17:43:38 -07:00
2026-08-26 06:26:07 -07:00
2026-08-28 09:05:19 +05:30
2026-08-18 20:42:06 -04:00
2026-08-31 12:50:29 -07:00
2026-09-01 16:01:53 -04:00
2026-08-26 09:54:31 -07:00
2026-08-25 04:21:37 -07:00
2026-08-26 17:42:58 -07:00
2026-08-26 15:48:39 -07:00
2026-08-26 15:48:39 -07:00
2026-08-17 12:58:51 -07:00
2026-08-31 10:59:45 -07:00
2026-08-31 04:40:24 -07:00
2026-09-01 12:07:35 -07:00
2026-08-21 14:38:19 -07:00
2026-08-31 04:40:24 -07:00
2026-08-27 11:31:21 -05:00
2026-08-17 12:58:51 -07:00
2026-08-29 22:41:55 +05:30
2026-08-18 14:26:16 -07:00
2026-08-29 20:39:44 +05:30
2026-09-01 07:00:22 -07:00
2026-08-19 01:19:28 -07:00
2026-09-01 16:37:36 -03:00
2026-09-01 16:34:48 -03:00
2026-08-19 23:28:14 -05:00
2026-09-01 10:56:49 -07:00
2026-08-19 19:41:52 -07:00
2026-08-29 05:02:54 -07:00
2026-08-29 05:02:54 -07:00
2026-08-31 11:19:26 -07:00
2026-08-23 00:52:50 -07:00
2026-08-31 01:04:11 -07:00
2026-08-23 04:45:29 -07:00
2026-08-31 08:41:15 -07:00
2026-08-31 00:56:41 -07:00
2026-08-19 08:52:03 -07:00
2026-09-01 10:52:42 -07:00
2026-08-20 04:30:33 -07:00
2026-09-01 16:35:47 -03:00
2026-08-20 04:47:38 -07:00
2026-08-18 02:27:18 -07:00
2026-09-01 01:00:23 -07:00
2026-09-01 22:42:19 -05:00
2026-08-27 19:08:28 -05:00
2026-08-21 00:24:32 -07:00
2026-08-27 11:31:21 -05:00
2026-08-21 00:24:32 -07:00
2026-09-01 10:12:21 -07:00
2026-08-20 01:46:20 -07:00
2026-08-23 01:47:26 -07:00
2026-08-19 23:28:14 -05:00
2026-08-25 02:45:10 -07:00
2026-08-17 15:47:17 -07:00
2026-09-01 07:00:38 -07:00
2026-08-20 04:50:39 -07:00
2026-09-02 00:42:53 -07:00
2026-09-01 09:27:47 -07:00
2026-08-29 20:29:04 +05:30
2026-09-01 16:01:53 -04:00
2026-09-01 16:01:53 -04:00
2026-08-28 02:04:54 -07:00
2026-09-01 22:42:27 +05:30
2026-08-21 14:38:41 -07:00
2026-09-01 01:30:09 -07:00
2026-08-28 05:15:06 -07:00
2026-08-27 17:11:56 +05:30
2026-09-01 07:00:54 -07:00
2026-08-20 12:37:16 -05:00
2026-08-31 12:08:30 -07:00
2026-09-01 22:42:19 -05:00
2026-08-31 14:40:09 -07:00
2026-08-27 02:17:56 -07:00
2026-09-02 00:00:55 -07:00
2026-08-20 02:06:05 -07:00
2026-08-31 12:18:47 -07:00
2026-08-29 18:23:07 -07:00
2026-08-24 15:45:52 +05:30
2026-08-24 15:45:52 +05:30
2026-08-27 10:42:31 +10:00
2026-08-27 13:30:25 +10:00
2026-08-27 09:47:47 +10:00
2026-08-26 15:39:47 +10:00
2026-08-27 13:30:25 +10:00
2026-08-28 15:22:16 +10:00
2026-08-28 15:22:16 +10:00
2026-08-27 09:09:47 +10:00
2026-08-22 19:30:10 -07:00
2026-08-23 05:12:59 -07:00
2026-08-19 01:23:17 +05:30
2026-08-19 10:19:35 -07:00
2026-08-20 02:58:31 +05:30
2026-08-20 02:58:31 +05:30
2026-09-01 10:12:21 -07:00
2026-08-26 07:03:04 -07:00
2026-08-31 10:41:54 -07:00
2026-09-01 12:07:35 -07:00
2026-08-24 03:20:37 -07:00
2026-09-01 10:56:49 -07:00
2026-08-19 16:10:01 -07:00
2026-08-20 03:05:46 -07:00
2026-08-31 10:41:54 -07:00
2026-08-29 20:51:17 +05:30
2026-08-24 15:45:52 +05:30
2026-09-01 10:56:49 -07:00
2026-08-31 10:08:31 -07:00
2026-08-24 03:20:37 -07:00
2026-08-25 12:09:08 -07:00
2026-09-01 16:01:53 -04:00
2026-08-22 23:10:32 -04:00
2026-09-02 01:50:21 +05:30
2026-09-01 07:01:12 -07:00
2026-08-26 04:17:39 -07:00
2026-08-26 16:45:31 -07:00
2026-08-31 10:41:54 -07:00
2026-09-01 08:27:58 -07:00
2026-08-26 17:42:50 -07:00
2026-08-26 11:41:04 -07:00
2026-09-01 08:34:51 -07:00
2026-09-01 08:27:58 -07:00
2026-08-31 12:58:14 -07:00
2026-08-20 02:45:57 -07:00
2026-08-26 18:23:33 -07:00
2026-08-26 18:23:33 -07:00
2026-09-02 00:42:53 -07:00
2026-08-23 04:25:18 -07:00
2026-08-20 04:14:42 -07:00
2026-09-01 08:27:58 -07:00
2026-08-24 03:21:28 -07:00
2026-08-17 23:53:05 -07:00
2026-09-01 00:26:55 +05:30
2026-08-23 04:45:29 -07:00
2026-08-23 04:45:29 -07:00
2026-08-25 14:10:10 -07:00
2026-08-25 14:10:10 -07:00
2026-08-31 10:41:54 -07:00
2026-08-21 15:23:49 -07:00
2026-08-23 00:50:41 -07:00
2026-09-01 07:00:54 -07:00
2026-09-01 07:00:54 -07:00
2026-09-01 07:00:54 -07:00
2026-08-22 19:30:10 -07:00
2026-08-20 03:43:00 -07:00
2026-08-20 12:41:33 -05:00
2026-09-01 08:27:58 -07:00
2026-09-01 07:00:54 -07:00
2026-08-20 05:02:36 -07:00
2026-08-23 02:16:33 -07:00
2026-09-02 01:52:11 +05:30
2026-08-28 13:33:56 -04:00
2026-08-31 12:00:33 -07:00
2026-08-31 10:04:40 -07:00
2026-09-02 00:07:17 -07:00
2026-08-27 21:07:34 +05:30
2026-08-21 22:08:16 -07:00
2026-08-21 22:08:16 -07:00
2026-08-21 19:11:55 -07:00
2026-08-31 13:11:54 -07:00
2026-08-19 16:10:01 -07:00
2026-08-29 18:34:35 -07:00
2026-08-19 01:23:39 -05:00
2026-08-30 22:19:06 -07:00
2026-08-29 19:19:40 -07:00
2026-08-26 21:38:20 -07:00
2026-08-23 19:55:17 -07:00
2026-09-01 12:07:00 -07:00
2026-08-24 03:21:49 -07:00
2026-09-01 21:43:59 -07:00
2026-09-01 22:42:19 -05:00
2026-08-26 16:45:31 -07:00
2026-09-01 11:43:36 -07:00
2026-08-22 13:38:56 -04:00
2026-09-01 11:43:36 -07:00
2026-08-20 01:45:56 -07:00
2026-08-19 23:55:20 -07:00