File tree Expand file tree Collapse file tree 4 files changed +31
-2
lines changed
Expand file tree Collapse file tree 4 files changed +31
-2
lines changed Original file line number Diff line number Diff line change @@ -107,6 +107,7 @@ fn app_server_request_span_template(
107107 app_server. api_version = "v2" ,
108108 app_server. client_name = field:: Empty ,
109109 app_server. client_version = field:: Empty ,
110+ turn. id = field:: Empty ,
110111 )
111112}
112113
Original file line number Diff line number Diff line change @@ -6024,6 +6024,9 @@ impl CodexMessageProcessor {
60246024
60256025 match turn_id {
60266026 Ok ( turn_id) => {
6027+ self . outgoing
6028+ . record_request_turn_id ( & request_id, & turn_id)
6029+ . await ;
60276030 let turn = Turn {
60286031 id : turn_id. clone ( ) ,
60296032 items : vec ! [ ] ,
@@ -6076,6 +6079,9 @@ impl CodexMessageProcessor {
60766079 . await ;
60776080 return ;
60786081 }
6082+ self . outgoing
6083+ . record_request_turn_id ( & request_id, & params. expected_turn_id )
6084+ . await ;
60796085 if let Err ( error) = Self :: validate_v2_input_limit ( & params. input ) {
60806086 self . outgoing . send_error ( request_id, error) . await ;
60816087 return ;
@@ -6556,7 +6562,10 @@ impl CodexMessageProcessor {
65566562 request_id : ConnectionRequestId ,
65576563 params : TurnInterruptParams ,
65586564 ) {
6559- let TurnInterruptParams { thread_id, .. } = params;
6565+ let TurnInterruptParams { thread_id, turn_id } = params;
6566+ self . outgoing
6567+ . record_request_turn_id ( & request_id, & turn_id)
6568+ . await ;
65606569
65616570 let ( thread_uuid, thread) = match self . load_thread ( & thread_id) . await {
65626571 Ok ( v) => v,
Original file line number Diff line number Diff line change @@ -580,7 +580,7 @@ async fn turn_start_jsonrpc_span_parents_core_turn_spans() -> Result<()> {
580580 parent_span_id : remote_parent_span_id,
581581 context : remote_trace,
582582 } = RemoteTrace :: new ( "00000000000000000000000000000077" , "0000000000000088" ) ;
583- let _ : TurnStartResponse = harness
583+ let turn_start_response : TurnStartResponse = harness
584584 . request (
585585 ClientRequest :: TurnStart {
586586 request_id : RequestId :: Integer ( 3 ) ,
@@ -628,6 +628,10 @@ async fn turn_start_jsonrpc_span_parents_core_turn_spans() -> Result<()> {
628628 assert_eq ! ( server_request_span. parent_span_id, remote_parent_span_id) ;
629629 assert ! ( server_request_span. parent_span_is_remote) ;
630630 assert_eq ! ( server_request_span. span_context. trace_id( ) , remote_trace_id) ;
631+ assert_eq ! (
632+ span_attr( server_request_span, "turn.id" ) ,
633+ Some ( turn_start_response. turn. id. as_str( ) )
634+ ) ;
631635 assert_span_descends_from ( & spans, core_turn_span, server_request_span) ;
632636 harness. shutdown ( ) . await ;
633637
Original file line number Diff line number Diff line change @@ -75,6 +75,10 @@ impl RequestContext {
7575 pub ( crate ) fn span ( & self ) -> Span {
7676 self . span . clone ( )
7777 }
78+
79+ fn record_turn_id ( & self , turn_id : & str ) {
80+ self . span . record ( "turn.id" , turn_id) ;
81+ }
7882}
7983
8084#[ derive( Debug , Clone ) ]
@@ -217,6 +221,17 @@ impl OutgoingMessageSender {
217221 . and_then ( RequestContext :: request_trace)
218222 }
219223
224+ pub ( crate ) async fn record_request_turn_id (
225+ & self ,
226+ request_id : & ConnectionRequestId ,
227+ turn_id : & str ,
228+ ) {
229+ let request_contexts = self . request_contexts . lock ( ) . await ;
230+ if let Some ( request_context) = request_contexts. get ( request_id) {
231+ request_context. record_turn_id ( turn_id) ;
232+ }
233+ }
234+
220235 async fn take_request_context (
221236 & self ,
222237 request_id : & ConnectionRequestId ,
You can’t perform that action at this time.
0 commit comments