@@ -926,24 +926,25 @@ def _process_reasoning_chunk(
926926 public_conviction = max (0.0 , min (1.0 , public_conviction ))
927927
928928 public_will_share = response .will_share
929- public_position = response .position
929+ candidate_public_position = response .public_position or response .position
930+ public_position = candidate_public_position
930931
931932 if (
932933 old_public_conviction is not None
933934 and old_public_conviction >= _FIRM_CONVICTION
934935 ):
935936 if (
936937 old_public_position is not None
937- and response . position is not None
938- and old_public_position != response . position
938+ and candidate_public_position is not None
939+ and old_public_position != candidate_public_position
939940 ):
940941 new_conviction = (
941942 public_conviction if public_conviction is not None else 0.0
942943 )
943944 if new_conviction < _MODERATE_CONVICTION :
944945 logger .info (
945946 f"[CONVICTION] Agent { agent_id } : public flip from { old_public_position } "
946- f"to { response . position } rejected (old conviction={ float_to_conviction (old_public_conviction )} , "
947+ f"to { candidate_public_position } rejected (old conviction={ float_to_conviction (old_public_conviction )} , "
947948 f"new conviction={ float_to_conviction (public_conviction )} )"
948949 )
949950 public_position = old_public_position
@@ -2041,6 +2042,7 @@ def _export_results(self) -> None:
20412042 "population_size" : len (self .agents ),
20422043 "strong_model" : self .config .strong ,
20432044 "fast_model" : self .config .fast ,
2045+ "fidelity" : self .config .fidelity ,
20442046 "seed" : self .seed ,
20452047 "multi_touch_threshold" : self .config .multi_touch_threshold ,
20462048 "completed_at" : datetime .now ().isoformat (),
0 commit comments