): { isDraft: boolean; prArgs: string[] } {
const converged = loopResult.status === 'converged'
const isDraft = !converged || !validationPassed
+ const lastFindings = loopResult.roundHistory.at(-1)?.findings ?? []
const outstandingNote =
- loopResult.lastFindings.length > 0
- ? `\n\n${converged ? 'ℹ️ Known findings (not addressed):' : '⚠️ Outstanding findings:'}\n${loopResult.lastFindings.map(f => `- [${f.severity}] ${f.file}: ${f.title}`).join('\n')}`
+ lastFindings.length > 0
+ ? `\n\n${converged ? 'ℹ️ Known findings (not addressed):' : '⚠️ Outstanding findings:'}\n${lastFindings.map(f => `- [${f.severity}] ${f.file}: ${f.title}`).join('\n')}`
: ''
const validationNote = !validationPassed
? '\n\n⚠️ Validation did not pass. Manual review required.'
baseBranch: string
/** Reason for non-converged termination, if applicable. */
failureReason?: string
- /** Outstanding findings from the last round. */
- lastFindings: Finding[]
- /**
- * Complete findings history across all rounds.
- * Authoritative source — `lastFindings` is kept for backward compatibility.
- */
+ /** Complete findings history across all rounds. */
roundHistory: RoundSnapshot[]
/** Number of main-loop rounds completed (excludes post-loop validation retry). */
roundsCompleted: number