AI billable batch worker

API: https://api.flowbridgemedia.com · OpenAPI

Scheduled job

Job Schedule Next run What it does
ai_billable_scan
enabled
every 60s 2026-04-10 16:41:02.113219+00:00 POST /api/ai-analysis/batch · sources=green-nest-pc, heritage-pest-defense

Recent execution logs

When Job Status Summary & full detail
2026-04-10 16:40:02.158415+00:00
done 2026-04-10 16:40:02.413457+00:00
ai_billable_scan success
Tick config · interval 60s · batch /api/ai-analysis/batch · sources green-nest-pc, heritage-pest-defense
green-nest-pc · idle · next window 2026-04-10T20:00:00.000Z
heritage-pest-defense · idle · next window 2026-04-10T20:00:00.000Z
Full execution detail (JSON) — requests / responses / warnings
{
  "tick": {
    "batch_path": "/api/ai-analysis/batch",
    "config_path": "/api/ai-analysis/config",
    "api_base_url": "https://api.flowbridgemedia.com",
    "data_sources": [
      "green-nest-pc",
      "heritage-pest-defense"
    ],
    "cursor_timezone": "America/New_York",
    "interval_seconds": 60,
    "min_split_seconds": 1.0,
    "service_token_env": "INTERNAL_SERVICE_TOKEN",
    "cursor_start_local": "2026-04-10 16:00:00",
    "api_timeout_seconds": 30.0,
    "batch_timeout_seconds": 300.0,
    "verify_config_on_startup": true,
    "clock_skew_backoff_seconds": 5
  },
  "sources": {
    "green-nest-pc": {
      "idle": true,
      "warnings": [],
      "api_calls": [],
      "execution": {
        "data_source": "green-nest-pc",
        "horizon_utc": "2026-04-10T16:39:57.266Z",
        "slice_end_utc": null,
        "cursor_initial_utc": "2026-04-10T20:00:00.000Z",
        "next_window_start_utc": "2026-04-10T20:00:00.000Z",
        "clock_skew_backoff_seconds": 5
      },
      "data_source": "green-nest-pc"
    },
    "heritage-pest-defense": {
      "idle": true,
      "warnings": [],
      "api_calls": [],
      "execution": {
        "data_source": "heritage-pest-defense",
        "horizon_utc": "2026-04-10T16:39:57.266Z",
        "slice_end_utc": null,
        "cursor_initial_utc": "2026-04-10T20:00:00.000Z",
        "next_window_start_utc": "2026-04-10T20:00:00.000Z",
        "clock_skew_backoff_seconds": 5
      },
      "data_source": "heritage-pest-defense"
    }
  },
  "tick_runtime": {
    "started_at_utc": "2026-04-10T16:40:02.266656+00:00"
  }
}
2026-04-10 16:39:02.159853+00:00
done 2026-04-10 16:39:02.437715+00:00
ai_billable_scan success
Tick config · interval 60s · batch /api/ai-analysis/batch · sources green-nest-pc, heritage-pest-defense
green-nest-pc · idle · next window 2026-04-10T20:00:00.000Z
heritage-pest-defense · idle · next window 2026-04-10T20:00:00.000Z
Full execution detail (JSON) — requests / responses / warnings
{
  "tick": {
    "batch_path": "/api/ai-analysis/batch",
    "config_path": "/api/ai-analysis/config",
    "api_base_url": "https://api.flowbridgemedia.com",
    "data_sources": [
      "green-nest-pc",
      "heritage-pest-defense"
    ],
    "cursor_timezone": "America/New_York",
    "interval_seconds": 60,
    "min_split_seconds": 1.0,
    "service_token_env": "INTERNAL_SERVICE_TOKEN",
    "cursor_start_local": "2026-04-10 16:00:00",
    "api_timeout_seconds": 30.0,
    "batch_timeout_seconds": 300.0,
    "verify_config_on_startup": true,
    "clock_skew_backoff_seconds": 5
  },
  "sources": {
    "green-nest-pc": {
      "idle": true,
      "warnings": [],
      "api_calls": [],
      "execution": {
        "data_source": "green-nest-pc",
        "horizon_utc": "2026-04-10T16:38:57.264Z",
        "slice_end_utc": null,
        "cursor_initial_utc": "2026-04-10T20:00:00.000Z",
        "next_window_start_utc": "2026-04-10T20:00:00.000Z",
        "clock_skew_backoff_seconds": 5
      },
      "data_source": "green-nest-pc"
    },
    "heritage-pest-defense": {
      "idle": true,
      "warnings": [],
      "api_calls": [],
      "execution": {
        "data_source": "heritage-pest-defense",
        "horizon_utc": "2026-04-10T16:38:57.264Z",
        "slice_end_utc": null,
        "cursor_initial_utc": "2026-04-10T20:00:00.000Z",
        "next_window_start_utc": "2026-04-10T20:00:00.000Z",
        "clock_skew_backoff_seconds": 5
      },
      "data_source": "heritage-pest-defense"
    }
  },
  "tick_runtime": {
    "started_at_utc": "2026-04-10T16:39:02.264903+00:00"
  }
}
2026-04-10 16:38:02.159494+00:00
done 2026-04-10 16:38:02.404697+00:00
ai_billable_scan success
Tick config · interval 60s · batch /api/ai-analysis/batch · sources green-nest-pc, heritage-pest-defense
green-nest-pc · idle · next window 2026-04-10T20:00:00.000Z
heritage-pest-defense · idle · next window 2026-04-10T20:00:00.000Z
Full execution detail (JSON) — requests / responses / warnings
{
  "tick": {
    "batch_path": "/api/ai-analysis/batch",
    "config_path": "/api/ai-analysis/config",
    "api_base_url": "https://api.flowbridgemedia.com",
    "data_sources": [
      "green-nest-pc",
      "heritage-pest-defense"
    ],
    "cursor_timezone": "America/New_York",
    "interval_seconds": 60,
    "min_split_seconds": 1.0,
    "service_token_env": "INTERNAL_SERVICE_TOKEN",
    "cursor_start_local": "2026-04-10 16:00:00",
    "api_timeout_seconds": 30.0,
    "batch_timeout_seconds": 300.0,
    "verify_config_on_startup": true,
    "clock_skew_backoff_seconds": 5
  },
  "sources": {
    "green-nest-pc": {
      "idle": true,
      "warnings": [],
      "api_calls": [],
      "execution": {
        "data_source": "green-nest-pc",
        "horizon_utc": "2026-04-10T16:37:57.265Z",
        "slice_end_utc": null,
        "cursor_initial_utc": "2026-04-10T20:00:00.000Z",
        "next_window_start_utc": "2026-04-10T20:00:00.000Z",
        "clock_skew_backoff_seconds": 5
      },
      "data_source": "green-nest-pc"
    },
    "heritage-pest-defense": {
      "idle": true,
      "warnings": [],
      "api_calls": [],
      "execution": {
        "data_source": "heritage-pest-defense",
        "horizon_utc": "2026-04-10T16:37:57.265Z",
        "slice_end_utc": null,
        "cursor_initial_utc": "2026-04-10T20:00:00.000Z",
        "next_window_start_utc": "2026-04-10T20:00:00.000Z",
        "clock_skew_backoff_seconds": 5
      },
      "data_source": "heritage-pest-defense"
    }
  },
  "tick_runtime": {
    "started_at_utc": "2026-04-10T16:38:02.265363+00:00"
  }
}
2026-04-10 16:37:02.156555+00:00
done 2026-04-10 16:37:02.402346+00:00
ai_billable_scan success
Tick config · interval 60s · batch /api/ai-analysis/batch · sources green-nest-pc, heritage-pest-defense
green-nest-pc · idle · next window 2026-04-10T20:00:00.000Z
heritage-pest-defense · idle · next window 2026-04-10T20:00:00.000Z
Full execution detail (JSON) — requests / responses / warnings
{
  "tick": {
    "batch_path": "/api/ai-analysis/batch",
    "config_path": "/api/ai-analysis/config",
    "api_base_url": "https://api.flowbridgemedia.com",
    "data_sources": [
      "green-nest-pc",
      "heritage-pest-defense"
    ],
    "cursor_timezone": "America/New_York",
    "interval_seconds": 60,
    "min_split_seconds": 1.0,
    "service_token_env": "INTERNAL_SERVICE_TOKEN",
    "cursor_start_local": "2026-04-10 16:00:00",
    "api_timeout_seconds": 30.0,
    "batch_timeout_seconds": 300.0,
    "verify_config_on_startup": true,
    "clock_skew_backoff_seconds": 5
  },
  "sources": {
    "green-nest-pc": {
      "idle": true,
      "warnings": [],
      "api_calls": [],
      "execution": {
        "data_source": "green-nest-pc",
        "horizon_utc": "2026-04-10T16:36:57.259Z",
        "slice_end_utc": null,
        "cursor_initial_utc": "2026-04-10T20:00:00.000Z",
        "next_window_start_utc": "2026-04-10T20:00:00.000Z",
        "clock_skew_backoff_seconds": 5
      },
      "data_source": "green-nest-pc"
    },
    "heritage-pest-defense": {
      "idle": true,
      "warnings": [],
      "api_calls": [],
      "execution": {
        "data_source": "heritage-pest-defense",
        "horizon_utc": "2026-04-10T16:36:57.259Z",
        "slice_end_utc": null,
        "cursor_initial_utc": "2026-04-10T20:00:00.000Z",
        "next_window_start_utc": "2026-04-10T20:00:00.000Z",
        "clock_skew_backoff_seconds": 5
      },
      "data_source": "heritage-pest-defense"
    }
  },
  "tick_runtime": {
    "started_at_utc": "2026-04-10T16:37:02.259642+00:00"
  }
}
2026-04-10 16:36:02.157910+00:00
done 2026-04-10 16:36:02.396352+00:00
ai_billable_scan success
Tick config · interval 60s · batch /api/ai-analysis/batch · sources green-nest-pc, heritage-pest-defense
green-nest-pc · idle · next window 2026-04-10T20:00:00.000Z
heritage-pest-defense · idle · next window 2026-04-10T20:00:00.000Z
Full execution detail (JSON) — requests / responses / warnings
{
  "tick": {
    "batch_path": "/api/ai-analysis/batch",
    "config_path": "/api/ai-analysis/config",
    "api_base_url": "https://api.flowbridgemedia.com",
    "data_sources": [
      "green-nest-pc",
      "heritage-pest-defense"
    ],
    "cursor_timezone": "America/New_York",
    "interval_seconds": 60,
    "min_split_seconds": 1.0,
    "service_token_env": "INTERNAL_SERVICE_TOKEN",
    "cursor_start_local": "2026-04-10 16:00:00",
    "api_timeout_seconds": 30.0,
    "batch_timeout_seconds": 300.0,
    "verify_config_on_startup": true,
    "clock_skew_backoff_seconds": 5
  },
  "sources": {
    "green-nest-pc": {
      "idle": true,
      "warnings": [],
      "api_calls": [],
      "execution": {
        "data_source": "green-nest-pc",
        "horizon_utc": "2026-04-10T16:35:57.259Z",
        "slice_end_utc": null,
        "cursor_initial_utc": "2026-04-10T20:00:00.000Z",
        "next_window_start_utc": "2026-04-10T20:00:00.000Z",
        "clock_skew_backoff_seconds": 5
      },
      "data_source": "green-nest-pc"
    },
    "heritage-pest-defense": {
      "idle": true,
      "warnings": [],
      "api_calls": [],
      "execution": {
        "data_source": "heritage-pest-defense",
        "horizon_utc": "2026-04-10T16:35:57.259Z",
        "slice_end_utc": null,
        "cursor_initial_utc": "2026-04-10T20:00:00.000Z",
        "next_window_start_utc": "2026-04-10T20:00:00.000Z",
        "clock_skew_backoff_seconds": 5
      },
      "data_source": "heritage-pest-defense"
    }
  },
  "tick_runtime": {
    "started_at_utc": "2026-04-10T16:36:02.259162+00:00"
  }
}
2026-04-10 16:35:02.156784+00:00
done 2026-04-10 16:35:02.405422+00:00
ai_billable_scan success
Tick config · interval 60s · batch /api/ai-analysis/batch · sources green-nest-pc, heritage-pest-defense
green-nest-pc · idle · next window 2026-04-10T20:00:00.000Z
heritage-pest-defense · idle · next window 2026-04-10T20:00:00.000Z
Full execution detail (JSON) — requests / responses / warnings
{
  "tick": {
    "batch_path": "/api/ai-analysis/batch",
    "config_path": "/api/ai-analysis/config",
    "api_base_url": "https://api.flowbridgemedia.com",
    "data_sources": [
      "green-nest-pc",
      "heritage-pest-defense"
    ],
    "cursor_timezone": "America/New_York",
    "interval_seconds": 60,
    "min_split_seconds": 1.0,
    "service_token_env": "INTERNAL_SERVICE_TOKEN",
    "cursor_start_local": "2026-04-10 16:00:00",
    "api_timeout_seconds": 30.0,
    "batch_timeout_seconds": 300.0,
    "verify_config_on_startup": true,
    "clock_skew_backoff_seconds": 5
  },
  "sources": {
    "green-nest-pc": {
      "idle": true,
      "warnings": [],
      "api_calls": [],
      "execution": {
        "data_source": "green-nest-pc",
        "horizon_utc": "2026-04-10T16:34:57.263Z",
        "slice_end_utc": null,
        "cursor_initial_utc": "2026-04-10T20:00:00.000Z",
        "next_window_start_utc": "2026-04-10T20:00:00.000Z",
        "clock_skew_backoff_seconds": 5
      },
      "data_source": "green-nest-pc"
    },
    "heritage-pest-defense": {
      "idle": true,
      "warnings": [],
      "api_calls": [],
      "execution": {
        "data_source": "heritage-pest-defense",
        "horizon_utc": "2026-04-10T16:34:57.263Z",
        "slice_end_utc": null,
        "cursor_initial_utc": "2026-04-10T20:00:00.000Z",
        "next_window_start_utc": "2026-04-10T20:00:00.000Z",
        "clock_skew_backoff_seconds": 5
      },
      "data_source": "heritage-pest-defense"
    }
  },
  "tick_runtime": {
    "started_at_utc": "2026-04-10T16:35:02.263544+00:00"
  }
}
2026-04-10 16:34:02.157330+00:00
done 2026-04-10 16:34:02.442193+00:00
ai_billable_scan success
Tick config · interval 60s · batch /api/ai-analysis/batch · sources green-nest-pc, heritage-pest-defense
green-nest-pc · idle · next window 2026-04-10T20:00:00.000Z
heritage-pest-defense · idle · next window 2026-04-10T20:00:00.000Z
Full execution detail (JSON) — requests / responses / warnings
{
  "tick": {
    "batch_path": "/api/ai-analysis/batch",
    "config_path": "/api/ai-analysis/config",
    "api_base_url": "https://api.flowbridgemedia.com",
    "data_sources": [
      "green-nest-pc",
      "heritage-pest-defense"
    ],
    "cursor_timezone": "America/New_York",
    "interval_seconds": 60,
    "min_split_seconds": 1.0,
    "service_token_env": "INTERNAL_SERVICE_TOKEN",
    "cursor_start_local": "2026-04-10 16:00:00",
    "api_timeout_seconds": 30.0,
    "batch_timeout_seconds": 300.0,
    "verify_config_on_startup": true,
    "clock_skew_backoff_seconds": 5
  },
  "sources": {
    "green-nest-pc": {
      "idle": true,
      "warnings": [],
      "api_calls": [],
      "execution": {
        "data_source": "green-nest-pc",
        "horizon_utc": "2026-04-10T16:33:57.269Z",
        "slice_end_utc": null,
        "cursor_initial_utc": "2026-04-10T20:00:00.000Z",
        "next_window_start_utc": "2026-04-10T20:00:00.000Z",
        "clock_skew_backoff_seconds": 5
      },
      "data_source": "green-nest-pc"
    },
    "heritage-pest-defense": {
      "idle": true,
      "warnings": [],
      "api_calls": [],
      "execution": {
        "data_source": "heritage-pest-defense",
        "horizon_utc": "2026-04-10T16:33:57.269Z",
        "slice_end_utc": null,
        "cursor_initial_utc": "2026-04-10T20:00:00.000Z",
        "next_window_start_utc": "2026-04-10T20:00:00.000Z",
        "clock_skew_backoff_seconds": 5
      },
      "data_source": "heritage-pest-defense"
    }
  },
  "tick_runtime": {
    "started_at_utc": "2026-04-10T16:34:02.269102+00:00"
  }
}
2026-04-10 16:33:02.159596+00:00
done 2026-04-10 16:33:02.403758+00:00
ai_billable_scan success
Tick config · interval 60s · batch /api/ai-analysis/batch · sources green-nest-pc, heritage-pest-defense
green-nest-pc · idle · next window 2026-04-10T20:00:00.000Z
heritage-pest-defense · idle · next window 2026-04-10T20:00:00.000Z
Full execution detail (JSON) — requests / responses / warnings
{
  "tick": {
    "batch_path": "/api/ai-analysis/batch",
    "config_path": "/api/ai-analysis/config",
    "api_base_url": "https://api.flowbridgemedia.com",
    "data_sources": [
      "green-nest-pc",
      "heritage-pest-defense"
    ],
    "cursor_timezone": "America/New_York",
    "interval_seconds": 60,
    "min_split_seconds": 1.0,
    "service_token_env": "INTERNAL_SERVICE_TOKEN",
    "cursor_start_local": "2026-04-10 16:00:00",
    "api_timeout_seconds": 30.0,
    "batch_timeout_seconds": 300.0,
    "verify_config_on_startup": true,
    "clock_skew_backoff_seconds": 5
  },
  "sources": {
    "green-nest-pc": {
      "idle": true,
      "warnings": [],
      "api_calls": [],
      "execution": {
        "data_source": "green-nest-pc",
        "horizon_utc": "2026-04-10T16:32:57.257Z",
        "slice_end_utc": null,
        "cursor_initial_utc": "2026-04-10T20:00:00.000Z",
        "next_window_start_utc": "2026-04-10T20:00:00.000Z",
        "clock_skew_backoff_seconds": 5
      },
      "data_source": "green-nest-pc"
    },
    "heritage-pest-defense": {
      "idle": true,
      "warnings": [],
      "api_calls": [],
      "execution": {
        "data_source": "heritage-pest-defense",
        "horizon_utc": "2026-04-10T16:32:57.257Z",
        "slice_end_utc": null,
        "cursor_initial_utc": "2026-04-10T20:00:00.000Z",
        "next_window_start_utc": "2026-04-10T20:00:00.000Z",
        "clock_skew_backoff_seconds": 5
      },
      "data_source": "heritage-pest-defense"
    }
  },
  "tick_runtime": {
    "started_at_utc": "2026-04-10T16:33:02.257753+00:00"
  }
}
2026-04-10 16:32:02.159274+00:00
done 2026-04-10 16:32:02.401113+00:00
ai_billable_scan success
Tick config · interval 60s · batch /api/ai-analysis/batch · sources green-nest-pc, heritage-pest-defense
green-nest-pc · idle · next window 2026-04-10T20:00:00.000Z
heritage-pest-defense · idle · next window 2026-04-10T20:00:00.000Z
Full execution detail (JSON) — requests / responses / warnings
{
  "tick": {
    "batch_path": "/api/ai-analysis/batch",
    "config_path": "/api/ai-analysis/config",
    "api_base_url": "https://api.flowbridgemedia.com",
    "data_sources": [
      "green-nest-pc",
      "heritage-pest-defense"
    ],
    "cursor_timezone": "America/New_York",
    "interval_seconds": 60,
    "min_split_seconds": 1.0,
    "service_token_env": "INTERNAL_SERVICE_TOKEN",
    "cursor_start_local": "2026-04-10 16:00:00",
    "api_timeout_seconds": 30.0,
    "batch_timeout_seconds": 300.0,
    "verify_config_on_startup": true,
    "clock_skew_backoff_seconds": 5
  },
  "sources": {
    "green-nest-pc": {
      "idle": true,
      "warnings": [],
      "api_calls": [],
      "execution": {
        "data_source": "green-nest-pc",
        "horizon_utc": "2026-04-10T16:31:57.260Z",
        "slice_end_utc": null,
        "cursor_initial_utc": "2026-04-10T20:00:00.000Z",
        "next_window_start_utc": "2026-04-10T20:00:00.000Z",
        "clock_skew_backoff_seconds": 5
      },
      "data_source": "green-nest-pc"
    },
    "heritage-pest-defense": {
      "idle": true,
      "warnings": [],
      "api_calls": [],
      "execution": {
        "data_source": "heritage-pest-defense",
        "horizon_utc": "2026-04-10T16:31:57.260Z",
        "slice_end_utc": null,
        "cursor_initial_utc": "2026-04-10T20:00:00.000Z",
        "next_window_start_utc": "2026-04-10T20:00:00.000Z",
        "clock_skew_backoff_seconds": 5
      },
      "data_source": "heritage-pest-defense"
    }
  },
  "tick_runtime": {
    "started_at_utc": "2026-04-10T16:32:02.260414+00:00"
  }
}
2026-04-10 16:31:02.161287+00:00
done 2026-04-10 16:31:02.413181+00:00
ai_billable_scan success
Tick config · interval 60s · batch /api/ai-analysis/batch · sources green-nest-pc, heritage-pest-defense
green-nest-pc · idle · next window 2026-04-10T20:00:00.000Z
heritage-pest-defense · idle · next window 2026-04-10T20:00:00.000Z
Full execution detail (JSON) — requests / responses / warnings
{
  "tick": {
    "batch_path": "/api/ai-analysis/batch",
    "config_path": "/api/ai-analysis/config",
    "api_base_url": "https://api.flowbridgemedia.com",
    "data_sources": [
      "green-nest-pc",
      "heritage-pest-defense"
    ],
    "cursor_timezone": "America/New_York",
    "interval_seconds": 60,
    "min_split_seconds": 1.0,
    "service_token_env": "INTERNAL_SERVICE_TOKEN",
    "cursor_start_local": "2026-04-10 16:00:00",
    "api_timeout_seconds": 30.0,
    "batch_timeout_seconds": 300.0,
    "verify_config_on_startup": true,
    "clock_skew_backoff_seconds": 5
  },
  "sources": {
    "green-nest-pc": {
      "idle": true,
      "warnings": [],
      "api_calls": [],
      "execution": {
        "data_source": "green-nest-pc",
        "horizon_utc": "2026-04-10T16:30:57.267Z",
        "slice_end_utc": null,
        "cursor_initial_utc": "2026-04-10T20:00:00.000Z",
        "next_window_start_utc": "2026-04-10T20:00:00.000Z",
        "clock_skew_backoff_seconds": 5
      },
      "data_source": "green-nest-pc"
    },
    "heritage-pest-defense": {
      "idle": true,
      "warnings": [],
      "api_calls": [],
      "execution": {
        "data_source": "heritage-pest-defense",
        "horizon_utc": "2026-04-10T16:30:57.267Z",
        "slice_end_utc": null,
        "cursor_initial_utc": "2026-04-10T20:00:00.000Z",
        "next_window_start_utc": "2026-04-10T20:00:00.000Z",
        "clock_skew_backoff_seconds": 5
      },
      "data_source": "heritage-pest-defense"
    }
  },
  "tick_runtime": {
    "started_at_utc": "2026-04-10T16:31:02.267170+00:00"
  }
}
2026-04-10 16:30:02.158302+00:00
done 2026-04-10 16:30:02.412295+00:00
ai_billable_scan success
Tick config · interval 60s · batch /api/ai-analysis/batch · sources green-nest-pc, heritage-pest-defense
green-nest-pc · idle · next window 2026-04-10T20:00:00.000Z
heritage-pest-defense · idle · next window 2026-04-10T20:00:00.000Z
Full execution detail (JSON) — requests / responses / warnings
{
  "tick": {
    "batch_path": "/api/ai-analysis/batch",
    "config_path": "/api/ai-analysis/config",
    "api_base_url": "https://api.flowbridgemedia.com",
    "data_sources": [
      "green-nest-pc",
      "heritage-pest-defense"
    ],
    "cursor_timezone": "America/New_York",
    "interval_seconds": 60,
    "min_split_seconds": 1.0,
    "service_token_env": "INTERNAL_SERVICE_TOKEN",
    "cursor_start_local": "2026-04-10 16:00:00",
    "api_timeout_seconds": 30.0,
    "batch_timeout_seconds": 300.0,
    "verify_config_on_startup": true,
    "clock_skew_backoff_seconds": 5
  },
  "sources": {
    "green-nest-pc": {
      "idle": true,
      "warnings": [],
      "api_calls": [],
      "execution": {
        "data_source": "green-nest-pc",
        "horizon_utc": "2026-04-10T16:29:57.262Z",
        "slice_end_utc": null,
        "cursor_initial_utc": "2026-04-10T20:00:00.000Z",
        "next_window_start_utc": "2026-04-10T20:00:00.000Z",
        "clock_skew_backoff_seconds": 5
      },
      "data_source": "green-nest-pc"
    },
    "heritage-pest-defense": {
      "idle": true,
      "warnings": [],
      "api_calls": [],
      "execution": {
        "data_source": "heritage-pest-defense",
        "horizon_utc": "2026-04-10T16:29:57.262Z",
        "slice_end_utc": null,
        "cursor_initial_utc": "2026-04-10T20:00:00.000Z",
        "next_window_start_utc": "2026-04-10T20:00:00.000Z",
        "clock_skew_backoff_seconds": 5
      },
      "data_source": "heritage-pest-defense"
    }
  },
  "tick_runtime": {
    "started_at_utc": "2026-04-10T16:30:02.262907+00:00"
  }
}
2026-04-10 16:29:02.159400+00:00
done 2026-04-10 16:29:02.433809+00:00
ai_billable_scan success
Tick config · interval 60s · batch /api/ai-analysis/batch · sources green-nest-pc, heritage-pest-defense
green-nest-pc · idle · next window 2026-04-10T20:00:00.000Z
heritage-pest-defense · idle · next window 2026-04-10T20:00:00.000Z
Full execution detail (JSON) — requests / responses / warnings
{
  "tick": {
    "batch_path": "/api/ai-analysis/batch",
    "config_path": "/api/ai-analysis/config",
    "api_base_url": "https://api.flowbridgemedia.com",
    "data_sources": [
      "green-nest-pc",
      "heritage-pest-defense"
    ],
    "cursor_timezone": "America/New_York",
    "interval_seconds": 60,
    "min_split_seconds": 1.0,
    "service_token_env": "INTERNAL_SERVICE_TOKEN",
    "cursor_start_local": "2026-04-10 16:00:00",
    "api_timeout_seconds": 30.0,
    "batch_timeout_seconds": 300.0,
    "verify_config_on_startup": true,
    "clock_skew_backoff_seconds": 5
  },
  "sources": {
    "green-nest-pc": {
      "idle": true,
      "warnings": [],
      "api_calls": [],
      "execution": {
        "data_source": "green-nest-pc",
        "horizon_utc": "2026-04-10T16:28:57.290Z",
        "slice_end_utc": null,
        "cursor_initial_utc": "2026-04-10T20:00:00.000Z",
        "next_window_start_utc": "2026-04-10T20:00:00.000Z",
        "clock_skew_backoff_seconds": 5
      },
      "data_source": "green-nest-pc"
    },
    "heritage-pest-defense": {
      "idle": true,
      "warnings": [],
      "api_calls": [],
      "execution": {
        "data_source": "heritage-pest-defense",
        "horizon_utc": "2026-04-10T16:28:57.290Z",
        "slice_end_utc": null,
        "cursor_initial_utc": "2026-04-10T20:00:00.000Z",
        "next_window_start_utc": "2026-04-10T20:00:00.000Z",
        "clock_skew_backoff_seconds": 5
      },
      "data_source": "heritage-pest-defense"
    }
  },
  "tick_runtime": {
    "started_at_utc": "2026-04-10T16:29:02.290307+00:00"
  }
}
2026-04-10 16:28:02.161159+00:00
done 2026-04-10 16:28:02.406887+00:00
ai_billable_scan success
Tick config · interval 60s · batch /api/ai-analysis/batch · sources green-nest-pc, heritage-pest-defense
green-nest-pc · idle · next window 2026-04-10T20:00:00.000Z
heritage-pest-defense · idle · next window 2026-04-10T20:00:00.000Z
Full execution detail (JSON) — requests / responses / warnings
{
  "tick": {
    "batch_path": "/api/ai-analysis/batch",
    "config_path": "/api/ai-analysis/config",
    "api_base_url": "https://api.flowbridgemedia.com",
    "data_sources": [
      "green-nest-pc",
      "heritage-pest-defense"
    ],
    "cursor_timezone": "America/New_York",
    "interval_seconds": 60,
    "min_split_seconds": 1.0,
    "service_token_env": "INTERNAL_SERVICE_TOKEN",
    "cursor_start_local": "2026-04-10 16:00:00",
    "api_timeout_seconds": 30.0,
    "batch_timeout_seconds": 300.0,
    "verify_config_on_startup": true,
    "clock_skew_backoff_seconds": 5
  },
  "sources": {
    "green-nest-pc": {
      "idle": true,
      "warnings": [],
      "api_calls": [],
      "execution": {
        "data_source": "green-nest-pc",
        "horizon_utc": "2026-04-10T16:27:57.262Z",
        "slice_end_utc": null,
        "cursor_initial_utc": "2026-04-10T20:00:00.000Z",
        "next_window_start_utc": "2026-04-10T20:00:00.000Z",
        "clock_skew_backoff_seconds": 5
      },
      "data_source": "green-nest-pc"
    },
    "heritage-pest-defense": {
      "idle": true,
      "warnings": [],
      "api_calls": [],
      "execution": {
        "data_source": "heritage-pest-defense",
        "horizon_utc": "2026-04-10T16:27:57.262Z",
        "slice_end_utc": null,
        "cursor_initial_utc": "2026-04-10T20:00:00.000Z",
        "next_window_start_utc": "2026-04-10T20:00:00.000Z",
        "clock_skew_backoff_seconds": 5
      },
      "data_source": "heritage-pest-defense"
    }
  },
  "tick_runtime": {
    "started_at_utc": "2026-04-10T16:28:02.262603+00:00"
  }
}
2026-04-10 16:27:02.158898+00:00
done 2026-04-10 16:27:02.409724+00:00
ai_billable_scan success
Tick config · interval 60s · batch /api/ai-analysis/batch · sources green-nest-pc, heritage-pest-defense
green-nest-pc · idle · next window 2026-04-10T20:00:00.000Z
heritage-pest-defense · idle · next window 2026-04-10T20:00:00.000Z
Full execution detail (JSON) — requests / responses / warnings
{
  "tick": {
    "batch_path": "/api/ai-analysis/batch",
    "config_path": "/api/ai-analysis/config",
    "api_base_url": "https://api.flowbridgemedia.com",
    "data_sources": [
      "green-nest-pc",
      "heritage-pest-defense"
    ],
    "cursor_timezone": "America/New_York",
    "interval_seconds": 60,
    "min_split_seconds": 1.0,
    "service_token_env": "INTERNAL_SERVICE_TOKEN",
    "cursor_start_local": "2026-04-10 16:00:00",
    "api_timeout_seconds": 30.0,
    "batch_timeout_seconds": 300.0,
    "verify_config_on_startup": true,
    "clock_skew_backoff_seconds": 5
  },
  "sources": {
    "green-nest-pc": {
      "idle": true,
      "warnings": [],
      "api_calls": [],
      "execution": {
        "data_source": "green-nest-pc",
        "horizon_utc": "2026-04-10T16:26:57.262Z",
        "slice_end_utc": null,
        "cursor_initial_utc": "2026-04-10T20:00:00.000Z",
        "next_window_start_utc": "2026-04-10T20:00:00.000Z",
        "clock_skew_backoff_seconds": 5
      },
      "data_source": "green-nest-pc"
    },
    "heritage-pest-defense": {
      "idle": true,
      "warnings": [],
      "api_calls": [],
      "execution": {
        "data_source": "heritage-pest-defense",
        "horizon_utc": "2026-04-10T16:26:57.262Z",
        "slice_end_utc": null,
        "cursor_initial_utc": "2026-04-10T20:00:00.000Z",
        "next_window_start_utc": "2026-04-10T20:00:00.000Z",
        "clock_skew_backoff_seconds": 5
      },
      "data_source": "heritage-pest-defense"
    }
  },
  "tick_runtime": {
    "started_at_utc": "2026-04-10T16:27:02.262464+00:00"
  }
}
2026-04-10 16:26:02.159325+00:00
done 2026-04-10 16:26:02.399191+00:00
ai_billable_scan success
Tick config · interval 60s · batch /api/ai-analysis/batch · sources green-nest-pc, heritage-pest-defense
green-nest-pc · idle · next window 2026-04-10T20:00:00.000Z
heritage-pest-defense · idle · next window 2026-04-10T20:00:00.000Z
Full execution detail (JSON) — requests / responses / warnings
{
  "tick": {
    "batch_path": "/api/ai-analysis/batch",
    "config_path": "/api/ai-analysis/config",
    "api_base_url": "https://api.flowbridgemedia.com",
    "data_sources": [
      "green-nest-pc",
      "heritage-pest-defense"
    ],
    "cursor_timezone": "America/New_York",
    "interval_seconds": 60,
    "min_split_seconds": 1.0,
    "service_token_env": "INTERNAL_SERVICE_TOKEN",
    "cursor_start_local": "2026-04-10 16:00:00",
    "api_timeout_seconds": 30.0,
    "batch_timeout_seconds": 300.0,
    "verify_config_on_startup": true,
    "clock_skew_backoff_seconds": 5
  },
  "sources": {
    "green-nest-pc": {
      "idle": true,
      "warnings": [],
      "api_calls": [],
      "execution": {
        "data_source": "green-nest-pc",
        "horizon_utc": "2026-04-10T16:25:57.259Z",
        "slice_end_utc": null,
        "cursor_initial_utc": "2026-04-10T20:00:00.000Z",
        "next_window_start_utc": "2026-04-10T20:00:00.000Z",
        "clock_skew_backoff_seconds": 5
      },
      "data_source": "green-nest-pc"
    },
    "heritage-pest-defense": {
      "idle": true,
      "warnings": [],
      "api_calls": [],
      "execution": {
        "data_source": "heritage-pest-defense",
        "horizon_utc": "2026-04-10T16:25:57.259Z",
        "slice_end_utc": null,
        "cursor_initial_utc": "2026-04-10T20:00:00.000Z",
        "next_window_start_utc": "2026-04-10T20:00:00.000Z",
        "clock_skew_backoff_seconds": 5
      },
      "data_source": "heritage-pest-defense"
    }
  },
  "tick_runtime": {
    "started_at_utc": "2026-04-10T16:26:02.259073+00:00"
  }
}
2026-04-10 16:25:02.157284+00:00
done 2026-04-10 16:25:02.407556+00:00
ai_billable_scan success
Tick config · interval 60s · batch /api/ai-analysis/batch · sources green-nest-pc, heritage-pest-defense
green-nest-pc · idle · next window 2026-04-10T20:00:00.000Z
heritage-pest-defense · idle · next window 2026-04-10T20:00:00.000Z
Full execution detail (JSON) — requests / responses / warnings
{
  "tick": {
    "batch_path": "/api/ai-analysis/batch",
    "config_path": "/api/ai-analysis/config",
    "api_base_url": "https://api.flowbridgemedia.com",
    "data_sources": [
      "green-nest-pc",
      "heritage-pest-defense"
    ],
    "cursor_timezone": "America/New_York",
    "interval_seconds": 60,
    "min_split_seconds": 1.0,
    "service_token_env": "INTERNAL_SERVICE_TOKEN",
    "cursor_start_local": "2026-04-10 16:00:00",
    "api_timeout_seconds": 30.0,
    "batch_timeout_seconds": 300.0,
    "verify_config_on_startup": true,
    "clock_skew_backoff_seconds": 5
  },
  "sources": {
    "green-nest-pc": {
      "idle": true,
      "warnings": [],
      "api_calls": [],
      "execution": {
        "data_source": "green-nest-pc",
        "horizon_utc": "2026-04-10T16:24:57.255Z",
        "slice_end_utc": null,
        "cursor_initial_utc": "2026-04-10T20:00:00.000Z",
        "next_window_start_utc": "2026-04-10T20:00:00.000Z",
        "clock_skew_backoff_seconds": 5
      },
      "data_source": "green-nest-pc"
    },
    "heritage-pest-defense": {
      "idle": true,
      "warnings": [],
      "api_calls": [],
      "execution": {
        "data_source": "heritage-pest-defense",
        "horizon_utc": "2026-04-10T16:24:57.255Z",
        "slice_end_utc": null,
        "cursor_initial_utc": "2026-04-10T20:00:00.000Z",
        "next_window_start_utc": "2026-04-10T20:00:00.000Z",
        "clock_skew_backoff_seconds": 5
      },
      "data_source": "heritage-pest-defense"
    }
  },
  "tick_runtime": {
    "started_at_utc": "2026-04-10T16:25:02.255331+00:00"
  }
}
2026-04-10 16:24:02.185905+00:00
done 2026-04-10 16:24:02.435997+00:00
ai_billable_scan success
Tick config · interval 60s · batch /api/ai-analysis/batch · sources green-nest-pc, heritage-pest-defense
green-nest-pc · idle · next window 2026-04-10T20:00:00.000Z
heritage-pest-defense · idle · next window 2026-04-10T20:00:00.000Z
Full execution detail (JSON) — requests / responses / warnings
{
  "tick": {
    "batch_path": "/api/ai-analysis/batch",
    "config_path": "/api/ai-analysis/config",
    "api_base_url": "https://api.flowbridgemedia.com",
    "data_sources": [
      "green-nest-pc",
      "heritage-pest-defense"
    ],
    "cursor_timezone": "America/New_York",
    "interval_seconds": 60,
    "min_split_seconds": 1.0,
    "service_token_env": "INTERNAL_SERVICE_TOKEN",
    "cursor_start_local": "2026-04-10 16:00:00",
    "api_timeout_seconds": 30.0,
    "batch_timeout_seconds": 300.0,
    "verify_config_on_startup": true,
    "clock_skew_backoff_seconds": 5
  },
  "sources": {
    "green-nest-pc": {
      "idle": true,
      "warnings": [],
      "api_calls": [],
      "execution": {
        "data_source": "green-nest-pc",
        "horizon_utc": "2026-04-10T16:23:57.290Z",
        "slice_end_utc": null,
        "cursor_initial_utc": "2026-04-10T20:00:00.000Z",
        "next_window_start_utc": "2026-04-10T20:00:00.000Z",
        "clock_skew_backoff_seconds": 5
      },
      "data_source": "green-nest-pc"
    },
    "heritage-pest-defense": {
      "idle": true,
      "warnings": [],
      "api_calls": [],
      "execution": {
        "data_source": "heritage-pest-defense",
        "horizon_utc": "2026-04-10T16:23:57.290Z",
        "slice_end_utc": null,
        "cursor_initial_utc": "2026-04-10T20:00:00.000Z",
        "next_window_start_utc": "2026-04-10T20:00:00.000Z",
        "clock_skew_backoff_seconds": 5
      },
      "data_source": "heritage-pest-defense"
    }
  },
  "tick_runtime": {
    "started_at_utc": "2026-04-10T16:24:02.290478+00:00"
  }
}
2026-04-10 16:23:02.158321+00:00
done 2026-04-10 16:23:02.408431+00:00
ai_billable_scan success
Tick config · interval 60s · batch /api/ai-analysis/batch · sources green-nest-pc, heritage-pest-defense
green-nest-pc · idle · next window 2026-04-10T20:00:00.000Z
heritage-pest-defense · idle · next window 2026-04-10T20:00:00.000Z
Full execution detail (JSON) — requests / responses / warnings
{
  "tick": {
    "batch_path": "/api/ai-analysis/batch",
    "config_path": "/api/ai-analysis/config",
    "api_base_url": "https://api.flowbridgemedia.com",
    "data_sources": [
      "green-nest-pc",
      "heritage-pest-defense"
    ],
    "cursor_timezone": "America/New_York",
    "interval_seconds": 60,
    "min_split_seconds": 1.0,
    "service_token_env": "INTERNAL_SERVICE_TOKEN",
    "cursor_start_local": "2026-04-10 16:00:00",
    "api_timeout_seconds": 30.0,
    "batch_timeout_seconds": 300.0,
    "verify_config_on_startup": true,
    "clock_skew_backoff_seconds": 5
  },
  "sources": {
    "green-nest-pc": {
      "idle": true,
      "warnings": [],
      "api_calls": [],
      "execution": {
        "data_source": "green-nest-pc",
        "horizon_utc": "2026-04-10T16:22:57.260Z",
        "slice_end_utc": null,
        "cursor_initial_utc": "2026-04-10T20:00:00.000Z",
        "next_window_start_utc": "2026-04-10T20:00:00.000Z",
        "clock_skew_backoff_seconds": 5
      },
      "data_source": "green-nest-pc"
    },
    "heritage-pest-defense": {
      "idle": true,
      "warnings": [],
      "api_calls": [],
      "execution": {
        "data_source": "heritage-pest-defense",
        "horizon_utc": "2026-04-10T16:22:57.260Z",
        "slice_end_utc": null,
        "cursor_initial_utc": "2026-04-10T20:00:00.000Z",
        "next_window_start_utc": "2026-04-10T20:00:00.000Z",
        "clock_skew_backoff_seconds": 5
      },
      "data_source": "heritage-pest-defense"
    }
  },
  "tick_runtime": {
    "started_at_utc": "2026-04-10T16:23:02.260024+00:00"
  }
}
2026-04-10 16:22:02.159782+00:00
done 2026-04-10 16:22:02.408904+00:00
ai_billable_scan success
Tick config · interval 60s · batch /api/ai-analysis/batch · sources green-nest-pc, heritage-pest-defense
green-nest-pc · idle · next window 2026-04-10T20:00:00.000Z
heritage-pest-defense · idle · next window 2026-04-10T20:00:00.000Z
Full execution detail (JSON) — requests / responses / warnings
{
  "tick": {
    "batch_path": "/api/ai-analysis/batch",
    "config_path": "/api/ai-analysis/config",
    "api_base_url": "https://api.flowbridgemedia.com",
    "data_sources": [
      "green-nest-pc",
      "heritage-pest-defense"
    ],
    "cursor_timezone": "America/New_York",
    "interval_seconds": 60,
    "min_split_seconds": 1.0,
    "service_token_env": "INTERNAL_SERVICE_TOKEN",
    "cursor_start_local": "2026-04-10 16:00:00",
    "api_timeout_seconds": 30.0,
    "batch_timeout_seconds": 300.0,
    "verify_config_on_startup": true,
    "clock_skew_backoff_seconds": 5
  },
  "sources": {
    "green-nest-pc": {
      "idle": true,
      "warnings": [],
      "api_calls": [],
      "execution": {
        "data_source": "green-nest-pc",
        "horizon_utc": "2026-04-10T16:21:57.262Z",
        "slice_end_utc": null,
        "cursor_initial_utc": "2026-04-10T20:00:00.000Z",
        "next_window_start_utc": "2026-04-10T20:00:00.000Z",
        "clock_skew_backoff_seconds": 5
      },
      "data_source": "green-nest-pc"
    },
    "heritage-pest-defense": {
      "idle": true,
      "warnings": [],
      "api_calls": [],
      "execution": {
        "data_source": "heritage-pest-defense",
        "horizon_utc": "2026-04-10T16:21:57.262Z",
        "slice_end_utc": null,
        "cursor_initial_utc": "2026-04-10T20:00:00.000Z",
        "next_window_start_utc": "2026-04-10T20:00:00.000Z",
        "clock_skew_backoff_seconds": 5
      },
      "data_source": "heritage-pest-defense"
    }
  },
  "tick_runtime": {
    "started_at_utc": "2026-04-10T16:22:02.262191+00:00"
  }
}
2026-04-10 16:21:02.157666+00:00
done 2026-04-10 16:21:02.409911+00:00
ai_billable_scan success
Tick config · interval 60s · batch /api/ai-analysis/batch · sources green-nest-pc, heritage-pest-defense
green-nest-pc · idle · next window 2026-04-10T20:00:00.000Z
heritage-pest-defense · idle · next window 2026-04-10T20:00:00.000Z
Full execution detail (JSON) — requests / responses / warnings
{
  "tick": {
    "batch_path": "/api/ai-analysis/batch",
    "config_path": "/api/ai-analysis/config",
    "api_base_url": "https://api.flowbridgemedia.com",
    "data_sources": [
      "green-nest-pc",
      "heritage-pest-defense"
    ],
    "cursor_timezone": "America/New_York",
    "interval_seconds": 60,
    "min_split_seconds": 1.0,
    "service_token_env": "INTERNAL_SERVICE_TOKEN",
    "cursor_start_local": "2026-04-10 16:00:00",
    "api_timeout_seconds": 30.0,
    "batch_timeout_seconds": 300.0,
    "verify_config_on_startup": true,
    "clock_skew_backoff_seconds": 5
  },
  "sources": {
    "green-nest-pc": {
      "idle": true,
      "warnings": [],
      "api_calls": [],
      "execution": {
        "data_source": "green-nest-pc",
        "horizon_utc": "2026-04-10T16:20:57.258Z",
        "slice_end_utc": null,
        "cursor_initial_utc": "2026-04-10T20:00:00.000Z",
        "next_window_start_utc": "2026-04-10T20:00:00.000Z",
        "clock_skew_backoff_seconds": 5
      },
      "data_source": "green-nest-pc"
    },
    "heritage-pest-defense": {
      "idle": true,
      "warnings": [],
      "api_calls": [],
      "execution": {
        "data_source": "heritage-pest-defense",
        "horizon_utc": "2026-04-10T16:20:57.258Z",
        "slice_end_utc": null,
        "cursor_initial_utc": "2026-04-10T20:00:00.000Z",
        "next_window_start_utc": "2026-04-10T20:00:00.000Z",
        "clock_skew_backoff_seconds": 5
      },
      "data_source": "heritage-pest-defense"
    }
  },
  "tick_runtime": {
    "started_at_utc": "2026-04-10T16:21:02.258045+00:00"
  }
}
2026-04-10 16:20:02.160565+00:00
done 2026-04-10 16:20:02.429497+00:00
ai_billable_scan success
Tick config · interval 60s · batch /api/ai-analysis/batch · sources green-nest-pc, heritage-pest-defense
green-nest-pc · idle · next window 2026-04-10T20:00:00.000Z
heritage-pest-defense · idle · next window 2026-04-10T20:00:00.000Z
Full execution detail (JSON) — requests / responses / warnings
{
  "tick": {
    "batch_path": "/api/ai-analysis/batch",
    "config_path": "/api/ai-analysis/config",
    "api_base_url": "https://api.flowbridgemedia.com",
    "data_sources": [
      "green-nest-pc",
      "heritage-pest-defense"
    ],
    "cursor_timezone": "America/New_York",
    "interval_seconds": 60,
    "min_split_seconds": 1.0,
    "service_token_env": "INTERNAL_SERVICE_TOKEN",
    "cursor_start_local": "2026-04-10 16:00:00",
    "api_timeout_seconds": 30.0,
    "batch_timeout_seconds": 300.0,
    "verify_config_on_startup": true,
    "clock_skew_backoff_seconds": 5
  },
  "sources": {
    "green-nest-pc": {
      "idle": true,
      "warnings": [],
      "api_calls": [],
      "execution": {
        "data_source": "green-nest-pc",
        "horizon_utc": "2026-04-10T16:19:57.267Z",
        "slice_end_utc": null,
        "cursor_initial_utc": "2026-04-10T20:00:00.000Z",
        "next_window_start_utc": "2026-04-10T20:00:00.000Z",
        "clock_skew_backoff_seconds": 5
      },
      "data_source": "green-nest-pc"
    },
    "heritage-pest-defense": {
      "idle": true,
      "warnings": [],
      "api_calls": [],
      "execution": {
        "data_source": "heritage-pest-defense",
        "horizon_utc": "2026-04-10T16:19:57.267Z",
        "slice_end_utc": null,
        "cursor_initial_utc": "2026-04-10T20:00:00.000Z",
        "next_window_start_utc": "2026-04-10T20:00:00.000Z",
        "clock_skew_backoff_seconds": 5
      },
      "data_source": "heritage-pest-defense"
    }
  },
  "tick_runtime": {
    "started_at_utc": "2026-04-10T16:20:02.267259+00:00"
  }
}
2026-04-10 16:19:02.167990+00:00
done 2026-04-10 16:19:02.420887+00:00
ai_billable_scan success
Tick config · interval 60s · batch /api/ai-analysis/batch · sources green-nest-pc, heritage-pest-defense
green-nest-pc · idle · next window 2026-04-10T20:00:00.000Z
heritage-pest-defense · idle · next window 2026-04-10T20:00:00.000Z
Full execution detail (JSON) — requests / responses / warnings
{
  "tick": {
    "batch_path": "/api/ai-analysis/batch",
    "config_path": "/api/ai-analysis/config",
    "api_base_url": "https://api.flowbridgemedia.com",
    "data_sources": [
      "green-nest-pc",
      "heritage-pest-defense"
    ],
    "cursor_timezone": "America/New_York",
    "interval_seconds": 60,
    "min_split_seconds": 1.0,
    "service_token_env": "INTERNAL_SERVICE_TOKEN",
    "cursor_start_local": "2026-04-10 16:00:00",
    "api_timeout_seconds": 30.0,
    "batch_timeout_seconds": 300.0,
    "verify_config_on_startup": true,
    "clock_skew_backoff_seconds": 5
  },
  "sources": {
    "green-nest-pc": {
      "idle": true,
      "warnings": [],
      "api_calls": [],
      "execution": {
        "data_source": "green-nest-pc",
        "horizon_utc": "2026-04-10T16:18:57.275Z",
        "slice_end_utc": null,
        "cursor_initial_utc": "2026-04-10T20:00:00.000Z",
        "next_window_start_utc": "2026-04-10T20:00:00.000Z",
        "clock_skew_backoff_seconds": 5
      },
      "data_source": "green-nest-pc"
    },
    "heritage-pest-defense": {
      "idle": true,
      "warnings": [],
      "api_calls": [],
      "execution": {
        "data_source": "heritage-pest-defense",
        "horizon_utc": "2026-04-10T16:18:57.275Z",
        "slice_end_utc": null,
        "cursor_initial_utc": "2026-04-10T20:00:00.000Z",
        "next_window_start_utc": "2026-04-10T20:00:00.000Z",
        "clock_skew_backoff_seconds": 5
      },
      "data_source": "heritage-pest-defense"
    }
  },
  "tick_runtime": {
    "started_at_utc": "2026-04-10T16:19:02.275991+00:00"
  }
}
2026-04-10 16:18:02.157440+00:00
done 2026-04-10 16:18:02.422553+00:00
ai_billable_scan success
Tick config · interval 60s · batch /api/ai-analysis/batch · sources green-nest-pc, heritage-pest-defense
green-nest-pc · idle · next window 2026-04-10T20:00:00.000Z
heritage-pest-defense · idle · next window 2026-04-10T20:00:00.000Z
Full execution detail (JSON) — requests / responses / warnings
{
  "tick": {
    "batch_path": "/api/ai-analysis/batch",
    "config_path": "/api/ai-analysis/config",
    "api_base_url": "https://api.flowbridgemedia.com",
    "data_sources": [
      "green-nest-pc",
      "heritage-pest-defense"
    ],
    "cursor_timezone": "America/New_York",
    "interval_seconds": 60,
    "min_split_seconds": 1.0,
    "service_token_env": "INTERNAL_SERVICE_TOKEN",
    "cursor_start_local": "2026-04-10 16:00:00",
    "api_timeout_seconds": 30.0,
    "batch_timeout_seconds": 300.0,
    "verify_config_on_startup": true,
    "clock_skew_backoff_seconds": 5
  },
  "sources": {
    "green-nest-pc": {
      "idle": true,
      "warnings": [],
      "api_calls": [],
      "execution": {
        "data_source": "green-nest-pc",
        "horizon_utc": "2026-04-10T16:17:57.260Z",
        "slice_end_utc": null,
        "cursor_initial_utc": "2026-04-10T20:00:00.000Z",
        "next_window_start_utc": "2026-04-10T20:00:00.000Z",
        "clock_skew_backoff_seconds": 5
      },
      "data_source": "green-nest-pc"
    },
    "heritage-pest-defense": {
      "idle": true,
      "warnings": [],
      "api_calls": [],
      "execution": {
        "data_source": "heritage-pest-defense",
        "horizon_utc": "2026-04-10T16:17:57.260Z",
        "slice_end_utc": null,
        "cursor_initial_utc": "2026-04-10T20:00:00.000Z",
        "next_window_start_utc": "2026-04-10T20:00:00.000Z",
        "clock_skew_backoff_seconds": 5
      },
      "data_source": "heritage-pest-defense"
    }
  },
  "tick_runtime": {
    "started_at_utc": "2026-04-10T16:18:02.260313+00:00"
  }
}
2026-04-10 16:17:02.158631+00:00
done 2026-04-10 16:17:02.421009+00:00
ai_billable_scan success
Tick config · interval 60s · batch /api/ai-analysis/batch · sources green-nest-pc, heritage-pest-defense
green-nest-pc · idle · next window 2026-04-10T20:00:00.000Z
heritage-pest-defense · idle · next window 2026-04-10T20:00:00.000Z
Full execution detail (JSON) — requests / responses / warnings
{
  "tick": {
    "batch_path": "/api/ai-analysis/batch",
    "config_path": "/api/ai-analysis/config",
    "api_base_url": "https://api.flowbridgemedia.com",
    "data_sources": [
      "green-nest-pc",
      "heritage-pest-defense"
    ],
    "cursor_timezone": "America/New_York",
    "interval_seconds": 60,
    "min_split_seconds": 1.0,
    "service_token_env": "INTERNAL_SERVICE_TOKEN",
    "cursor_start_local": "2026-04-10 16:00:00",
    "api_timeout_seconds": 30.0,
    "batch_timeout_seconds": 300.0,
    "verify_config_on_startup": true,
    "clock_skew_backoff_seconds": 5
  },
  "sources": {
    "green-nest-pc": {
      "idle": true,
      "warnings": [],
      "api_calls": [],
      "execution": {
        "data_source": "green-nest-pc",
        "horizon_utc": "2026-04-10T16:16:57.271Z",
        "slice_end_utc": null,
        "cursor_initial_utc": "2026-04-10T20:00:00.000Z",
        "next_window_start_utc": "2026-04-10T20:00:00.000Z",
        "clock_skew_backoff_seconds": 5
      },
      "data_source": "green-nest-pc"
    },
    "heritage-pest-defense": {
      "idle": true,
      "warnings": [],
      "api_calls": [],
      "execution": {
        "data_source": "heritage-pest-defense",
        "horizon_utc": "2026-04-10T16:16:57.271Z",
        "slice_end_utc": null,
        "cursor_initial_utc": "2026-04-10T20:00:00.000Z",
        "next_window_start_utc": "2026-04-10T20:00:00.000Z",
        "clock_skew_backoff_seconds": 5
      },
      "data_source": "heritage-pest-defense"
    }
  },
  "tick_runtime": {
    "started_at_utc": "2026-04-10T16:17:02.271970+00:00"
  }
}
2026-04-10 16:16:02.160824+00:00
done 2026-04-10 16:16:02.404962+00:00
ai_billable_scan success
Tick config · interval 60s · batch /api/ai-analysis/batch · sources green-nest-pc, heritage-pest-defense
green-nest-pc · idle · next window 2026-04-10T20:00:00.000Z
heritage-pest-defense · idle · next window 2026-04-10T20:00:00.000Z
Full execution detail (JSON) — requests / responses / warnings
{
  "tick": {
    "batch_path": "/api/ai-analysis/batch",
    "config_path": "/api/ai-analysis/config",
    "api_base_url": "https://api.flowbridgemedia.com",
    "data_sources": [
      "green-nest-pc",
      "heritage-pest-defense"
    ],
    "cursor_timezone": "America/New_York",
    "interval_seconds": 60,
    "min_split_seconds": 1.0,
    "service_token_env": "INTERNAL_SERVICE_TOKEN",
    "cursor_start_local": "2026-04-10 16:00:00",
    "api_timeout_seconds": 30.0,
    "batch_timeout_seconds": 300.0,
    "verify_config_on_startup": true,
    "clock_skew_backoff_seconds": 5
  },
  "sources": {
    "green-nest-pc": {
      "idle": true,
      "warnings": [],
      "api_calls": [],
      "execution": {
        "data_source": "green-nest-pc",
        "horizon_utc": "2026-04-10T16:15:57.259Z",
        "slice_end_utc": null,
        "cursor_initial_utc": "2026-04-10T20:00:00.000Z",
        "next_window_start_utc": "2026-04-10T20:00:00.000Z",
        "clock_skew_backoff_seconds": 5
      },
      "data_source": "green-nest-pc"
    },
    "heritage-pest-defense": {
      "idle": true,
      "warnings": [],
      "api_calls": [],
      "execution": {
        "data_source": "heritage-pest-defense",
        "horizon_utc": "2026-04-10T16:15:57.259Z",
        "slice_end_utc": null,
        "cursor_initial_utc": "2026-04-10T20:00:00.000Z",
        "next_window_start_utc": "2026-04-10T20:00:00.000Z",
        "clock_skew_backoff_seconds": 5
      },
      "data_source": "heritage-pest-defense"
    }
  },
  "tick_runtime": {
    "started_at_utc": "2026-04-10T16:16:02.259819+00:00"
  }
}
2026-04-10 16:15:02.157810+00:00
done 2026-04-10 16:15:02.398890+00:00
ai_billable_scan success
Tick config · interval 60s · batch /api/ai-analysis/batch · sources green-nest-pc, heritage-pest-defense
green-nest-pc · idle · next window 2026-04-10T20:00:00.000Z
heritage-pest-defense · idle · next window 2026-04-10T20:00:00.000Z
Full execution detail (JSON) — requests / responses / warnings
{
  "tick": {
    "batch_path": "/api/ai-analysis/batch",
    "config_path": "/api/ai-analysis/config",
    "api_base_url": "https://api.flowbridgemedia.com",
    "data_sources": [
      "green-nest-pc",
      "heritage-pest-defense"
    ],
    "cursor_timezone": "America/New_York",
    "interval_seconds": 60,
    "min_split_seconds": 1.0,
    "service_token_env": "INTERNAL_SERVICE_TOKEN",
    "cursor_start_local": "2026-04-10 16:00:00",
    "api_timeout_seconds": 30.0,
    "batch_timeout_seconds": 300.0,
    "verify_config_on_startup": true,
    "clock_skew_backoff_seconds": 5
  },
  "sources": {
    "green-nest-pc": {
      "idle": true,
      "warnings": [],
      "api_calls": [],
      "execution": {
        "data_source": "green-nest-pc",
        "horizon_utc": "2026-04-10T16:14:57.263Z",
        "slice_end_utc": null,
        "cursor_initial_utc": "2026-04-10T20:00:00.000Z",
        "next_window_start_utc": "2026-04-10T20:00:00.000Z",
        "clock_skew_backoff_seconds": 5
      },
      "data_source": "green-nest-pc"
    },
    "heritage-pest-defense": {
      "idle": true,
      "warnings": [],
      "api_calls": [],
      "execution": {
        "data_source": "heritage-pest-defense",
        "horizon_utc": "2026-04-10T16:14:57.263Z",
        "slice_end_utc": null,
        "cursor_initial_utc": "2026-04-10T20:00:00.000Z",
        "next_window_start_utc": "2026-04-10T20:00:00.000Z",
        "clock_skew_backoff_seconds": 5
      },
      "data_source": "heritage-pest-defense"
    }
  },
  "tick_runtime": {
    "started_at_utc": "2026-04-10T16:15:02.263021+00:00"
  }
}
2026-04-10 16:14:02.157129+00:00
done 2026-04-10 16:14:02.425282+00:00
ai_billable_scan success
Tick config · interval 60s · batch /api/ai-analysis/batch · sources green-nest-pc, heritage-pest-defense
green-nest-pc · idle · next window 2026-04-10T20:00:00.000Z
heritage-pest-defense · idle · next window 2026-04-10T20:00:00.000Z
Full execution detail (JSON) — requests / responses / warnings
{
  "tick": {
    "batch_path": "/api/ai-analysis/batch",
    "config_path": "/api/ai-analysis/config",
    "api_base_url": "https://api.flowbridgemedia.com",
    "data_sources": [
      "green-nest-pc",
      "heritage-pest-defense"
    ],
    "cursor_timezone": "America/New_York",
    "interval_seconds": 60,
    "min_split_seconds": 1.0,
    "service_token_env": "INTERNAL_SERVICE_TOKEN",
    "cursor_start_local": "2026-04-10 16:00:00",
    "api_timeout_seconds": 30.0,
    "batch_timeout_seconds": 300.0,
    "verify_config_on_startup": true,
    "clock_skew_backoff_seconds": 5
  },
  "sources": {
    "green-nest-pc": {
      "idle": true,
      "warnings": [],
      "api_calls": [],
      "execution": {
        "data_source": "green-nest-pc",
        "horizon_utc": "2026-04-10T16:13:57.265Z",
        "slice_end_utc": null,
        "cursor_initial_utc": "2026-04-10T20:00:00.000Z",
        "next_window_start_utc": "2026-04-10T20:00:00.000Z",
        "clock_skew_backoff_seconds": 5
      },
      "data_source": "green-nest-pc"
    },
    "heritage-pest-defense": {
      "idle": true,
      "warnings": [],
      "api_calls": [],
      "execution": {
        "data_source": "heritage-pest-defense",
        "horizon_utc": "2026-04-10T16:13:57.265Z",
        "slice_end_utc": null,
        "cursor_initial_utc": "2026-04-10T20:00:00.000Z",
        "next_window_start_utc": "2026-04-10T20:00:00.000Z",
        "clock_skew_backoff_seconds": 5
      },
      "data_source": "heritage-pest-defense"
    }
  },
  "tick_runtime": {
    "started_at_utc": "2026-04-10T16:14:02.265786+00:00"
  }
}
2026-04-10 16:13:02.160900+00:00
done 2026-04-10 16:13:02.439677+00:00
ai_billable_scan success
Tick config · interval 60s · batch /api/ai-analysis/batch · sources green-nest-pc, heritage-pest-defense
green-nest-pc · idle · next window 2026-04-10T20:00:00.000Z
heritage-pest-defense · idle · next window 2026-04-10T20:00:00.000Z
Full execution detail (JSON) — requests / responses / warnings
{
  "tick": {
    "batch_path": "/api/ai-analysis/batch",
    "config_path": "/api/ai-analysis/config",
    "api_base_url": "https://api.flowbridgemedia.com",
    "data_sources": [
      "green-nest-pc",
      "heritage-pest-defense"
    ],
    "cursor_timezone": "America/New_York",
    "interval_seconds": 60,
    "min_split_seconds": 1.0,
    "service_token_env": "INTERNAL_SERVICE_TOKEN",
    "cursor_start_local": "2026-04-10 16:00:00",
    "api_timeout_seconds": 30.0,
    "batch_timeout_seconds": 300.0,
    "verify_config_on_startup": true,
    "clock_skew_backoff_seconds": 5
  },
  "sources": {
    "green-nest-pc": {
      "idle": true,
      "warnings": [],
      "api_calls": [],
      "execution": {
        "data_source": "green-nest-pc",
        "horizon_utc": "2026-04-10T16:12:57.267Z",
        "slice_end_utc": null,
        "cursor_initial_utc": "2026-04-10T20:00:00.000Z",
        "next_window_start_utc": "2026-04-10T20:00:00.000Z",
        "clock_skew_backoff_seconds": 5
      },
      "data_source": "green-nest-pc"
    },
    "heritage-pest-defense": {
      "idle": true,
      "warnings": [],
      "api_calls": [],
      "execution": {
        "data_source": "heritage-pest-defense",
        "horizon_utc": "2026-04-10T16:12:57.267Z",
        "slice_end_utc": null,
        "cursor_initial_utc": "2026-04-10T20:00:00.000Z",
        "next_window_start_utc": "2026-04-10T20:00:00.000Z",
        "clock_skew_backoff_seconds": 5
      },
      "data_source": "heritage-pest-defense"
    }
  },
  "tick_runtime": {
    "started_at_utc": "2026-04-10T16:13:02.267277+00:00"
  }
}
2026-04-10 16:12:02.157831+00:00
done 2026-04-10 16:12:02.413202+00:00
ai_billable_scan success
Tick config · interval 60s · batch /api/ai-analysis/batch · sources green-nest-pc, heritage-pest-defense
green-nest-pc · idle · next window 2026-04-10T20:00:00.000Z
heritage-pest-defense · idle · next window 2026-04-10T20:00:00.000Z
Full execution detail (JSON) — requests / responses / warnings
{
  "tick": {
    "batch_path": "/api/ai-analysis/batch",
    "config_path": "/api/ai-analysis/config",
    "api_base_url": "https://api.flowbridgemedia.com",
    "data_sources": [
      "green-nest-pc",
      "heritage-pest-defense"
    ],
    "cursor_timezone": "America/New_York",
    "interval_seconds": 60,
    "min_split_seconds": 1.0,
    "service_token_env": "INTERNAL_SERVICE_TOKEN",
    "cursor_start_local": "2026-04-10 16:00:00",
    "api_timeout_seconds": 30.0,
    "batch_timeout_seconds": 300.0,
    "verify_config_on_startup": true,
    "clock_skew_backoff_seconds": 5
  },
  "sources": {
    "green-nest-pc": {
      "idle": true,
      "warnings": [],
      "api_calls": [],
      "execution": {
        "data_source": "green-nest-pc",
        "horizon_utc": "2026-04-10T16:11:57.263Z",
        "slice_end_utc": null,
        "cursor_initial_utc": "2026-04-10T20:00:00.000Z",
        "next_window_start_utc": "2026-04-10T20:00:00.000Z",
        "clock_skew_backoff_seconds": 5
      },
      "data_source": "green-nest-pc"
    },
    "heritage-pest-defense": {
      "idle": true,
      "warnings": [],
      "api_calls": [],
      "execution": {
        "data_source": "heritage-pest-defense",
        "horizon_utc": "2026-04-10T16:11:57.263Z",
        "slice_end_utc": null,
        "cursor_initial_utc": "2026-04-10T20:00:00.000Z",
        "next_window_start_utc": "2026-04-10T20:00:00.000Z",
        "clock_skew_backoff_seconds": 5
      },
      "data_source": "heritage-pest-defense"
    }
  },
  "tick_runtime": {
    "started_at_utc": "2026-04-10T16:12:02.263481+00:00"
  }
}
2026-04-10 16:11:02.158271+00:00
done 2026-04-10 16:11:02.421118+00:00
ai_billable_scan success
Tick config · interval 60s · batch /api/ai-analysis/batch · sources green-nest-pc, heritage-pest-defense
green-nest-pc · idle · next window 2026-04-10T20:00:00.000Z
heritage-pest-defense · idle · next window 2026-04-10T20:00:00.000Z
Full execution detail (JSON) — requests / responses / warnings
{
  "tick": {
    "batch_path": "/api/ai-analysis/batch",
    "config_path": "/api/ai-analysis/config",
    "api_base_url": "https://api.flowbridgemedia.com",
    "data_sources": [
      "green-nest-pc",
      "heritage-pest-defense"
    ],
    "cursor_timezone": "America/New_York",
    "interval_seconds": 60,
    "min_split_seconds": 1.0,
    "service_token_env": "INTERNAL_SERVICE_TOKEN",
    "cursor_start_local": "2026-04-10 16:00:00",
    "api_timeout_seconds": 30.0,
    "batch_timeout_seconds": 300.0,
    "verify_config_on_startup": true,
    "clock_skew_backoff_seconds": 5
  },
  "sources": {
    "green-nest-pc": {
      "idle": true,
      "warnings": [],
      "api_calls": [],
      "execution": {
        "data_source": "green-nest-pc",
        "horizon_utc": "2026-04-10T16:10:57.274Z",
        "slice_end_utc": null,
        "cursor_initial_utc": "2026-04-10T20:00:00.000Z",
        "next_window_start_utc": "2026-04-10T20:00:00.000Z",
        "clock_skew_backoff_seconds": 5
      },
      "data_source": "green-nest-pc"
    },
    "heritage-pest-defense": {
      "idle": true,
      "warnings": [],
      "api_calls": [],
      "execution": {
        "data_source": "heritage-pest-defense",
        "horizon_utc": "2026-04-10T16:10:57.274Z",
        "slice_end_utc": null,
        "cursor_initial_utc": "2026-04-10T20:00:00.000Z",
        "next_window_start_utc": "2026-04-10T20:00:00.000Z",
        "clock_skew_backoff_seconds": 5
      },
      "data_source": "heritage-pest-defense"
    }
  },
  "tick_runtime": {
    "started_at_utc": "2026-04-10T16:11:02.274758+00:00"
  }
}
2026-04-10 16:10:02.160023+00:00
done 2026-04-10 16:10:02.435816+00:00
ai_billable_scan success
Tick config · interval 60s · batch /api/ai-analysis/batch · sources green-nest-pc, heritage-pest-defense
green-nest-pc · idle · next window 2026-04-10T20:00:00.000Z
heritage-pest-defense · idle · next window 2026-04-10T20:00:00.000Z
Full execution detail (JSON) — requests / responses / warnings
{
  "tick": {
    "batch_path": "/api/ai-analysis/batch",
    "config_path": "/api/ai-analysis/config",
    "api_base_url": "https://api.flowbridgemedia.com",
    "data_sources": [
      "green-nest-pc",
      "heritage-pest-defense"
    ],
    "cursor_timezone": "America/New_York",
    "interval_seconds": 60,
    "min_split_seconds": 1.0,
    "service_token_env": "INTERNAL_SERVICE_TOKEN",
    "cursor_start_local": "2026-04-10 16:00:00",
    "api_timeout_seconds": 30.0,
    "batch_timeout_seconds": 300.0,
    "verify_config_on_startup": true,
    "clock_skew_backoff_seconds": 5
  },
  "sources": {
    "green-nest-pc": {
      "idle": true,
      "warnings": [],
      "api_calls": [],
      "execution": {
        "data_source": "green-nest-pc",
        "horizon_utc": "2026-04-10T16:09:57.278Z",
        "slice_end_utc": null,
        "cursor_initial_utc": "2026-04-10T20:00:00.000Z",
        "next_window_start_utc": "2026-04-10T20:00:00.000Z",
        "clock_skew_backoff_seconds": 5
      },
      "data_source": "green-nest-pc"
    },
    "heritage-pest-defense": {
      "idle": true,
      "warnings": [],
      "api_calls": [],
      "execution": {
        "data_source": "heritage-pest-defense",
        "horizon_utc": "2026-04-10T16:09:57.278Z",
        "slice_end_utc": null,
        "cursor_initial_utc": "2026-04-10T20:00:00.000Z",
        "next_window_start_utc": "2026-04-10T20:00:00.000Z",
        "clock_skew_backoff_seconds": 5
      },
      "data_source": "heritage-pest-defense"
    }
  },
  "tick_runtime": {
    "started_at_utc": "2026-04-10T16:10:02.278141+00:00"
  }
}
2026-04-10 16:09:02.159327+00:00
done 2026-04-10 16:09:02.409889+00:00
ai_billable_scan success
Tick config · interval 60s · batch /api/ai-analysis/batch · sources green-nest-pc, heritage-pest-defense
green-nest-pc · idle · next window 2026-04-10T20:00:00.000Z
heritage-pest-defense · idle · next window 2026-04-10T20:00:00.000Z
Full execution detail (JSON) — requests / responses / warnings
{
  "tick": {
    "batch_path": "/api/ai-analysis/batch",
    "config_path": "/api/ai-analysis/config",
    "api_base_url": "https://api.flowbridgemedia.com",
    "data_sources": [
      "green-nest-pc",
      "heritage-pest-defense"
    ],
    "cursor_timezone": "America/New_York",
    "interval_seconds": 60,
    "min_split_seconds": 1.0,
    "service_token_env": "INTERNAL_SERVICE_TOKEN",
    "cursor_start_local": "2026-04-10 16:00:00",
    "api_timeout_seconds": 30.0,
    "batch_timeout_seconds": 300.0,
    "verify_config_on_startup": true,
    "clock_skew_backoff_seconds": 5
  },
  "sources": {
    "green-nest-pc": {
      "idle": true,
      "warnings": [],
      "api_calls": [],
      "execution": {
        "data_source": "green-nest-pc",
        "horizon_utc": "2026-04-10T16:08:57.261Z",
        "slice_end_utc": null,
        "cursor_initial_utc": "2026-04-10T20:00:00.000Z",
        "next_window_start_utc": "2026-04-10T20:00:00.000Z",
        "clock_skew_backoff_seconds": 5
      },
      "data_source": "green-nest-pc"
    },
    "heritage-pest-defense": {
      "idle": true,
      "warnings": [],
      "api_calls": [],
      "execution": {
        "data_source": "heritage-pest-defense",
        "horizon_utc": "2026-04-10T16:08:57.261Z",
        "slice_end_utc": null,
        "cursor_initial_utc": "2026-04-10T20:00:00.000Z",
        "next_window_start_utc": "2026-04-10T20:00:00.000Z",
        "clock_skew_backoff_seconds": 5
      },
      "data_source": "heritage-pest-defense"
    }
  },
  "tick_runtime": {
    "started_at_utc": "2026-04-10T16:09:02.261749+00:00"
  }
}
2026-04-10 16:08:02.163071+00:00
done 2026-04-10 16:08:02.435674+00:00
ai_billable_scan success
Tick config · interval 60s · batch /api/ai-analysis/batch · sources green-nest-pc, heritage-pest-defense
green-nest-pc · idle · next window 2026-04-10T20:00:00.000Z
heritage-pest-defense · idle · next window 2026-04-10T20:00:00.000Z
Full execution detail (JSON) — requests / responses / warnings
{
  "tick": {
    "batch_path": "/api/ai-analysis/batch",
    "config_path": "/api/ai-analysis/config",
    "api_base_url": "https://api.flowbridgemedia.com",
    "data_sources": [
      "green-nest-pc",
      "heritage-pest-defense"
    ],
    "cursor_timezone": "America/New_York",
    "interval_seconds": 60,
    "min_split_seconds": 1.0,
    "service_token_env": "INTERNAL_SERVICE_TOKEN",
    "cursor_start_local": "2026-04-10 16:00:00",
    "api_timeout_seconds": 30.0,
    "batch_timeout_seconds": 300.0,
    "verify_config_on_startup": true,
    "clock_skew_backoff_seconds": 5
  },
  "sources": {
    "green-nest-pc": {
      "idle": true,
      "warnings": [],
      "api_calls": [],
      "execution": {
        "data_source": "green-nest-pc",
        "horizon_utc": "2026-04-10T16:07:57.264Z",
        "slice_end_utc": null,
        "cursor_initial_utc": "2026-04-10T20:00:00.000Z",
        "next_window_start_utc": "2026-04-10T20:00:00.000Z",
        "clock_skew_backoff_seconds": 5
      },
      "data_source": "green-nest-pc"
    },
    "heritage-pest-defense": {
      "idle": true,
      "warnings": [],
      "api_calls": [],
      "execution": {
        "data_source": "heritage-pest-defense",
        "horizon_utc": "2026-04-10T16:07:57.264Z",
        "slice_end_utc": null,
        "cursor_initial_utc": "2026-04-10T20:00:00.000Z",
        "next_window_start_utc": "2026-04-10T20:00:00.000Z",
        "clock_skew_backoff_seconds": 5
      },
      "data_source": "heritage-pest-defense"
    }
  },
  "tick_runtime": {
    "started_at_utc": "2026-04-10T16:08:02.264493+00:00"
  }
}
2026-04-10 16:07:02.158687+00:00
done 2026-04-10 16:07:02.407903+00:00
ai_billable_scan success
Tick config · interval 60s · batch /api/ai-analysis/batch · sources green-nest-pc, heritage-pest-defense
green-nest-pc · idle · next window 2026-04-10T20:00:00.000Z
heritage-pest-defense · idle · next window 2026-04-10T20:00:00.000Z
Full execution detail (JSON) — requests / responses / warnings
{
  "tick": {
    "batch_path": "/api/ai-analysis/batch",
    "config_path": "/api/ai-analysis/config",
    "api_base_url": "https://api.flowbridgemedia.com",
    "data_sources": [
      "green-nest-pc",
      "heritage-pest-defense"
    ],
    "cursor_timezone": "America/New_York",
    "interval_seconds": 60,
    "min_split_seconds": 1.0,
    "service_token_env": "INTERNAL_SERVICE_TOKEN",
    "cursor_start_local": "2026-04-10 16:00:00",
    "api_timeout_seconds": 30.0,
    "batch_timeout_seconds": 300.0,
    "verify_config_on_startup": true,
    "clock_skew_backoff_seconds": 5
  },
  "sources": {
    "green-nest-pc": {
      "idle": true,
      "warnings": [],
      "api_calls": [],
      "execution": {
        "data_source": "green-nest-pc",
        "horizon_utc": "2026-04-10T16:06:57.261Z",
        "slice_end_utc": null,
        "cursor_initial_utc": "2026-04-10T20:00:00.000Z",
        "next_window_start_utc": "2026-04-10T20:00:00.000Z",
        "clock_skew_backoff_seconds": 5
      },
      "data_source": "green-nest-pc"
    },
    "heritage-pest-defense": {
      "idle": true,
      "warnings": [],
      "api_calls": [],
      "execution": {
        "data_source": "heritage-pest-defense",
        "horizon_utc": "2026-04-10T16:06:57.261Z",
        "slice_end_utc": null,
        "cursor_initial_utc": "2026-04-10T20:00:00.000Z",
        "next_window_start_utc": "2026-04-10T20:00:00.000Z",
        "clock_skew_backoff_seconds": 5
      },
      "data_source": "heritage-pest-defense"
    }
  },
  "tick_runtime": {
    "started_at_utc": "2026-04-10T16:07:02.261140+00:00"
  }
}
2026-04-10 16:06:02.155985+00:00
done 2026-04-10 16:06:02.396694+00:00
ai_billable_scan success
Tick config · interval 60s · batch /api/ai-analysis/batch · sources green-nest-pc, heritage-pest-defense
green-nest-pc · idle · next window 2026-04-10T20:00:00.000Z
heritage-pest-defense · idle · next window 2026-04-10T20:00:00.000Z
Full execution detail (JSON) — requests / responses / warnings
{
  "tick": {
    "batch_path": "/api/ai-analysis/batch",
    "config_path": "/api/ai-analysis/config",
    "api_base_url": "https://api.flowbridgemedia.com",
    "data_sources": [
      "green-nest-pc",
      "heritage-pest-defense"
    ],
    "cursor_timezone": "America/New_York",
    "interval_seconds": 60,
    "min_split_seconds": 1.0,
    "service_token_env": "INTERNAL_SERVICE_TOKEN",
    "cursor_start_local": "2026-04-10 16:00:00",
    "api_timeout_seconds": 30.0,
    "batch_timeout_seconds": 300.0,
    "verify_config_on_startup": true,
    "clock_skew_backoff_seconds": 5
  },
  "sources": {
    "green-nest-pc": {
      "idle": true,
      "warnings": [],
      "api_calls": [],
      "execution": {
        "data_source": "green-nest-pc",
        "horizon_utc": "2026-04-10T16:05:57.257Z",
        "slice_end_utc": null,
        "cursor_initial_utc": "2026-04-10T20:00:00.000Z",
        "next_window_start_utc": "2026-04-10T20:00:00.000Z",
        "clock_skew_backoff_seconds": 5
      },
      "data_source": "green-nest-pc"
    },
    "heritage-pest-defense": {
      "idle": true,
      "warnings": [],
      "api_calls": [],
      "execution": {
        "data_source": "heritage-pest-defense",
        "horizon_utc": "2026-04-10T16:05:57.257Z",
        "slice_end_utc": null,
        "cursor_initial_utc": "2026-04-10T20:00:00.000Z",
        "next_window_start_utc": "2026-04-10T20:00:00.000Z",
        "clock_skew_backoff_seconds": 5
      },
      "data_source": "heritage-pest-defense"
    }
  },
  "tick_runtime": {
    "started_at_utc": "2026-04-10T16:06:02.257224+00:00"
  }
}
2026-04-10 16:05:02.157788+00:00
done 2026-04-10 16:05:02.407969+00:00
ai_billable_scan success
Tick config · interval 60s · batch /api/ai-analysis/batch · sources green-nest-pc, heritage-pest-defense
green-nest-pc · idle · next window 2026-04-10T20:00:00.000Z
heritage-pest-defense · idle · next window 2026-04-10T20:00:00.000Z
Full execution detail (JSON) — requests / responses / warnings
{
  "tick": {
    "batch_path": "/api/ai-analysis/batch",
    "config_path": "/api/ai-analysis/config",
    "api_base_url": "https://api.flowbridgemedia.com",
    "data_sources": [
      "green-nest-pc",
      "heritage-pest-defense"
    ],
    "cursor_timezone": "America/New_York",
    "interval_seconds": 60,
    "min_split_seconds": 1.0,
    "service_token_env": "INTERNAL_SERVICE_TOKEN",
    "cursor_start_local": "2026-04-10 16:00:00",
    "api_timeout_seconds": 30.0,
    "batch_timeout_seconds": 300.0,
    "verify_config_on_startup": true,
    "clock_skew_backoff_seconds": 5
  },
  "sources": {
    "green-nest-pc": {
      "idle": true,
      "warnings": [],
      "api_calls": [],
      "execution": {
        "data_source": "green-nest-pc",
        "horizon_utc": "2026-04-10T16:04:57.260Z",
        "slice_end_utc": null,
        "cursor_initial_utc": "2026-04-10T20:00:00.000Z",
        "next_window_start_utc": "2026-04-10T20:00:00.000Z",
        "clock_skew_backoff_seconds": 5
      },
      "data_source": "green-nest-pc"
    },
    "heritage-pest-defense": {
      "idle": true,
      "warnings": [],
      "api_calls": [],
      "execution": {
        "data_source": "heritage-pest-defense",
        "horizon_utc": "2026-04-10T16:04:57.260Z",
        "slice_end_utc": null,
        "cursor_initial_utc": "2026-04-10T20:00:00.000Z",
        "next_window_start_utc": "2026-04-10T20:00:00.000Z",
        "clock_skew_backoff_seconds": 5
      },
      "data_source": "heritage-pest-defense"
    }
  },
  "tick_runtime": {
    "started_at_utc": "2026-04-10T16:05:02.260057+00:00"
  }
}
2026-04-10 16:04:02.158783+00:00
done 2026-04-10 16:04:02.410977+00:00
ai_billable_scan success
Tick config · interval 60s · batch /api/ai-analysis/batch · sources green-nest-pc, heritage-pest-defense
green-nest-pc · idle · next window 2026-04-10T20:00:00.000Z
heritage-pest-defense · idle · next window 2026-04-10T20:00:00.000Z
Full execution detail (JSON) — requests / responses / warnings
{
  "tick": {
    "batch_path": "/api/ai-analysis/batch",
    "config_path": "/api/ai-analysis/config",
    "api_base_url": "https://api.flowbridgemedia.com",
    "data_sources": [
      "green-nest-pc",
      "heritage-pest-defense"
    ],
    "cursor_timezone": "America/New_York",
    "interval_seconds": 60,
    "min_split_seconds": 1.0,
    "service_token_env": "INTERNAL_SERVICE_TOKEN",
    "cursor_start_local": "2026-04-10 16:00:00",
    "api_timeout_seconds": 30.0,
    "batch_timeout_seconds": 300.0,
    "verify_config_on_startup": true,
    "clock_skew_backoff_seconds": 5
  },
  "sources": {
    "green-nest-pc": {
      "idle": true,
      "warnings": [],
      "api_calls": [],
      "execution": {
        "data_source": "green-nest-pc",
        "horizon_utc": "2026-04-10T16:03:57.259Z",
        "slice_end_utc": null,
        "cursor_initial_utc": "2026-04-10T20:00:00.000Z",
        "next_window_start_utc": "2026-04-10T20:00:00.000Z",
        "clock_skew_backoff_seconds": 5
      },
      "data_source": "green-nest-pc"
    },
    "heritage-pest-defense": {
      "idle": true,
      "warnings": [],
      "api_calls": [],
      "execution": {
        "data_source": "heritage-pest-defense",
        "horizon_utc": "2026-04-10T16:03:57.259Z",
        "slice_end_utc": null,
        "cursor_initial_utc": "2026-04-10T20:00:00.000Z",
        "next_window_start_utc": "2026-04-10T20:00:00.000Z",
        "clock_skew_backoff_seconds": 5
      },
      "data_source": "heritage-pest-defense"
    }
  },
  "tick_runtime": {
    "started_at_utc": "2026-04-10T16:04:02.259839+00:00"
  }
}
2026-04-10 16:03:02.162020+00:00
done 2026-04-10 16:03:02.440543+00:00
ai_billable_scan success
Tick config · interval 60s · batch /api/ai-analysis/batch · sources green-nest-pc, heritage-pest-defense
green-nest-pc · idle · next window 2026-04-10T20:00:00.000Z
heritage-pest-defense · idle · next window 2026-04-10T20:00:00.000Z
Full execution detail (JSON) — requests / responses / warnings
{
  "tick": {
    "batch_path": "/api/ai-analysis/batch",
    "config_path": "/api/ai-analysis/config",
    "api_base_url": "https://api.flowbridgemedia.com",
    "data_sources": [
      "green-nest-pc",
      "heritage-pest-defense"
    ],
    "cursor_timezone": "America/New_York",
    "interval_seconds": 60,
    "min_split_seconds": 1.0,
    "service_token_env": "INTERNAL_SERVICE_TOKEN",
    "cursor_start_local": "2026-04-10 16:00:00",
    "api_timeout_seconds": 30.0,
    "batch_timeout_seconds": 300.0,
    "verify_config_on_startup": true,
    "clock_skew_backoff_seconds": 5
  },
  "sources": {
    "green-nest-pc": {
      "idle": true,
      "warnings": [],
      "api_calls": [],
      "execution": {
        "data_source": "green-nest-pc",
        "horizon_utc": "2026-04-10T16:02:57.288Z",
        "slice_end_utc": null,
        "cursor_initial_utc": "2026-04-10T20:00:00.000Z",
        "next_window_start_utc": "2026-04-10T20:00:00.000Z",
        "clock_skew_backoff_seconds": 5
      },
      "data_source": "green-nest-pc"
    },
    "heritage-pest-defense": {
      "idle": true,
      "warnings": [],
      "api_calls": [],
      "execution": {
        "data_source": "heritage-pest-defense",
        "horizon_utc": "2026-04-10T16:02:57.288Z",
        "slice_end_utc": null,
        "cursor_initial_utc": "2026-04-10T20:00:00.000Z",
        "next_window_start_utc": "2026-04-10T20:00:00.000Z",
        "clock_skew_backoff_seconds": 5
      },
      "data_source": "heritage-pest-defense"
    }
  },
  "tick_runtime": {
    "started_at_utc": "2026-04-10T16:03:02.288920+00:00"
  }
}
2026-04-10 16:02:02.157161+00:00
done 2026-04-10 16:02:02.407651+00:00
ai_billable_scan success
Tick config · interval 60s · batch /api/ai-analysis/batch · sources green-nest-pc, heritage-pest-defense
green-nest-pc · idle · next window 2026-04-10T20:00:00.000Z
heritage-pest-defense · idle · next window 2026-04-10T20:00:00.000Z
Full execution detail (JSON) — requests / responses / warnings
{
  "tick": {
    "batch_path": "/api/ai-analysis/batch",
    "config_path": "/api/ai-analysis/config",
    "api_base_url": "https://api.flowbridgemedia.com",
    "data_sources": [
      "green-nest-pc",
      "heritage-pest-defense"
    ],
    "cursor_timezone": "America/New_York",
    "interval_seconds": 60,
    "min_split_seconds": 1.0,
    "service_token_env": "INTERNAL_SERVICE_TOKEN",
    "cursor_start_local": "2026-04-10 16:00:00",
    "api_timeout_seconds": 30.0,
    "batch_timeout_seconds": 300.0,
    "verify_config_on_startup": true,
    "clock_skew_backoff_seconds": 5
  },
  "sources": {
    "green-nest-pc": {
      "idle": true,
      "warnings": [],
      "api_calls": [],
      "execution": {
        "data_source": "green-nest-pc",
        "horizon_utc": "2026-04-10T16:01:57.265Z",
        "slice_end_utc": null,
        "cursor_initial_utc": "2026-04-10T20:00:00.000Z",
        "next_window_start_utc": "2026-04-10T20:00:00.000Z",
        "clock_skew_backoff_seconds": 5
      },
      "data_source": "green-nest-pc"
    },
    "heritage-pest-defense": {
      "idle": true,
      "warnings": [],
      "api_calls": [],
      "execution": {
        "data_source": "heritage-pest-defense",
        "horizon_utc": "2026-04-10T16:01:57.265Z",
        "slice_end_utc": null,
        "cursor_initial_utc": "2026-04-10T20:00:00.000Z",
        "next_window_start_utc": "2026-04-10T20:00:00.000Z",
        "clock_skew_backoff_seconds": 5
      },
      "data_source": "heritage-pest-defense"
    }
  },
  "tick_runtime": {
    "started_at_utc": "2026-04-10T16:02:02.265967+00:00"
  }
}
2026-04-10 16:01:02.161949+00:00
done 2026-04-10 16:01:02.414090+00:00
ai_billable_scan success
Tick config · interval 60s · batch /api/ai-analysis/batch · sources green-nest-pc, heritage-pest-defense
green-nest-pc · idle · next window 2026-04-10T20:00:00.000Z
heritage-pest-defense · idle · next window 2026-04-10T20:00:00.000Z
Full execution detail (JSON) — requests / responses / warnings
{
  "tick": {
    "batch_path": "/api/ai-analysis/batch",
    "config_path": "/api/ai-analysis/config",
    "api_base_url": "https://api.flowbridgemedia.com",
    "data_sources": [
      "green-nest-pc",
      "heritage-pest-defense"
    ],
    "cursor_timezone": "America/New_York",
    "interval_seconds": 60,
    "min_split_seconds": 1.0,
    "service_token_env": "INTERNAL_SERVICE_TOKEN",
    "cursor_start_local": "2026-04-10 16:00:00",
    "api_timeout_seconds": 30.0,
    "batch_timeout_seconds": 300.0,
    "verify_config_on_startup": true,
    "clock_skew_backoff_seconds": 5
  },
  "sources": {
    "green-nest-pc": {
      "idle": true,
      "warnings": [],
      "api_calls": [],
      "execution": {
        "data_source": "green-nest-pc",
        "horizon_utc": "2026-04-10T16:00:57.267Z",
        "slice_end_utc": null,
        "cursor_initial_utc": "2026-04-10T20:00:00.000Z",
        "next_window_start_utc": "2026-04-10T20:00:00.000Z",
        "clock_skew_backoff_seconds": 5
      },
      "data_source": "green-nest-pc"
    },
    "heritage-pest-defense": {
      "idle": true,
      "warnings": [],
      "api_calls": [],
      "execution": {
        "data_source": "heritage-pest-defense",
        "horizon_utc": "2026-04-10T16:00:57.267Z",
        "slice_end_utc": null,
        "cursor_initial_utc": "2026-04-10T20:00:00.000Z",
        "next_window_start_utc": "2026-04-10T20:00:00.000Z",
        "clock_skew_backoff_seconds": 5
      },
      "data_source": "heritage-pest-defense"
    }
  },
  "tick_runtime": {
    "started_at_utc": "2026-04-10T16:01:02.267333+00:00"
  }
}

JSON: /api/logs · Health: /health