@@ -119,6 +119,31 @@ def _split_env_list(value: str | None) -> tuple[str, ...]:
119119 )
120120
121121
122+ def _summarize_cycle_result_for_report (cycle_result , * , dry_run : bool ) -> dict :
123+ if cycle_result is None :
124+ return {
125+ "action_done" : False ,
126+ "order_events_count" : 0 ,
127+ "orders_previewed_count" : 0 ,
128+ "orders_skipped_count" : 0 ,
129+ "notes_count" : 0 ,
130+ "dry_run_order_preview_available" : False ,
131+ }
132+ logs = tuple (getattr (cycle_result , "logs" , ()) or ())
133+ skip_logs = tuple (getattr (cycle_result , "skip_logs" , ()) or ())
134+ note_logs = tuple (getattr (cycle_result , "note_logs" , ()) or ())
135+ order_events_count = len (logs )
136+ orders_previewed_count = order_events_count if dry_run else 0
137+ return {
138+ "action_done" : bool (getattr (cycle_result , "action_done" , False )),
139+ "order_events_count" : order_events_count ,
140+ "orders_previewed_count" : orders_previewed_count ,
141+ "orders_skipped_count" : len (skip_logs ),
142+ "notes_count" : len (note_logs ),
143+ "dry_run_order_preview_available" : bool (dry_run and orders_previewed_count > 0 ),
144+ }
145+
146+
122147signal_text = build_signal_text (t )
123148strategy_display_name = build_strategy_display_name (t )(
124149 STRATEGY_PROFILE ,
@@ -431,6 +456,10 @@ def run_strategy(*, force_run: bool = False, validation_only: bool = False, vali
431456 if cycle_result is not None :
432457 execution = dict (getattr (cycle_result , "execution" , {}) or {})
433458 signal_snapshot = dict (execution .get ("signal_snapshot" ) or {})
459+ execution_summary = _summarize_cycle_result_for_report (
460+ cycle_result ,
461+ dry_run = bool (report .get ("dry_run" )),
462+ )
434463 if signal_snapshot :
435464 reporting_adapters .log_event (
436465 log_context ,
@@ -441,6 +470,7 @@ def run_strategy(*, force_run: bool = False, validation_only: bool = False, vali
441470 finalize_runtime_report (
442471 report ,
443472 status = "ok" ,
473+ summary = execution_summary ,
444474 diagnostics = {"signal_snapshot" : signal_snapshot } if signal_snapshot else None ,
445475 )
446476 reporting_adapters .log_event (
0 commit comments