Skip to content

Release 2.1.195 (2026-08-12)

Bug fixes

  • reject empty gate payloads in completeness validation (#2825) The CI-evidence completeness check only verified a required gate's artifact NAME was present. For ~4 weeks the test/audit/quality gates shipped EMPTY payloads (just an evidence.json envelope, no report files) and the check passed them green even though the gate is enforcing. This hardens the check: a required gate is complete only if it is present AND carries at least one report file besides evidence.json.

The crucial detail is that load_gate_evidence builds GateEvidence.files from gate_dir.rglob glob, which always includes evidence.json itself, so an empty gate still has one file. A naive len(files) > 0 would not catch the bug. A new _has_report_payload helper counts report files EXCLUDING evidence.json. validate_completeness now collects both failure modes and IncompleteEvidenceError distinguishes them via .missing (absent) and .empty_payload (present but no report file), with an actionable message for each.

CI Evidence: All gates passed — full audit bundle available. Download →