{"definition_raw":"---\nid: whatsapp-health-check\ntitle: WhatsApp Monitor health check\nschedule: \"*/15 * * * *\"\ntimeout: 30\nretry: true\nself_heal: false\nenabled: true\nnotify_on: failure\nrun_as: shell\ncommand: \"python3 /home/lucienne/workspace/scripts/whatsapp_health_check.py\"\ntags: [whatsapp, health, monitoring]\nruntime_profile: direct_python\n---\n**OVERRIDES runtime profile:** uses `direct_python` (plain Python, no model) because the command chain never invokes the `claude` CLI or any LLM API \u2014 pure-infra task; scheduler provider env injection is a no-op (MC-4942 U12 sweep).\n\nChecks WhatsApp Monitor service status and DB freshness every 15 minutes.\nWrites health-status.json for dashboard consumption.\nAlerts on failure if service is down or no messages received in 30+ minutes.\n\nMonitoring probe \u2014 `self_heal: false` so a transient UNHEALTHY blip does NOT\nlaunch Claude self-heal (nothing to \"fix\" in a runtime probe) and never\nsuspends on the first failure. `retry: true` re-probes once; with self-heal off\nthe scheduler uses the 3-strike MAX_CONSECUTIVE_FAILURES counter before\nsuspending. (MC-4667: a single 12:15 transient blip auto-suspended a healthy\n15-min monitor.)\n","id":"whatsapp-health-check","last_run":{"duration_s":0.072035,"log_path":"/home/lucienne/workspace/logs/task-runs/whatsapp-health-check/414316.log","output":"Service: RUNNING | DB: 22977 messages, last hour: 86 | Latest: 2026-06-13T06:40:49.677Z | Freshness: OK\n","started_at":"2026-06-13T08:45:06.660631+02:00","status":"completed"},"next_run":"2026-06-13 09:00","next_run_iso":"2026-06-13T09:00:00+02:00","runs":[{"duration_s":0.072035,"finished_at":"2026-06-13T08:45:06.735112+02:00","id":414316,"log_path":"/home/lucienne/workspace/logs/task-runs/whatsapp-health-check/414316.log","output":"Service: RUNNING | DB: 22977 messages, last hour: 86 | Latest: 2026-06-13T06:40:49.677Z | Freshness: OK\n","started_at":"2026-06-13T08:45:06.660631+02:00","status":"completed","task_id":"whatsapp-health-check","task_name":"WhatsApp Monitor health check"},{"duration_s":0.09562,"finished_at":"2026-06-13T08:30:35.914916+02:00","id":414277,"log_path":"/home/lucienne/workspace/logs/task-runs/whatsapp-health-check/414277.log","output":"Service: RUNNING | DB: 22975 messages, last hour: 84 | Latest: 2026-06-13T06:23:36.382Z | Freshness: OK\n","started_at":"2026-06-13T08:30:35.816946+02:00","status":"completed","task_id":"whatsapp-health-check","task_name":"WhatsApp Monitor health check"},{"duration_s":0.155155,"finished_at":"2026-06-13T08:15:06.804256+02:00","id":414231,"log_path":"/home/lucienne/workspace/logs/task-runs/whatsapp-health-check/414231.log","output":"Service: RUNNING | DB: 22968 messages, last hour: 77 | Latest: 2026-06-13T06:09:14.501Z | Freshness: OK\n","started_at":"2026-06-13T08:15:06.645911+02:00","status":"completed","task_id":"whatsapp-health-check","task_name":"WhatsApp Monitor health check"},{"duration_s":0.104178,"finished_at":"2026-06-13T08:04:12.749770+02:00","id":414198,"log_path":"/home/lucienne/workspace/logs/task-runs/whatsapp-health-check/414198.log","output":"Service: RUNNING | DB: 22963 messages, last hour: 72 | Latest: 2026-06-13T06:02:44.697Z | Freshness: OK\n","started_at":"2026-06-13T08:04:12.642240+02:00","status":"completed","task_id":"whatsapp-health-check","task_name":"WhatsApp Monitor health check"},{"duration_s":0.098714,"finished_at":"2026-06-13T07:45:06.670913+02:00","id":414145,"log_path":"/home/lucienne/workspace/logs/task-runs/whatsapp-health-check/414145.log","output":"Service: RUNNING | DB: 22951 messages, last hour: 60 | Latest: 2026-06-13T05:44:53.358Z | Freshness: OK\n","started_at":"2026-06-13T07:45:06.569412+02:00","status":"completed","task_id":"whatsapp-health-check","task_name":"WhatsApp Monitor health check"},{"duration_s":0.094732,"finished_at":"2026-06-13T07:30:36.604550+02:00","id":414106,"log_path":"/home/lucienne/workspace/logs/task-runs/whatsapp-health-check/414106.log","output":"Service: RUNNING | DB: 22939 messages, last hour: 48 | Latest: 2026-06-13T05:29:46.518Z | Freshness: OK\n","started_at":"2026-06-13T07:30:36.506608+02:00","status":"completed","task_id":"whatsapp-health-check","task_name":"WhatsApp Monitor health check"},{"duration_s":0.095906,"finished_at":"2026-06-13T07:15:06.812772+02:00","id":414062,"log_path":"/home/lucienne/workspace/logs/task-runs/whatsapp-health-check/414062.log","output":"Service: RUNNING | DB: 22924 messages, last hour: 33 | Latest: 2026-06-13T05:15:02.501Z | Freshness: OK\n","started_at":"2026-06-13T07:15:06.713116+02:00","status":"completed","task_id":"whatsapp-health-check","task_name":"WhatsApp Monitor health check"},{"duration_s":0.097894,"finished_at":"2026-06-13T07:00:43.260224+02:00","id":414023,"log_path":"/home/lucienne/workspace/logs/task-runs/whatsapp-health-check/414023.log","output":"Service: RUNNING | DB: 22917 messages, last hour: 26 | Latest: 2026-06-13T04:50:04.272Z | Freshness: OK\n","started_at":"2026-06-13T07:00:43.158915+02:00","status":"completed","task_id":"whatsapp-health-check","task_name":"WhatsApp Monitor health check"},{"duration_s":0.09543,"finished_at":"2026-06-13T06:45:06.726622+02:00","id":413972,"log_path":"/home/lucienne/workspace/logs/task-runs/whatsapp-health-check/413972.log","output":"Service: RUNNING | DB: 22916 messages, last hour: 25 | Latest: 2026-06-13T04:36:35.829Z | Freshness: OK\n","started_at":"2026-06-13T06:45:06.628434+02:00","status":"completed","task_id":"whatsapp-health-check","task_name":"WhatsApp Monitor health check"},{"duration_s":0.071114,"finished_at":"2026-06-13T06:30:35.781893+02:00","id":413933,"log_path":"/home/lucienne/workspace/logs/task-runs/whatsapp-health-check/413933.log","output":"Service: RUNNING | DB: 22915 messages, last hour: 24 | Latest: 2026-06-13T02:43:40.580Z | Freshness: OK\n","started_at":"2026-06-13T06:30:35.707597+02:00","status":"completed","task_id":"whatsapp-health-check","task_name":"WhatsApp Monitor health check"},{"duration_s":0.097661,"finished_at":"2026-06-13T06:15:06.535215+02:00","id":413886,"log_path":"/home/lucienne/workspace/logs/task-runs/whatsapp-health-check/413886.log","output":"Service: RUNNING | DB: 22915 messages, last hour: 24 | Latest: 2026-06-13T02:43:40.580Z | Freshness: OK\n","started_at":"2026-06-13T06:15:06.435092+02:00","status":"completed","task_id":"whatsapp-health-check","task_name":"WhatsApp Monitor health check"},{"duration_s":0.102185,"finished_at":"2026-06-13T06:01:16.333816+02:00","id":413847,"log_path":"/home/lucienne/workspace/logs/task-runs/whatsapp-health-check/413847.log","output":"Service: RUNNING | DB: 22915 messages, last hour: 24 | Latest: 2026-06-13T02:43:40.580Z | Freshness: OK\n","started_at":"2026-06-13T06:01:16.228403+02:00","status":"completed","task_id":"whatsapp-health-check","task_name":"WhatsApp Monitor health check"},{"duration_s":0.113491,"finished_at":"2026-06-13T05:45:06.662586+02:00","id":413794,"log_path":"/home/lucienne/workspace/logs/task-runs/whatsapp-health-check/413794.log","output":"Service: RUNNING | DB: 22915 messages, last hour: 24 | Latest: 2026-06-13T02:43:40.580Z | Freshness: OK\n","started_at":"2026-06-13T05:45:06.546369+02:00","status":"completed","task_id":"whatsapp-health-check","task_name":"WhatsApp Monitor health check"},{"duration_s":0.101098,"finished_at":"2026-06-13T05:30:36.871095+02:00","id":413755,"log_path":"/home/lucienne/workspace/logs/task-runs/whatsapp-health-check/413755.log","output":"Service: RUNNING | DB: 22915 messages, last hour: 24 | Latest: 2026-06-13T02:43:40.580Z | Freshness: OK\n","started_at":"2026-06-13T05:30:36.766867+02:00","status":"completed","task_id":"whatsapp-health-check","task_name":"WhatsApp Monitor health check"},{"duration_s":0.057227,"finished_at":"2026-06-13T05:15:06.688181+02:00","id":413710,"log_path":"/home/lucienne/workspace/logs/task-runs/whatsapp-health-check/413710.log","output":"Service: RUNNING | DB: 22915 messages, last hour: 24 | Latest: 2026-06-13T02:43:40.580Z | Freshness: OK\n","started_at":"2026-06-13T05:15:06.627917+02:00","status":"completed","task_id":"whatsapp-health-check","task_name":"WhatsApp Monitor health check"},{"duration_s":0.094184,"finished_at":"2026-06-13T05:04:38.698360+02:00","id":413679,"log_path":"/home/lucienne/workspace/logs/task-runs/whatsapp-health-check/413679.log","output":"Service: RUNNING | DB: 22915 messages, last hour: 24 | Latest: 2026-06-13T02:43:40.580Z | Freshness: OK\n","started_at":"2026-06-13T05:04:38.601173+02:00","status":"completed","task_id":"whatsapp-health-check","task_name":"WhatsApp Monitor health check"},{"duration_s":0.093315,"finished_at":"2026-06-13T04:45:06.831955+02:00","id":413624,"log_path":"/home/lucienne/workspace/logs/task-runs/whatsapp-health-check/413624.log","output":"Service: RUNNING | DB: 22915 messages, last hour: 24 | Latest: 2026-06-13T02:43:40.580Z | Freshness: OK\n","started_at":"2026-06-13T04:45:06.735624+02:00","status":"completed","task_id":"whatsapp-health-check","task_name":"WhatsApp Monitor health check"},{"duration_s":0.101102,"finished_at":"2026-06-13T04:30:35.272753+02:00","id":413583,"log_path":"/home/lucienne/workspace/logs/task-runs/whatsapp-health-check/413583.log","output":"Service: RUNNING | DB: 22911 messages, last hour: 20 | Latest: 2026-06-13T02:16:35.526Z | Freshness: OK\n","started_at":"2026-06-13T04:30:35.169007+02:00","status":"completed","task_id":"whatsapp-health-check","task_name":"WhatsApp Monitor health check"},{"duration_s":0.0932,"finished_at":"2026-06-13T04:15:08.113888+02:00","id":413536,"log_path":"/home/lucienne/workspace/logs/task-runs/whatsapp-health-check/413536.log","output":"Service: RUNNING | DB: 22909 messages, last hour: 18 | Latest: 2026-06-13T01:40:17.602Z | Freshness: OK\n","started_at":"2026-06-13T04:15:08.017891+02:00","status":"completed","task_id":"whatsapp-health-check","task_name":"WhatsApp Monitor health check"},{"duration_s":0.090395,"finished_at":"2026-06-13T04:04:49.743374+02:00","id":413503,"log_path":"/home/lucienne/workspace/logs/task-runs/whatsapp-health-check/413503.log","output":"Service: RUNNING | DB: 22909 messages, last hour: 18 | Latest: 2026-06-13T01:40:17.602Z | Freshness: OK\n","started_at":"2026-06-13T04:04:49.650059+02:00","status":"completed","task_id":"whatsapp-health-check","task_name":"WhatsApp Monitor health check"}],"runs_limit":20,"schedule":"*/15 * * * *","schedule_label":{"description":"Every 15 minutes","is_custom":false,"label":"Every 15 min","sort":1,"sort_time":""},"stats":{"avg_duration":0.1053325092460882,"completed":703,"failed":0,"timeout":0,"total":703},"task":{"_description":"**OVERRIDES runtime profile:** uses `direct_python` (plain Python, no model) because the command chain never invokes the `claude` CLI or any LLM API \u2014 pure-infra task; scheduler provider env injection is a no-op (MC-4942 U12 sweep).\n\nChecks WhatsApp Monitor service status and DB freshness every 15 minutes.\nWrites health-status.json for dashboard consumption.\nAlerts on failure if service is down or no messages received in 30+ minutes.\n\nMonitoring probe \u2014 `self_heal: false` so a transient UNHEALTHY blip does NOT\nlaunch Claude self-heal (nothing to \"fix\" in a runtime probe) and never\nsuspends on the first failure. `retry: true` re-probes once; with self-heal off\nthe scheduler uses the 3-strike MAX_CONSECUTIVE_FAILURES counter before\nsuspending. (MC-4667: a single 12:15 transient blip auto-suspended a healthy\n15-min monitor.)","_file":"whatsapp-health-check.md","_path":"/home/lucienne/workspace/tasks/whatsapp-health-check.md","command":"python3 /home/lucienne/workspace/scripts/whatsapp_health_check.py","enabled":true,"id":"whatsapp-health-check","notify_on":"failure","retry":true,"run_as":"shell","runtime_profile":"direct_python","schedule":"*/15 * * * *","self_heal":false,"tags":["whatsapp","health","monitoring"],"timeout":30,"title":"WhatsApp Monitor health check"}}
