From eb10eb1688b6dac56a744274c49038d88e663d31 Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Fri, 1 May 2026 23:28:49 +0000 Subject: [PATCH] fix: respect zero policy sample thresholds Co-authored-by: Gottam Sai Bharath --- src/flightdeck/ledger.py | 8 +++++--- tests/test_ledger.py | 24 ++++++++++++++++++++++++ 2 files changed, 29 insertions(+), 3 deletions(-) diff --git a/src/flightdeck/ledger.py b/src/flightdeck/ledger.py index 5da122a..3b90793 100644 --- a/src/flightdeck/ledger.py +++ b/src/flightdeck/ledger.py @@ -183,9 +183,11 @@ def diff_releases( candidate_rollup = compute_rollup(candidate_events, candidate_pricing_table) # Confidence (policy can override thresholds; otherwise take config defaults) - min_candidate_runs = policy.min_candidate_runs or cfg.diff.min_candidate_runs - min_baseline_runs = policy.min_baseline_runs or cfg.diff.min_baseline_runs - min_low_runs = policy.min_low_runs or cfg.diff.min_low_runs + min_candidate_runs = ( + policy.min_candidate_runs if policy.min_candidate_runs is not None else cfg.diff.min_candidate_runs + ) + min_baseline_runs = policy.min_baseline_runs if policy.min_baseline_runs is not None else cfg.diff.min_baseline_runs + min_low_runs = policy.min_low_runs if policy.min_low_runs is not None else cfg.diff.min_low_runs label = confidence_label( baseline_rollup.runs, diff --git a/tests/test_ledger.py b/tests/test_ledger.py index aad8e8c..270fef5 100644 --- a/tests/test_ledger.py +++ b/tests/test_ledger.py @@ -89,3 +89,27 @@ def test_diff_releases_rejects_mixed_agents_within_side() -> None: candidate_pricing_table=table, window="7d", ) + + +def test_diff_releases_respects_zero_policy_sample_thresholds() -> None: + cfg = WorkspaceConfig() + policy = Policy( + min_baseline_runs=0, + min_candidate_runs=0, + min_low_runs=0, + require_high_diff_confidence=True, + ) + table = _pricing_table() + + result = diff_releases( + cfg=cfg, + policy=policy, + baseline_events=[], + candidate_events=[], + baseline_pricing_table=table, + candidate_pricing_table=table, + window="7d", + ) + + assert result.confidence == "HIGH" + assert result.policy.passed