@@ -330,7 +330,23 @@ <h3>
330330 </ details >
331331
332332 <!-- Diff Foldout inside the same container -->
333- {% if trajectory.diff and trajectory.diff.strip() %}
333+ {% if trajectory.diff_by_files and trajectory.diff_by_files %}
334+ < details class ="trajectory-messages-foldout ">
335+ < summary > 📝 Diff (Full) ({{ trajectory.diff_by_files|length }} files)</ summary >
336+ < div class ="trajectory-content ">
337+ < div class ="log-content ">
338+ {% for file_path, file_diff in trajectory.diff_by_files.items() %}
339+ < details class ="foldout ">
340+ < summary > {{ file_path }}</ summary >
341+ < div class ="log-content ">
342+ < pre > < code > {{ file_diff }}</ code > </ pre >
343+ </ div >
344+ </ details >
345+ {% endfor %}
346+ </ div >
347+ </ div >
348+ </ details >
349+ {% elif trajectory.diff and trajectory.diff.strip() %}
334350 < details class ="trajectory-messages-foldout ">
335351 < summary > 📝 Diff (Full)</ summary >
336352 < div class ="trajectory-content ">
@@ -342,7 +358,23 @@ <h3>
342358 {% endif %}
343359
344360 <!-- Incremental Diff Foldout inside the same container -->
345- {% if trajectory.incremental_diff and trajectory.incremental_diff.strip() %}
361+ {% if trajectory.incremental_diff_by_files and trajectory.incremental_diff_by_files %}
362+ < details class ="trajectory-messages-foldout ">
363+ < summary > 🔄 Incremental Diff ({{ trajectory.incremental_diff_by_files|length }} files)</ summary >
364+ < div class ="trajectory-content ">
365+ < div class ="log-content ">
366+ {% for file_path, file_diff in trajectory.incremental_diff_by_files.items() %}
367+ < details class ="foldout ">
368+ < summary > {{ file_path }}</ summary >
369+ < div class ="log-content ">
370+ < pre > < code > {{ file_diff }}</ code > </ pre >
371+ </ div >
372+ </ details >
373+ {% endfor %}
374+ </ div >
375+ </ div >
376+ </ details >
377+ {% elif trajectory.incremental_diff and trajectory.incremental_diff.strip() %}
346378 < details class ="trajectory-messages-foldout ">
347379 < summary > 🔄 Incremental Diff</ summary >
348380 < div class ="trajectory-content ">
@@ -423,14 +455,21 @@ <h3>
423455 < details class ="foldout round-foldout ">
424456 < summary >
425457 🏆 Round {{ round_num }} Results
426- {% if round_data.results.winner %}
427- - Winner: {{ round_data.results.winner }}
428- {% if round_data.results.winner_percentage %}
429- with {{ round_data.results.winner_percentage }}%
430- {% endif %}
431- {% if round_data.results.sorted_scores %}
432- (
433- {%- for player, score in round_data.results.sorted_scores -%}
458+ {% if round_data.results.winner and round_data.results.scores %}
459+ {%- set total_games = round_data.results.scores.values() | sum -%}
460+ {%- set winner = round_data.results.winner -%}
461+ {%- if winner != 'Tie' -%}
462+ {%- set winner_wins = round_data.results.scores.get(winner, 0) -%}
463+ {%- set ties = round_data.results.scores.get('Tie', 0) -%}
464+ {%- set win_percentage = ((winner_wins + 0.5 * ties) / total_games * 100) | round(1) -%}
465+ - Winner: {{ winner }} with {{ win_percentage }}% (
466+ {%- for player, score in round_data.results.scores.items() -%}
467+ {{- score -}}
468+ {%- if not loop.last -%}-{%- endif -%}
469+ {%- endfor -%})
470+ {%- else -%}
471+ - Winner: Tie (
472+ {%- for player, score in round_data.results.scores.items() -%}
434473 {{- score -}}
435474 {%- if not loop.last -%}-{%- endif -%}
436475 {%- endfor -%})
0 commit comments