Skip to content

Commit b4aac40

Browse files
committed
update accept code telemetry for file-level accepts
1 parent a3ca811 commit b4aac40

File tree

2 files changed

+29
-9
lines changed

2 files changed

+29
-9
lines changed

packages/core/src/amazonqFeatureDev/controllers/chat/controller.ts

Lines changed: 20 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -467,6 +467,7 @@ export class FeatureDevController {
467467
if (session?.state.phase === DevPhase.CODEGEN) {
468468
const messageId = randomUUID()
469469
session.updateAcceptCodeMessageId(messageId)
470+
session.updateAcceptCodeTelemetrySent(false)
470471
// need to add the followUps with an extra update here, or it will double-render them
471472
this.messenger.sendAnswer({
472473
message: undefined,
@@ -571,16 +572,10 @@ export class FeatureDevController {
571572

572573
const acceptedFiles = (paths?: { rejected: boolean }[]) => (paths || []).filter((i) => !i.rejected).length
573574

574-
const amazonqNumberOfFilesAccepted =
575-
acceptedFiles(session.state.filePaths) + acceptedFiles(session.state.deletedFiles)
575+
const filesAccepted = acceptedFiles(session.state.filePaths) + acceptedFiles(session.state.deletedFiles)
576+
577+
this.sendAcceptCodeTelemetry(session, filesAccepted)
576578

577-
telemetry.amazonq_isAcceptedCodeChanges.emit({
578-
credentialStartUrl: AuthUtil.instance.startUrl,
579-
amazonqConversationId: session.conversationId,
580-
amazonqNumberOfFilesAccepted,
581-
enabled: true,
582-
result: 'Succeeded',
583-
})
584579
await session.insertChanges()
585580
if (session.acceptCodeMessageId) {
586581
this.sendUpdateCodeMessage(message.tabID)
@@ -748,6 +743,7 @@ export class FeatureDevController {
748743

749744
if (filePathIndex !== -1 && session.state.filePaths) {
750745
if (action === 'accept-change') {
746+
this.sendAcceptCodeTelemetry(session, 1)
751747
await session.insertNewFiles([session.state.filePaths[filePathIndex]])
752748
await session.insertCodeReferenceLogs(session.state.references ?? [])
753749
await this.openFile(session.state.filePaths[filePathIndex])
@@ -757,6 +753,7 @@ export class FeatureDevController {
757753
}
758754
if (deletedFilePathIndex !== -1 && session.state.deletedFiles) {
759755
if (action === 'accept-change') {
756+
this.sendAcceptCodeTelemetry(session, 1)
760757
await session.applyDeleteFiles([session.state.deletedFiles[deletedFilePathIndex]])
761758
await session.insertCodeReferenceLogs(session.state.references ?? [])
762759
} else {
@@ -955,4 +952,18 @@ export class FeatureDevController {
955952
const session = await this.sessionStorage.getSession(tabID)
956953
session.updateAcceptCodeMessageId(undefined)
957954
}
955+
956+
private sendAcceptCodeTelemetry(session: Session, amazonqNumberOfFilesAccepted: number) {
957+
// accepted code telemetry is only to be sent once per iteration of code generation
958+
if (amazonqNumberOfFilesAccepted > 0 && !session.acceptCodeTelemetrySent) {
959+
session.updateAcceptCodeTelemetrySent(true)
960+
telemetry.amazonq_isAcceptedCodeChanges.emit({
961+
credentialStartUrl: AuthUtil.instance.startUrl,
962+
amazonqConversationId: session.conversationId,
963+
amazonqNumberOfFilesAccepted,
964+
enabled: true,
965+
result: 'Succeeded',
966+
})
967+
}
968+
}
958969
}

packages/core/src/amazonqFeatureDev/session/session.ts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ export class Session {
4242
private _telemetry: TelemetryHelper
4343
private _codeResultMessageId: string | undefined = undefined
4444
private _acceptCodeMessageId: string | undefined = undefined
45+
private _acceptCodeTelemetrySent = false
4546

4647
// Used to keep track of whether or not the current session is currently authenticating/needs authenticating
4748
public isAuthenticating: boolean
@@ -264,6 +265,10 @@ export class Session {
264265
this._acceptCodeMessageId = messageId
265266
}
266267

268+
public updateAcceptCodeTelemetrySent(sent: boolean) {
269+
this._acceptCodeTelemetrySent = sent
270+
}
271+
267272
get state() {
268273
if (!this._state) {
269274
throw new Error("State should be initialized before it's read")
@@ -312,4 +317,8 @@ export class Session {
312317
get acceptCodeMessageId() {
313318
return this._acceptCodeMessageId
314319
}
320+
321+
get acceptCodeTelemetrySent() {
322+
return this._acceptCodeTelemetrySent
323+
}
315324
}

0 commit comments

Comments
 (0)