perfgate-cli 0.17.0

CLI for perfgate performance budgets and baseline diffs
{
  "schema": "sensor.report.v1",
  "tool": {
    "name": "perfgate",
    "version": "0.2.0"
  },
  "run": {
    "started_at": "2024-01-01T00:00:00Z",
    "ended_at": "2024-01-01T00:01:00Z",
    "duration_ms": 60000,
    "capabilities": {
      "baseline": {
        "status": "available"
      },
      "engine": {
        "status": "available"
      }
    }
  },
  "verdict": {
    "status": "fail",
    "counts": {
      "info": 1,
      "warn": 0,
      "error": 1
    },
    "reasons": ["wall_ms_fail"]
  },
  "findings": [
    {
      "check_id": "perf.budget",
      "code": "metric_fail",
      "severity": "error",
      "message": "wall_ms regression: +50.00% (threshold: 20.0%)",
      "fingerprint": "699f59a2cd532d5537950d30017837d8954da861b2f436949880669c65a65e50",
      "data": {
        "metric_name": "wall_ms",
        "baseline": 1000.0,
        "current": 1500.0,
        "regression_pct": 50.0,
        "threshold": 0.2,
        "direction": "lower"
      }
    }
  ],
  "artifacts": [
    {
      "path": "extras/perfgate.compare.v1.json",
      "type": "compare_receipt"
    },
    {
      "path": "comment.md",
      "type": "markdown"
    },
    {
      "path": "extras/perfgate.report.v1.json",
      "type": "perfgate_report"
    },
    {
      "path": "extras/perfgate.run.v1.json",
      "type": "run_receipt"
    }
  ],
  "data": {
    "summary": {
      "pass_count": 1,
      "warn_count": 0,
      "fail_count": 1,
      "total_count": 2,
      "bench_count": 1
    }
  }
}