{
  "benchmark": "streaming_vs_reqwest",
  "benchmark_version": "foundation-1",
  "environment": {
    "os": "macos",
    "arch": "aarch64",
    "cpu_count": 16,
    "memory": "not_collected",
    "rustc": "rustc 1.95.0 (59807616e 2026-04-14)",
    "crate_versions": {
      "reqwest": "0.12",
      "specters": "3.1.0"
    }
  },
  "git": {
    "commit_sha": "8edf45a4c3e4be7527a3211ef24590985628e948",
    "dirty_state_classification": "target/validation/state-isolation.json if present; benchmark rows mark dirty evidence ineligible until release gate",
    "release_evidence_eligible": false
  },
  "fixture_config": {
    "fixtures": [
      {
        "protocol": "h1",
        "address": "127.0.0.1:3201",
        "health": "healthy",
        "origin_classification": "localhost-threshold"
      },
      {
        "protocol": "h2",
        "address": "127.0.0.1:3202",
        "health": "healthy",
        "origin_classification": "localhost-threshold"
      },
      {
        "protocol": "h3",
        "address": "127.0.0.1:3203/udp",
        "health": "healthy",
        "origin_classification": "localhost-threshold"
      },
      {
        "protocol": "rfc8441",
        "address": "127.0.0.1:3204",
        "health": "healthy",
        "origin_classification": "localhost-threshold"
      }
    ],
    "deterministic_payload_schedule": [
      0,
      1,
      1,
      1,
      1
    ],
    "pacing_mode": "monotonic_deadline_spin_wait",
    "monotonic_clock_source": "std::time::Instant",
    "inter_chunk_target_deadlines_ms": [
      1,
      2,
      3,
      4
    ],
    "target_inter_chunk_pacing_ms": 1,
    "pacing_implementation": "spin_wait_until(Instant::now() < anchor + i * delay) per H1/H2/H3 fixture chunk emission and request-body producer poll pacing; request producer wakes/yields until PACING_SPIN_LEAD_IN then spin-waits, so no tokio::time::sleep drives inter-chunk pacing"
  },
  "workload": {
    "request_count": 8,
    "concurrency_levels": [
      1,
      8
    ],
    "chunk_size": 16384,
    "chunk_count": 5,
    "payload_schedule_ms": [
      0,
      1,
      1,
      1,
      1
    ],
    "inter_chunk_target_deadlines_ms": [
      1,
      2,
      3,
      4
    ],
    "pacing_mode": "monotonic_deadline_spin_wait",
    "monotonic_clock_source": "std::time::Instant",
    "tokio_runtime": "tokio multi_thread worker_threads=4",
    "pools": "protocol-specific: H1 cold isolated client per sample; H2/H3 warm pooled"
  },
  "measurement_config": {
    "warmup_count": 5,
    "sample_count": 100,
    "thresholded_origins": [
      "127.0.0.1:3201",
      "127.0.0.1:3202"
    ],
    "comparable_clients_share_workload": true,
    "throughput_timing_window": "corrected client overhead: response rows use paired reqwest/Specter sample order and divide by final fixture DATA write-stamp to final observed body-chunk delivery overhead, falling back to fixed fixture schedule overhead if a stamp is unavailable; per-gap response pacing overage is emitted as jitter evidence only; request rows use per-chunk yielded/consumed timestamps with fixture upload-complete as the final endpoint and response headers only as an emitted fallback count; identical for reqwest and Specter"
  },
  "metric_definitions": {
    "actual_send_gap.median_minus_target_ns": "median observed inter-chunk wall-clock gap minus the target inter-chunk pacing (BENCH_CHUNK_DELAY_MS); near-zero values prove monotonic deadline spin-wait is in effect rather than scheduler-sleep jitter",
    "actual_send_gap.median_ns": "client-observed median wall-clock interval in nanoseconds between successive received body chunks across all samples on this row; with monotonic deadline spin-wait fixture pacing this should track BENCH_CHUNK_DELAY_MS at microsecond-scale precision",
    "actual_send_gap.over_budget_fraction": "fraction of observed inter-chunk gaps that exceeded the target pacing by more than 500us; intended as a guard against scheduler-sleep regressions in the fixture",
    "actual_send_gap.p95_ns": "client-observed p95 wall-clock interval in nanoseconds between successive received body chunks across all samples on this row; releases require this to remain near BENCH_CHUNK_DELAY_MS so scheduler/kqueue jitter cannot dominate the corrected client-overhead denominator",
    "body_transfer_duration_ns": "median raw body-transfer duration denominator in nanoseconds before subtracting fixture pacing; response rows measure first observed response body byte through final observed response body byte, while request rows measure first yielded request body chunk through fixture upload-complete",
    "bytes_per_sec": "median body bytes per second over samples; response rows divide decoded response body bytes by final fixture DATA write-stamp to final observed body-chunk delivery overhead, falling back to fixed fixture schedule overhead if a stamp is unavailable; request rows divide uploaded request body bytes by corrected upload-complete write-overhead duration; applied identically to reqwest and Specter",
    "chunks_per_sec": "response rows: decoded body chunks received divided by corrected client-overhead duration; request rows: uploaded request chunks divided by corrected upload-complete write-overhead duration",
    "client_overhead_denominator_floor_count": "number of measured samples whose corrected client-overhead denominator reached the 1ns floor/clamp",
    "client_overhead_duration_ns": "median corrected client-overhead duration denominator in nanoseconds; gates response-row bytes_per_sec and chunks_per_sec using final fixture DATA write-stamp delivery overhead, and gates request-row TTFT, bytes_per_sec, and chunks_per_sec using the corrected upload-complete write-overhead timing window",
    "client_overhead_unclamped_duration_ns": "median corrected client-overhead denominator before applying the 1ns floor; response rows use final fixture DATA write-stamp delivery overhead with fixed-schedule fallback and request rows use corrected upload-complete write-overhead",
    "client_write_overhead_denominator_floor_count": "request-row denominator evidence: number of measured request uploads whose per-chunk write-overhead denominator reached the 1ns floor/clamp",
    "client_write_overhead_duration_ns": "request-row denominator evidence: median sum across chunks of (consumed_at - yielded_at - scheduled_gap) where consumed_at[i<N-1] is the wall-clock at the start of the next poll_next call and consumed_at[N-1] is the fixture upload-complete timestamp; used as the request-row threshold denominator",
    "client_write_overhead_unclamped_duration_ns": "request-row denominator evidence: median per-sample client_write_overhead_duration_ns before applying the 1ns floor",
    "connection_reuse_count": "number of requests after the first that used an existing warm connection",
    "fixture.monotonic_clock_source": "std::time::Instant: monotonic clock used by the fixture deadline computation and by the client inter-chunk receive timestamps reported under actual_send_gap",
    "fixture.pacing_mode": "monotonic_deadline_spin_wait: each H1/H2/H3 fixture chunk and request-body producer chunk is sent at anchor + i*delay using std::time::Instant deadlines and a spin-wait loop, not tokio::time::sleep inter-chunk pacing; this removes macOS scheduler/kqueue jitter from the corrected client-overhead denominator",
    "p50_ns": "nearest-rank 50th percentile over sample TTFT values",
    "p95_bytes_per_sec": "nearest-rank 95th percentile of body bytes per second over samples using the same corrected client-overhead duration denominator as bytes_per_sec; enforced for comparable H1/H2 threshold rows so p95 throughput cannot regress by more than the additive 5% budget",
    "p95_ns": "nearest-rank 95th percentile over sample TTFT values",
    "p95_regression_allowed_pct": "5 means additive p95 budgets allow Specter p95 throughput or p95 TTFT to regress versus reqwest by at most 5%; median TTFT and median throughput still must each improve by at least 5%",
    "p99_ns": "nearest-rank 99th percentile over sample TTFT values",
    "ttft_ns": "response rows: elapsed nanoseconds from request start until first response body byte is observable; request rows: corrected upload-complete write-overhead in nanoseconds using per-chunk yielded/consumed timestamps and the fixture upload-complete timestamp as the final endpoint",
    "upload_complete_fallback_count": "request-row evidence: number of request uploads that could not match the fixture upload-complete timestamp and therefore fell back to response-headers timing; release evidence should be zero",
    "wilcoxon_signed_rank_p_value": "one-sided paired Wilcoxon signed-rank normal-approximation p-value over matched reqwest/Specter samples; TTFT ranks baseline minus Specter as improvement, corrected-overhead throughput ranks Specter minus baseline as improvement, and threshold rows require p < 0.01 for both median deltas"
  },
  "rows": [
    {
      "protocol": "h2",
      "client": "reqwest",
      "direction": "response",
      "endpoint": "127.0.0.1:3202",
      "comparable": true,
      "comparison_mode": "reqwest_comparable",
      "skip_reason": null,
      "measurement_source": "localhost_paired_real_measurement",
      "client_config": {
        "runtime": "tokio multi_thread worker_threads=4",
        "payload_schedule_ms": [
          0,
          1,
          1,
          1,
          1
        ],
        "chunk_size": 16384,
        "request_count": 8,
        "concurrency": 1,
        "warmup_count": 5,
        "sample_count": 100,
        "decompression": "disabled",
        "byte_accounting": "body bytes only; headers excluded"
      },
      "metrics": {
        "ttft_ns": 108708.5,
        "chunks_per_sec": 90776.2706521409,
        "bytes_per_sec": 1487278418.3646765,
        "p95_bytes_per_sec": 1661803263.458295,
        "body_transfer_duration_ns": 32032957.5,
        "client_overhead_duration_ns": 440645.0,
        "client_overhead_unclamped_duration_ns": 440645.0,
        "client_overhead_denominator_floor_count": 0,
        "client_write_overhead_denominator_floor_count": 0,
        "upload_complete_fallback_count": 0,
        "p50_ns": 108708.5,
        "p95_ns": 126331.65,
        "p99_ns": 136028.84000000023,
        "warmup_count": 5,
        "sample_count": 100,
        "connection_reuse_count": 839,
        "pass": true,
        "actual_send_gap": {
          "target_ms": 1,
          "sample_count": 3200,
          "median_ns": 1000854.0,
          "p95_ns": 1020209.0,
          "min_ns": 6500.0,
          "max_ns": 5419875.0,
          "median_minus_target_ns": 854.0,
          "p95_minus_target_ns": 20209.0,
          "over_budget_fraction": 0.0009375,
          "measurement_source": "client_observed_inter_chunk_receive_gap_using_std_time_instant_monotonic_clock"
        },
        "ttft_samples_ns": [
          102417.0,
          113229.0,
          100458.0,
          98417.0,
          180167.0,
          116104.0,
          119396.0,
          107584.0,
          103125.0,
          101853.0,
          99271.0,
          108834.0,
          96104.0,
          127271.0,
          112021.0,
          107000.0,
          113708.0,
          111166.0,
          104666.0,
          110437.0,
          98729.0,
          106999.0,
          108396.0,
          109125.0,
          97854.0,
          101000.0,
          116542.0,
          121729.0,
          117395.0,
          127104.0,
          125770.0,
          111146.0,
          106874.0,
          113770.0,
          101229.0,
          114104.0,
          113312.0,
          113208.0,
          103833.0,
          108416.0,
          96708.0,
          117167.0,
          94271.0,
          115125.0,
          116562.0,
          119020.0,
          102979.0,
          102396.0,
          96292.0,
          133146.0,
          99687.0,
          112708.0,
          109583.0,
          115958.0,
          107562.0,
          108583.0,
          100083.0,
          100062.0,
          95896.0,
          135583.0,
          126271.0,
          121562.0,
          125979.0,
          117749.0,
          110354.0,
          113375.0,
          108354.0,
          119584.0,
          113896.0,
          106021.0,
          113583.0,
          108000.0,
          124625.0,
          109541.0,
          103416.0,
          109312.0,
          109417.0,
          113416.0,
          105875.0,
          110834.0,
          106520.0,
          108313.0,
          96812.0,
          112896.0,
          100833.0,
          110417.0,
          100813.0,
          106979.0,
          96896.0,
          126291.0,
          121646.0,
          116146.0,
          107229.0,
          95333.0,
          107042.0,
          105624.0,
          101187.0,
          108145.0,
          107000.0,
          99458.0
        ],
        "bytes_per_sec_samples": [
          1651300787.4015749,
          1407481540.979241,
          1357204245.4051256,
          1162245466.185708,
          1172643565.4548252,
          1317301236.9799519,
          1621853044.3153725,
          1645768930.3858025,
          1351611659.135485,
          1552522232.698294,
          1448174976.024325,
          1665823621.3667502,
          1559448995.9571779,
          1046133905.0121397,
          1511355460.0298877,
          1608083603.8582623,
          1554208524.2418206,
          1483839561.6587234,
          1433395741.106892,
          1628895395.3680274,
          1694159008.3627388,
          1510773621.398323,
          1471479090.6539433,
          1499247356.5974114,
          1609892822.8395684,
          1652508289.5217922,
          1307670512.3651643,
          1252080081.464683,
          1461901033.475874,
          1440880498.996335,
          1563328944.10412,
          1280830538.5523427,
          1661591665.6736398,
          1655296438.394916,
          1653905362.7760253,
          1446838572.9424233,
          1551757613.642283,
          1532855251.6477914,
          1441936193.6193619,
          1536902930.471652,
          1569878718.6286557,
          1474372386.113867,
          1484814500.141603,
          1603974693.1483045,
          1367350174.8412242,
          1470379710.4830966,
          1411024056.0482457,
          1629243650.6831605,
          1556822500.950209,
          1261622691.34367,
          1511787773.9331026,
          1379580374.829226,
          1508023802.182327,
          1473404482.5345721,
          1442990259.1111658,
          1477010730.0538418,
          1473268680.0019782,
          1653033478.871712,
          1705733843.4710183,
          1344904789.950974,
          1391791876.8250597,
          1428443764.3991954,
          1405094582.7446256,
          1428973252.540758,
          1477147223.361718,
          1480621293.4199378,
          827604321.8887806,
          1623685351.502013,
          1414700485.6988666,
          1456083753.254948,
          1589553035.2274601,
          1407112859.314479,
          1343182023.1351297,
          1409752278.0268285,
          1691430577.1707458,
          1659311472.836421,
          636375023.911644,
          1661242078.5804815,
          1570510746.6971488,
          1366281190.9095268,
          1524238357.610842,
          1558673833.4205394,
          1477143893.9565034,
          1574120778.0291786,
          1355803166.9059567,
          1682200290.052235,
          1640791453.5435398,
          1610878146.8608818,
          1432355641.0368493,
          1409379375.0094085,
          1489742336.58775,
          1650785014.5718253,
          1576168910.972527,
          1463536642.0123627,
          1542328366.07706,
          1495835644.3281908,
          1543232697.6195467,
          1469005323.6200616,
          1526755969.7146184,
          1600875478.7774565
        ],
        "response_gap_overhead_by_index_ns": [
          2187.5,
          0.0,
          0.0,
          2541.5
        ]
      },
      "threshold": {
        "required": true,
        "ttft_improvement_required_pct": 5.0,
        "throughput_improvement_required_pct": 5.0,
        "throughput_regression_allowed_pct": 5.0,
        "p95_regression_allowed_pct": 5.0,
        "wilcoxon_p_value_required_less_than": 0.01,
        "reqwest_median_ttft_ns": 108708.5,
        "specter_median_ttft_ns": 81250.0,
        "ttft_improvement_pct": 25.25883440577324,
        "ttft_wilcoxon_signed_rank_p_value": 0.0,
        "reqwest_median_bytes_per_sec": 1487278418.3646765,
        "specter_median_bytes_per_sec": 1603571955.3792446,
        "throughput_improvement_pct": 7.8192176783172584,
        "throughput_wilcoxon_signed_rank_p_value": 1.036928276576532e-8,
        "median_throughput_regression_pct": -7.8192176783172584,
        "reqwest_p95_bytes_per_sec": 1661803263.458295,
        "specter_p95_bytes_per_sec": 1765427029.9098036,
        "p95_throughput_regression_pct": -6.235621792910812,
        "reqwest_p95_ttft_ns": 126331.65,
        "specter_p95_ttft_ns": 93884.84999999999,
        "p95_ttft_regression_pct": -25.68382507471406,
        "status": "pass",
        "reason": "deterministic localhost reqwest baseline row; excluded as a failing threshold subject but included in threshold math"
      },
      "specter_api_path": null,
      "protocol_selected_by_normal_dispatch": false,
      "pool_reuse_metadata": {
        "connection_reuse_count": 839,
        "cold_or_warm_pool": "warm"
      }
    },
    {
      "protocol": "h2",
      "client": "specter",
      "direction": "response",
      "endpoint": "127.0.0.1:3202",
      "comparable": true,
      "comparison_mode": "reqwest_comparable",
      "skip_reason": null,
      "measurement_source": "localhost_paired_real_measurement",
      "client_config": {
        "runtime": "tokio multi_thread worker_threads=4",
        "payload_schedule_ms": [
          0,
          1,
          1,
          1,
          1
        ],
        "chunk_size": 16384,
        "request_count": 8,
        "concurrency": 1,
        "warmup_count": 5,
        "sample_count": 100,
        "decompression": "disabled",
        "byte_accounting": "body bytes only; headers excluded"
      },
      "metrics": {
        "ttft_ns": 81250.0,
        "chunks_per_sec": 97874.26485469022,
        "bytes_per_sec": 1603571955.3792446,
        "p95_bytes_per_sec": 1765427029.9098036,
        "body_transfer_duration_ns": 32069437.0,
        "client_overhead_duration_ns": 408688.0,
        "client_overhead_unclamped_duration_ns": 408688.0,
        "client_overhead_denominator_floor_count": 0,
        "client_write_overhead_denominator_floor_count": 0,
        "upload_complete_fallback_count": 0,
        "p50_ns": 81250.0,
        "p95_ns": 93884.84999999999,
        "p99_ns": 101699.24000000008,
        "warmup_count": 5,
        "sample_count": 100,
        "connection_reuse_count": 839,
        "pass": true,
        "actual_send_gap": {
          "target_ms": 1,
          "sample_count": 3200,
          "median_ns": 1002146.0,
          "p95_ns": 1020835.1,
          "min_ns": 567791.0,
          "max_ns": 1434250.0,
          "median_minus_target_ns": 2146.0,
          "p95_minus_target_ns": 20835.099999999977,
          "over_budget_fraction": 0.0,
          "measurement_source": "client_observed_inter_chunk_receive_gap_using_std_time_instant_monotonic_clock"
        },
        "ttft_samples_ns": [
          76563.0,
          82000.0,
          80208.0,
          75792.0,
          82124.0,
          86645.0,
          81104.0,
          80125.0,
          89208.0,
          65062.0,
          78562.0,
          80167.0,
          86709.0,
          73021.0,
          84396.0,
          80562.0,
          76375.0,
          67750.0,
          86666.0,
          95250.0,
          74812.0,
          81000.0,
          84416.0,
          75833.0,
          79041.0,
          76292.0,
          115187.0,
          78104.0,
          80979.0,
          74229.0,
          83812.0,
          80792.0,
          84062.0,
          76750.0,
          88875.0,
          76062.0,
          81083.0,
          87166.0,
          75166.0,
          76833.0,
          87978.0,
          75479.0,
          78583.0,
          88770.0,
          91250.0,
          83125.0,
          89166.0,
          81562.0,
          83833.0,
          81688.0,
          79270.0,
          77125.0,
          81875.0,
          67895.0,
          84770.0,
          89625.0,
          81583.0,
          81167.0,
          80104.0,
          84791.0,
          86104.0,
          71417.0,
          82271.0,
          88729.0,
          82416.0,
          85500.0,
          100229.0,
          93813.0,
          84604.0,
          77625.0,
          90749.0,
          77104.0,
          77083.0,
          80083.0,
          86895.0,
          80645.0,
          95833.0,
          89645.0,
          81687.0,
          88208.0,
          89416.0,
          76166.0,
          80021.0,
          69875.0,
          80437.0,
          78563.0,
          77270.0,
          81333.0,
          82354.0,
          83145.0,
          88104.0,
          101563.0,
          83687.0,
          81000.0,
          88000.0,
          85479.0,
          78646.0,
          70625.0,
          74208.0,
          75854.0
        ],
        "bytes_per_sec_samples": [
          1667765175.3245265,
          1594386948.2923884,
          1655823401.7448604,
          1720854755.6153076,
          1715413488.5693195,
          1602018167.4179387,
          1605125743.3405504,
          1466264243.4764712,
          1409124822.8810773,
          1671649100.611156,
          1809137336.0938578,
          1277915898.8758566,
          1583955489.9226344,
          1725957841.2885692,
          1663704952.324861,
          1764091520.861373,
          1565663201.8022711,
          1635668433.7156947,
          1634143057.3356407,
          1677356607.2022727,
          1872676513.5344427,
          1608904753.6045446,
          1693441068.323174,
          1741246738.6163762,
          1739125819.660168,
          1440225035.161744,
          1348477366.2551441,
          1540664119.8942108,
          1500541500.953637,
          1667234826.3212256,
          1549006816.6132493,
          1565195792.772051,
          1494696173.1709154,
          1551452711.4202316,
          1672195062.2072077,
          1657741701.2999167,
          1563638532.6573217,
          1628729419.0742466,
          1598271400.8043058,
          1790801701.8299863,
          1685093953.4501023,
          1524834163.5818338,
          1549926330.2533152,
          1744333365.2730312,
          1475623924.8498168,
          1718030724.0601897,
          1583947833.3587108,
          1497674737.4795754,
          1304087411.42549,
          1475341562.1925716,
          1566905996.6383822,
          1670592313.888634,
          1725017438.1111565,
          1612376247.3674886,
          1427796453.6024976,
          1545204833.4806955,
          1455821754.2456656,
          1667939203.2902708,
          1648534365.008892,
          1705551839.8130388,
          1567846889.952153,
          1555134225.719418,
          1628725371.2945106,
          1664051351.5846777,
          1499110177.8271868,
          2030820527.5993395,
          1636178887.1606793,
          1694163387.9131618,
          1738544510.1456656,
          1666870142.0258007,
          1496966596.0090637,
          1566127147.4624755,
          1693077952.475186,
          1698743620.2503426,
          1673087282.075633,
          1742209556.4192405,
          1405100607.827793,
          1551144257.6467276,
          1550685476.04738,
          1513390187.0723557,
          1510627361.2196398,
          1528982210.5570135,
          1665459554.1053264,
          1555754435.025365,
          1556212525.9720986,
          1621339455.5786734,
          1523058760.097794,
          1554824306.4666512,
          1309415821.8414457,
          1613189875.2249224,
          1800024170.2464268,
          1439437368.3528485,
          1693979466.2889402,
          1528985777.7445967,
          1582674046.811758,
          1672186528.814701,
          1522619976.9525297,
          1439295110.8417118,
          1726717271.651811,
          1593413940.913169
        ],
        "response_gap_overhead_by_index_ns": [
          6541.5,
          0.0,
          812.5,
          2437.5
        ]
      },
      "threshold": {
        "required": true,
        "ttft_improvement_required_pct": 5.0,
        "throughput_improvement_required_pct": 5.0,
        "throughput_regression_allowed_pct": 5.0,
        "p95_regression_allowed_pct": 5.0,
        "wilcoxon_p_value_required_less_than": 0.01,
        "reqwest_median_ttft_ns": 108708.5,
        "specter_median_ttft_ns": 81250.0,
        "ttft_improvement_pct": 25.25883440577324,
        "ttft_wilcoxon_signed_rank_p_value": 0.0,
        "reqwest_median_bytes_per_sec": 1487278418.3646765,
        "specter_median_bytes_per_sec": 1603571955.3792446,
        "throughput_improvement_pct": 7.8192176783172584,
        "throughput_wilcoxon_signed_rank_p_value": 1.036928276576532e-8,
        "median_throughput_regression_pct": -7.8192176783172584,
        "reqwest_p95_bytes_per_sec": 1661803263.458295,
        "specter_p95_bytes_per_sec": 1765427029.9098036,
        "p95_throughput_regression_pct": -6.235621792910812,
        "reqwest_p95_ttft_ns": 126331.65,
        "specter_p95_ttft_ns": 93884.84999999999,
        "p95_ttft_regression_pct": -25.68382507471406,
        "status": "pass",
        "reason": "deterministic localhost reqwest-comparable threshold: Specter median TTFT must improve by >=5%, median throughput must improve by >=5% using final fixture DATA write-stamp delivery overhead for response rows, paired Wilcoxon signed-rank p-values for TTFT and corrected-overhead throughput must be <0.01, p95 throughput must not regress by more than 5%, and p95 TTFT must not regress by more than 5%"
      },
      "specter_api_path": "specter::Client -> RequestBuilder::send_streaming -> specter::Body::chunk",
      "protocol_selected_by_normal_dispatch": true,
      "pool_reuse_metadata": {
        "connection_reuse_count": 839,
        "cold_or_warm_pool": "warm"
      }
    }
  ],
  "rfc8441_coexistence": {
    "concurrency_level": 2,
    "tunnel_stream_id": 1,
    "streaming_stream_id": 3,
    "messages_sent": [
      "bench-coexist-msg"
    ],
    "messages_received": [
      "bench-coexist-msg"
    ],
    "chunks_received": [
      "",
      "",
      "",
      "",
      ""
    ],
    "contamination_detected": false,
    "status": "pass"
  },
  "h3_gate": {
    "fixture_address": "127.0.0.1:3203/udp",
    "comparison_mode": "reqwest_h3_unavailable_specter_regression_gate",
    "reqwest_comparison_available": false,
    "reqwest_unavailable_reason": "reqwest 0.12 in this benchmark profile lacks a stable, directly comparable high-level HTTP/3 streaming mode; H3 release evidence uses the local Specter regression gate instead",
    "specter_thresholds": {
      "max_median_ttft_p50_ns": 2000000.0,
      "min_median_bytes_per_sec": 30000.0,
      "min_median_chunks_per_sec": 2000.0,
      "min_connection_reuse_count": 1
    },
    "specter_metrics": {
      "ttft_ns": 0.0,
      "chunks_per_sec": 0.0,
      "bytes_per_sec": 0.0,
      "p95_bytes_per_sec": 0.0,
      "body_transfer_duration_ns": 0.0,
      "client_overhead_duration_ns": 0.0,
      "client_overhead_denominator_floor_count": 0,
      "client_write_overhead_denominator_floor_count": 0,
      "upload_complete_fallback_count": 0,
      "p50_ns": 0.0,
      "p95_ns": 0.0,
      "p99_ns": 0.0,
      "warmup_count": 5,
      "sample_count": 100,
      "connection_reuse_count": 0,
      "pass": true,
      "actual_send_gap": {
        "target_ms": 1,
        "sample_count": 0,
        "median_ns": 0.0,
        "p95_ns": 0.0,
        "min_ns": 0.0,
        "max_ns": 0.0,
        "median_minus_target_ns": 0.0,
        "p95_minus_target_ns": 0.0,
        "over_budget_fraction": 0.0,
        "measurement_source": "client_observed_inter_chunk_receive_gap_using_std_time_instant_monotonic_clock"
      }
    },
    "pass": true,
    "status": "skipped_by_protocol_filter"
  },
  "threshold_summary": {
    "required_thresholds_passed": true,
    "failed_rows": [],
    "negative_threshold_self_check": "implemented: --require-thresholds exits non-zero when required_thresholds_passed is false; --self-test-threshold-failure induces required H1/H2 comparable threshold failures, including median win and p95 regression failures; Wilcoxon p-value failures are part of the same required_thresholds_passed gate; --self-test-h3-threshold-failure induces an H3 gate failure"
  },
  "public_provider_threshold_inputs": [],
  "port_preflight": {
    "checked_range": "127.0.0.1:3200-3299",
    "tcp_ports_clear_before_start": true,
    "udp_ports_clear_before_start": true
  },
  "cleanup": {
    "fixture_shutdown_status": "all fixture tasks aborted before process exit",
    "post_run_tcp_scan_clear": true,
    "post_run_udp_scan_clear": true
  }
}