@@ -33,8 +33,19 @@ fn assistant_message(text: &str) -> ResponseItem {
3333 }
3434}
3535
36+ fn previous_turn_settings (
37+ model : impl Into < String > ,
38+ realtime_active : Option < bool > ,
39+ ) -> PreviousTurnSettings {
40+ PreviousTurnSettings {
41+ model : model. into ( ) ,
42+ realtime_active,
43+ }
44+ }
45+
3646#[ tokio:: test]
37- async fn record_initial_history_resumed_bare_turn_context_does_not_hydrate_previous_model ( ) {
47+ async fn record_initial_history_resumed_bare_turn_context_does_not_hydrate_previous_turn_settings ( )
48+ {
3849 let ( session, turn_context) = make_session_and_context ( ) . await ;
3950 let previous_model = "previous-rollout-model" ;
4051 let previous_context_item = TurnContextItem {
@@ -66,12 +77,12 @@ async fn record_initial_history_resumed_bare_turn_context_does_not_hydrate_previ
6677 } ) )
6778 . await ;
6879
69- assert_eq ! ( session. previous_model ( ) . await , None ) ;
80+ assert_eq ! ( session. previous_turn_settings ( ) . await , None ) ;
7081 assert ! ( session. reference_context_item( ) . await . is_none( ) ) ;
7182}
7283
7384#[ tokio:: test]
74- async fn record_initial_history_resumed_hydrates_previous_model_from_lifecycle_turn_with_missing_turn_context_id ( )
85+ async fn record_initial_history_resumed_hydrates_previous_turn_settings_from_lifecycle_turn_with_missing_turn_context_id ( )
7586 {
7687 let ( session, turn_context) = make_session_and_context ( ) . await ;
7788 let previous_model = "previous-rollout-model" ;
@@ -134,8 +145,11 @@ async fn record_initial_history_resumed_hydrates_previous_model_from_lifecycle_t
134145 . await ;
135146
136147 assert_eq ! (
137- session. previous_model( ) . await ,
138- Some ( previous_model. to_string( ) )
148+ session. previous_turn_settings( ) . await ,
149+ Some ( previous_turn_settings(
150+ previous_model,
151+ Some ( turn_context. realtime_active) ,
152+ ) )
139153 ) ;
140154}
141155
@@ -222,8 +236,11 @@ async fn reconstruct_history_rollback_keeps_history_and_metadata_in_sync_for_com
222236 vec![ turn_one_user, turn_one_assistant]
223237 ) ;
224238 assert_eq ! (
225- reconstructed. previous_model,
226- Some ( turn_context. model_info. slug. clone( ) )
239+ reconstructed. previous_turn_settings,
240+ Some ( previous_turn_settings(
241+ turn_context. model_info. slug. clone( ) ,
242+ Some ( turn_context. realtime_active) ,
243+ ) )
227244 ) ;
228245 assert_eq ! (
229246 serde_json:: to_value( reconstructed. reference_context_item)
@@ -301,8 +318,11 @@ async fn reconstruct_history_rollback_keeps_history_and_metadata_in_sync_for_inc
301318 vec![ turn_one_user, turn_one_assistant]
302319 ) ;
303320 assert_eq ! (
304- reconstructed. previous_model,
305- Some ( turn_context. model_info. slug. clone( ) )
321+ reconstructed. previous_turn_settings,
322+ Some ( previous_turn_settings(
323+ turn_context. model_info. slug. clone( ) ,
324+ Some ( turn_context. realtime_active) ,
325+ ) )
306326 ) ;
307327 assert_eq ! (
308328 serde_json:: to_value( reconstructed. reference_context_item)
@@ -404,8 +424,11 @@ async fn reconstruct_history_rollback_skips_non_user_turns_for_history_and_metad
404424 vec![ turn_one_user, turn_one_assistant]
405425 ) ;
406426 assert_eq ! (
407- reconstructed. previous_model,
408- Some ( turn_context. model_info. slug. clone( ) )
427+ reconstructed. previous_turn_settings,
428+ Some ( previous_turn_settings(
429+ turn_context. model_info. slug. clone( ) ,
430+ Some ( turn_context. realtime_active) ,
431+ ) )
409432 ) ;
410433 assert_eq ! (
411434 serde_json:: to_value( reconstructed. reference_context_item)
@@ -458,7 +481,7 @@ async fn reconstruct_history_rollback_clears_history_and_metadata_when_exceeding
458481 . await ;
459482
460483 assert_eq ! ( reconstructed. history, Vec :: new( ) ) ;
461- assert_eq ! ( reconstructed. previous_model , None ) ;
484+ assert_eq ! ( reconstructed. previous_turn_settings , None ) ;
462485 assert ! ( reconstructed. reference_context_item. is_none( ) ) ;
463486}
464487
@@ -521,7 +544,7 @@ async fn record_initial_history_resumed_rollback_skips_only_user_turns() {
521544 } ) )
522545 . await ;
523546
524- assert_eq ! ( session. previous_model ( ) . await , None ) ;
547+ assert_eq ! ( session. previous_turn_settings ( ) . await , None ) ;
525548 assert ! ( session. reference_context_item( ) . await . is_none( ) ) ;
526549}
527550
@@ -591,8 +614,11 @@ async fn record_initial_history_resumed_rollback_drops_incomplete_user_turn_comp
591614 . await ;
592615
593616 assert_eq ! (
594- session. previous_model( ) . await ,
595- Some ( turn_context. model_info. slug. clone( ) )
617+ session. previous_turn_settings( ) . await ,
618+ Some ( previous_turn_settings(
619+ turn_context. model_info. slug. clone( ) ,
620+ Some ( turn_context. realtime_active) ,
621+ ) )
596622 ) ;
597623 assert_eq ! (
598624 serde_json:: to_value( session. reference_context_item( ) . await )
@@ -639,7 +665,7 @@ async fn record_initial_history_resumed_does_not_seed_reference_context_item_aft
639665 } ) )
640666 . await ;
641667
642- assert_eq ! ( session. previous_model ( ) . await , None ) ;
668+ assert_eq ! ( session. previous_turn_settings ( ) . await , None ) ;
643669 assert ! ( session. reference_context_item( ) . await . is_none( ) ) ;
644670}
645671
@@ -783,8 +809,11 @@ async fn record_initial_history_resumed_turn_context_after_compaction_reestablis
783809 . await ;
784810
785811 assert_eq ! (
786- session. previous_model( ) . await ,
787- Some ( previous_model. to_string( ) )
812+ session. previous_turn_settings( ) . await ,
813+ Some ( previous_turn_settings(
814+ previous_model,
815+ Some ( turn_context. realtime_active) ,
816+ ) )
788817 ) ;
789818 assert_eq ! (
790819 serde_json:: to_value( session. reference_context_item( ) . await )
@@ -901,8 +930,11 @@ async fn record_initial_history_resumed_aborted_turn_without_id_clears_active_tu
901930 . await ;
902931
903932 assert_eq ! (
904- session. previous_model( ) . await ,
905- Some ( previous_model. to_string( ) )
933+ session. previous_turn_settings( ) . await ,
934+ Some ( previous_turn_settings(
935+ previous_model,
936+ Some ( turn_context. realtime_active) ,
937+ ) )
906938 ) ;
907939 assert ! ( session. reference_context_item( ) . await . is_none( ) ) ;
908940}
@@ -1001,8 +1033,11 @@ async fn record_initial_history_resumed_unmatched_abort_preserves_active_turn_fo
10011033 . await ;
10021034
10031035 assert_eq ! (
1004- session. previous_model( ) . await ,
1005- Some ( current_model. to_string( ) )
1036+ session. previous_turn_settings( ) . await ,
1037+ Some ( previous_turn_settings(
1038+ current_model,
1039+ Some ( turn_context. realtime_active) ,
1040+ ) )
10061041 ) ;
10071042 assert_eq ! (
10081043 serde_json:: to_value( session. reference_context_item( ) . await )
@@ -1095,8 +1130,11 @@ async fn record_initial_history_resumed_trailing_incomplete_turn_compaction_clea
10951130 . await ;
10961131
10971132 assert_eq ! (
1098- session. previous_model( ) . await ,
1099- Some ( previous_model. to_string( ) )
1133+ session. previous_turn_settings( ) . await ,
1134+ Some ( previous_turn_settings(
1135+ previous_model,
1136+ Some ( turn_context. realtime_active) ,
1137+ ) )
11001138 ) ;
11011139 assert ! ( session. reference_context_item( ) . await . is_none( ) ) ;
11021140}
@@ -1138,8 +1176,11 @@ async fn record_initial_history_resumed_trailing_incomplete_turn_preserves_turn_
11381176 . await ;
11391177
11401178 assert_eq ! (
1141- session. previous_model( ) . await ,
1142- Some ( turn_context. model_info. slug. clone( ) )
1179+ session. previous_turn_settings( ) . await ,
1180+ Some ( previous_turn_settings(
1181+ turn_context. model_info. slug. clone( ) ,
1182+ Some ( turn_context. realtime_active) ,
1183+ ) )
11431184 ) ;
11441185 assert_eq ! (
11451186 serde_json:: to_value( session. reference_context_item( ) . await )
@@ -1242,8 +1283,11 @@ async fn record_initial_history_resumed_replaced_incomplete_compacted_turn_clear
12421283 . await ;
12431284
12441285 assert_eq ! (
1245- session. previous_model( ) . await ,
1246- Some ( previous_model. to_string( ) )
1286+ session. previous_turn_settings( ) . await ,
1287+ Some ( previous_turn_settings(
1288+ previous_model,
1289+ Some ( turn_context. realtime_active) ,
1290+ ) )
12471291 ) ;
12481292 assert ! ( session. reference_context_item( ) . await . is_none( ) ) ;
12491293}
0 commit comments