@@ -74,6 +74,7 @@ pub(super) fn generate_summary(comments: &[Comment]) -> ReviewSummary {
7474 merge_readiness : default_merge_readiness ( open_blockers) ,
7575 verification : ReviewVerificationSummary :: default ( ) ,
7676 readiness_reasons : Vec :: new ( ) ,
77+ loop_telemetry : None ,
7778 }
7879}
7980
@@ -83,6 +84,7 @@ pub(super) fn inherit_review_state(
8384) -> ReviewSummary {
8485 if let Some ( previous) = previous {
8586 summary. verification = previous. verification . clone ( ) ;
87+ summary. loop_telemetry = previous. loop_telemetry . clone ( ) ;
8688 }
8789 apply_review_runtime_state ( summary, false )
8890}
@@ -211,7 +213,7 @@ mod tests {
211213 use std:: path:: PathBuf ;
212214
213215 use super :: * ;
214- use crate :: core:: comment:: { Category , FixEffort } ;
216+ use crate :: core:: comment:: { Category , FixEffort , FixLoopTelemetry } ;
215217
216218 fn make_comment (
217219 id : & str ,
@@ -409,4 +411,26 @@ mod tests {
409411 assert_eq ! ( summary. completeness. fixed_findings, 1 ) ;
410412 assert_eq ! ( summary. completeness. stale_findings, 1 ) ;
411413 }
414+
415+ #[ test]
416+ fn inherit_review_state_preserves_fix_loop_telemetry ( ) {
417+ let previous = ReviewSummary {
418+ loop_telemetry : Some ( FixLoopTelemetry {
419+ iterations : 3 ,
420+ fixes_attempted : 2 ,
421+ findings_cleared : 4 ,
422+ findings_reopened : 1 ,
423+ } ) ,
424+ ..generate_summary ( & [ make_comment (
425+ "open-warning" ,
426+ Severity :: Warning ,
427+ Category :: Bug ,
428+ CommentStatus :: Open ,
429+ ) ] )
430+ } ;
431+
432+ let inherited = inherit_review_state ( generate_summary ( & [ ] ) , Some ( & previous) ) ;
433+
434+ assert_eq ! ( inherited. loop_telemetry, previous. loop_telemetry) ;
435+ }
412436}
0 commit comments