@@ -35,6 +35,9 @@ import {
3535 inlineCompletionsDebounceDelay ,
3636 noInlineSuggestionsMsg ,
3737 ReferenceInlineProvider ,
38+ getDiagnosticsDifferences ,
39+ getDiagnosticsOfCurrentFile ,
40+ toIdeDiagnostics ,
3841} from 'aws-core-vscode/codewhisperer'
3942import { InlineGeneratingMessage } from './inlineGeneratingMessage'
4043import { LineTracker } from './stateTracker/lineTracker'
@@ -123,6 +126,13 @@ export class InlineCompletionManager implements Disposable {
123126 firstCompletionDisplayLatency ?: number
124127 ) => {
125128 // TODO: also log the seen state for other suggestions in session
129+ // Calculate timing metrics before diagnostic delay
130+ const totalSessionDisplayTime = Date . now ( ) - requestStartTime
131+ await new Promise ( ( resolve ) => setTimeout ( resolve , 1000 ) )
132+ const diagnosticDiff = getDiagnosticsDifferences (
133+ this . sessionManager . getActiveSession ( ) ?. diagnosticsBeforeAccept ,
134+ getDiagnosticsOfCurrentFile ( )
135+ )
126136 const params : LogInlineCompletionSessionResultsParams = {
127137 sessionId : sessionId ,
128138 completionSessionResult : {
@@ -132,8 +142,10 @@ export class InlineCompletionManager implements Disposable {
132142 discarded : false ,
133143 } ,
134144 } ,
135- totalSessionDisplayTime : Date . now ( ) - requestStartTime ,
145+ totalSessionDisplayTime : totalSessionDisplayTime ,
136146 firstCompletionDisplayLatency : firstCompletionDisplayLatency ,
147+ addedDiagnostics : diagnosticDiff . added . map ( ( it ) => toIdeDiagnostics ( it ) ) ,
148+ removedDiagnostics : diagnosticDiff . removed . map ( ( it ) => toIdeDiagnostics ( it ) ) ,
137149 }
138150 this . languageClient . sendNotification ( this . logSessionResultMessageName , params )
139151 this . disposable . dispose ( )
0 commit comments