{
  "schema": "perfowl.capture-latency-regression/1",
  "generatedAt": "2026-09-08T15:38:32.683Z",
  "evidence": "E2",
  "gitCommit": "1dd8151511685786f55d66e7147185662ab91b45",
  "roundsPerScenario": 20,
  "scenarios": {
    "launch-under-300MiB-decoded-prelaunch-load": {
      "passed": 20,
      "wholeTestProcessWallMs": [
        354.883,
        255.823,
        264.059,
        250.858,
        251.519,
        250.438,
        258.715,
        251.92,
        251.672,
        248.358,
        259.853,
        253.505,
        247.988,
        253.937,
        250.102,
        255.442,
        258.01,
        252.516,
        262.016,
        253.442
      ],
      "wholeTestProcessP95Ms": 264.059,
      "assertions": [
        "single launch request",
        "launch precedes prelaunch CoreProfile decode",
        "clickToLaunchRequestMs <= 500",
        "32MiB prelaunch ring byte budget",
        "source loss is partial and never zero-filled"
      ]
    },
    "first-sysmon-wire-under-30MiB-heavy-source": {
      "passed": 20,
      "wholeTestProcessWallMs": [
        260.178,
        265.126,
        336.712,
        274.835,
        271.524,
        271.407,
        274.748,
        272.0,
        269.791,
        271.239,
        267.927,
        274.255,
        272.699,
        280.835,
        271.03,
        278.235,
        289.372,
        281.48,
        271.579,
        349.386
      ],
      "wholeTestProcessP95Ms": 336.712,
      "assertions": [
        "legal sysmontap sample reaches Wire",
        "raw-host-to-Wire <= 250ms",
        "heavy source cannot starve lightweight source",
        "frame decoder state is isolated from the ordinary RawMetricEngine"
      ]
    }
  },
  "p95Formula": "nearest-rank: sorted[ceil(0.95*n)]",
  "note": "Rebound after the frame-decoder state-isolation fix. Whole-test wall times include Python process and unittest startup; they are not product boundary metrics. Product boundaries are asserted inside every round."
}
