feat: improve webhook filtering, worker status startup handling, and timestamp parsing
- Skip half_hour_report events from webhook posts in people_flow - Handle pre-existing stale worker status files during startup gracefully - Make store_dwell_alert timestamp parsing robust against invalid/empty values - Update lessons learned and todo documentation Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -52,7 +52,7 @@ def build_client(project_root: Path):
|
||||
"over_threshold_count": 2,
|
||||
"under_threshold_count": 1,
|
||||
"queue_level": "normal",
|
||||
"previous_queue_level": null,
|
||||
"previous_queue_level": None,
|
||||
"status_change": "initial",
|
||||
},
|
||||
}
|
||||
@@ -149,6 +149,39 @@ def test_get_manage_summary(tmp_path: Path):
|
||||
)
|
||||
|
||||
|
||||
def test_get_manage_summary_ignores_invalid_report_timestamp(tmp_path: Path):
|
||||
client, _ = build_client(tmp_path)
|
||||
events_path = tmp_path / "logs" / "events.jsonl"
|
||||
with events_path.open("a", encoding="utf-8") as handle:
|
||||
handle.write(
|
||||
json.dumps(
|
||||
{
|
||||
"event": "half_hour_report",
|
||||
"camera_id": "store_cam_01",
|
||||
"window_start": "2026-04-16T10:00:00+08:00",
|
||||
"window_end": "",
|
||||
"active_customer_count": 1,
|
||||
"queue_metrics": {
|
||||
"queue_level": "normal",
|
||||
"over_threshold_count": 1,
|
||||
"under_threshold_count": 0,
|
||||
"status_change": "unchanged",
|
||||
},
|
||||
}
|
||||
)
|
||||
+ "\n"
|
||||
)
|
||||
|
||||
response = client.get("/api/manage/summary")
|
||||
|
||||
assert response.status_code == 200
|
||||
assert response.json["last_result_time"] == "2026-04-16T10:00:00+08:00"
|
||||
assert (
|
||||
response.json["metrics"]["recent_window_stats"][0]["window_end"]
|
||||
== "2026-04-16T10:00:00+08:00"
|
||||
)
|
||||
|
||||
|
||||
def test_get_manage_windows(tmp_path: Path):
|
||||
client, _ = build_client(tmp_path)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user