$ uv run tools/flow.py test cases/lab01.json --webhook base-report -v
POST http://localhost:5678/webhook/base-report · 5 case(s) × 1
✘ 두 주 전체 · 0.2s · total = 602 (expected 666); error_rate = 3.488372093023256 (expected 0.0315); p50_ms = null (expected 1205); p95_ms = null (expected 2537)
    → request  POST /webhook/base-report
      {
        "from": "2026-10-19",
        "to": "2026-10-30"
      }
    ← response HTTP 200
      {
        "total": 602,
        "errors": 21,
        "error_rate": 3.488372093023256,
        "avg_ms": 1249.2392026578073,
        "by_route": {
          "자동 답변": 529,
          "담당자 연결": 32,
          "잠시 후": 20
        }
      }
✘ 두 주 · 갈래별 · 0.1s · by_route.자동 답변 = 529 (expected 591); by_route.담당자 연결 = 32 (expected 34); by_route.오류 = null (expected 21)
    → request  POST /webhook/base-report
      {
        "from": "2026-10-19",
        "to": "2026-10-30"
      }
    ← response HTTP 200
      {
        "total": 602,
        "errors": 21,
        "error_rate": 3.488372093023256,
        "avg_ms": 1249.2392026578073,
        "by_route": {
          "자동 답변": 529,
          "담당자 연결": 32,
          "잠시 후": 20
        }
      }
✘ 첫 주 · 0.1s · total = 245 (expected 309)
    → request  POST /webhook/base-report
      {
        "from": "2026-10-19",
        "to": "2026-10-23"
      }
    ← response HTTP 200
      {
        "total": 245,
        "errors": 0,
        "error_rate": 0,
        "avg_ms": 1317.1551020408162,
        "by_route": {
          "자동 답변": 230,
          "담당자 연결": 15
        }
      }
✘ 둘째 주 · 0.1s · total = 293 (expected 357); error_rate = 7.167235494880546 (expected 0.0588); p95_ms = null (expected 2598)
    → request  POST /webhook/base-report
      {
        "from": "2026-10-26",
        "to": "2026-10-30"
      }
    ← response HTTP 200
      {
        "total": 293,
        "errors": 21,
        "error_rate": 7.167235494880546,
        "avg_ms": 1173.1399317406144,
        "by_route": {
          "자동 답변": 237,
          "담당자 연결": 15,
          "잠시 후": 20
        }
      }
✘ 10월 26일 하루 · 0.1s · total = 0 (expected 70); errors = 0 (expected 16)
    → request  POST /webhook/base-report
      {
        "from": "2026-10-26",
        "to": "2026-10-26"
      }
    ← response HTTP 200
      {
        "total": 0,
        "errors": 0,
        "error_rate": null,
        "avg_ms": null,
        "by_route": {}
      }
Passed 0/5
report: runs/lab01-20261031-074859.json
