From 8790503e8d5b90e723cd26328d96314837c9b68e Mon Sep 17 00:00:00 2001 From: XianBW <36835909+XianBW@users.noreply.github.com> Date: Tue, 29 Jul 2025 11:56:59 +0800 Subject: [PATCH] fix current_selection maybe empty (#1125) --- rdagent/log/ui/ds_trace.py | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/rdagent/log/ui/ds_trace.py b/rdagent/log/ui/ds_trace.py index c0107071..1ffb485f 100644 --- a/rdagent/log/ui/ds_trace.py +++ b/rdagent/log/ui/ds_trace.py @@ -522,11 +522,16 @@ def main_win(loop_id, llm_data=None): if "running" in loop_data: # get last SOTA_exp_to_submit current_trace = loop_data["record"]["trace"] - parent_idxs = current_trace.get_parents(current_trace.get_current_selection()[0]) - if len(parent_idxs) >= 2 and hasattr(current_trace, "idx2loop_id"): - parent_idx = parent_idxs[-2] - parent_loop_id = current_trace.idx2loop_id[parent_idx] - sota_exp = state.data[parent_loop_id]["record"].get("sota_exp_to_submit", None) + current_selection = current_trace.get_current_selection() + if len(current_selection) > 0: # TODO: Why current_selection can be "()"? + current_idx = current_selection[0] + parent_idxs = current_trace.get_parents(current_idx) + if len(parent_idxs) >= 2 and hasattr(current_trace, "idx2loop_id"): + parent_idx = parent_idxs[-2] + parent_loop_id = current_trace.idx2loop_id[parent_idx] + sota_exp = state.data[parent_loop_id]["record"].get("sota_exp_to_submit", None) + else: + sota_exp = None else: sota_exp = None