Skip to content

Commit 67a7f25

Browse files
fix(temporal): exclude derived-group anchors from coverage denominator
Span/Burst candidates are derived-evidence group containers; their member occurrences are enumerated and counted individually, so admitting the group anchor into the coverage denominator double-counted every grouped message as an extra hidden omission (constant +2 omitted drift). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
1 parent addd946 commit 67a7f25

1 file changed

Lines changed: 10 additions & 0 deletions

File tree

src/query/temporal/mod.rs

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -270,8 +270,18 @@ pub async fn execute_temporal_kernel(
270270
visible_anchors.extend(summary_eligibility.eligible_anchor_ids.clone());
271271
check_control(snapshot)?;
272272
let all_candidates = candidates;
273+
// Span/Burst candidates are derived-evidence group containers; their member
274+
// occurrences are enumerated (and counted) individually, so admitting the
275+
// group anchor into the coverage denominator would double-count every
276+
// grouped message as an extra hidden omission.
273277
let all_candidate_anchors = all_candidates
274278
.iter()
279+
.filter(|candidate| {
280+
!matches!(
281+
candidate.channel,
282+
candidates::CandidateChannel::Span | candidates::CandidateChannel::Burst
283+
)
284+
})
275285
.map(|candidate| candidate.anchor_id.clone())
276286
.collect::<BTreeSet<_>>();
277287
let visible_candidates = all_candidates

0 commit comments

Comments
 (0)