@@ -35,6 +35,9 @@ import {
35
35
inlineCompletionsDebounceDelay ,
36
36
noInlineSuggestionsMsg ,
37
37
ReferenceInlineProvider ,
38
+ getDiagnosticsDifferences ,
39
+ getDiagnosticsOfCurrentFile ,
40
+ toIdeDiagnostics ,
38
41
} from 'aws-core-vscode/codewhisperer'
39
42
import { InlineGeneratingMessage } from './inlineGeneratingMessage'
40
43
import { LineTracker } from './stateTracker/lineTracker'
@@ -98,6 +101,13 @@ export class InlineCompletionManager implements Disposable {
98
101
firstCompletionDisplayLatency ?: number
99
102
) => {
100
103
// TODO: also log the seen state for other suggestions in session
104
+ // Calculate timing metrics before diagnostic delay
105
+ const totalSessionDisplayTime = Date . now ( ) - requestStartTime
106
+ await new Promise ( ( resolve ) => setTimeout ( resolve , 1000 ) )
107
+ const diagnosticDiff = getDiagnosticsDifferences (
108
+ this . sessionManager . getActiveSession ( ) ?. diagnosticsBeforeAccept ,
109
+ getDiagnosticsOfCurrentFile ( )
110
+ )
101
111
const params : LogInlineCompletionSessionResultsParams = {
102
112
sessionId : sessionId ,
103
113
completionSessionResult : {
@@ -107,8 +117,10 @@ export class InlineCompletionManager implements Disposable {
107
117
discarded : false ,
108
118
} ,
109
119
} ,
110
- totalSessionDisplayTime : Date . now ( ) - requestStartTime ,
120
+ totalSessionDisplayTime : totalSessionDisplayTime ,
111
121
firstCompletionDisplayLatency : firstCompletionDisplayLatency ,
122
+ addedDiagnostics : diagnosticDiff . added . map ( ( it ) => toIdeDiagnostics ( it ) ) ,
123
+ removedDiagnostics : diagnosticDiff . removed . map ( ( it ) => toIdeDiagnostics ( it ) ) ,
112
124
}
113
125
this . languageClient . sendNotification ( this . logSessionResultMessageName , params )
114
126
this . disposable . dispose ( )
0 commit comments