diff --git a/packages/amazonq/.changes/next-release/Bug Fix-0d324321-bddd-4f93-80c4-80978930f157.json b/packages/amazonq/.changes/next-release/Bug Fix-0d324321-bddd-4f93-80c4-80978930f157.json new file mode 100644 index 00000000000..643ff10bb77 --- /dev/null +++ b/packages/amazonq/.changes/next-release/Bug Fix-0d324321-bddd-4f93-80c4-80978930f157.json @@ -0,0 +1,4 @@ +{ + "type": "Bug Fix", + "description": "Amazon Q /dev: include telemetry for workspace usage when generating new files" +} diff --git a/packages/core/src/amazonqFeatureDev/session/sessionState.ts b/packages/core/src/amazonqFeatureDev/session/sessionState.ts index a2204bb9901..9c802811eba 100644 --- a/packages/core/src/amazonqFeatureDev/session/sessionState.ts +++ b/packages/core/src/amazonqFeatureDev/session/sessionState.ts @@ -61,7 +61,8 @@ function registerNewFiles( fs: VirtualFileSystem, newFileContents: NewFileZipContents[], uploadId: string, - workspaceFolders: CurrentWsFolders + workspaceFolders: CurrentWsFolders, + conversationId: string ): NewFileInfo[] { const result: NewFileInfo[] = [] const workspaceFolderPrefixes = getWorkspaceFoldersByPrefixes(workspaceFolders) @@ -81,6 +82,12 @@ function registerNewFiles( Object.values(workspaceFolderPrefixes).find((val) => val.index === 0)?.name ?? '' ] if (folder === undefined) { + telemetry.toolkit_trackScenario.emit({ + count: 1, + amazonqConversationId: conversationId, + credentialStartUrl: AuthUtil.instance.startUrl, + scenario: 'wsOrphanedDocuments', + }) getLogger().error(`No workspace folder found for file: ${zipFilePath} and prefix: ${prefix}`) continue } @@ -174,7 +181,13 @@ abstract class CodeGenBase { case CodeGenerationStatus.COMPLETE: { const { newFileContents, deletedFiles, references } = await this.config.proxyClient.exportResultArchive(this.conversationId) - const newFileInfo = registerNewFiles(fs, newFileContents, this.uploadId, workspaceFolders) + const newFileInfo = registerNewFiles( + fs, + newFileContents, + this.uploadId, + workspaceFolders, + this.conversationId + ) telemetry.setNumberOfFilesGenerated(newFileInfo.length) return { @@ -378,7 +391,13 @@ export class MockCodeGenState implements SessionState { zipFilePath: f.zipFilePath, fileContent: f.fileContent, })) - this.filePaths = registerNewFiles(action.fs, newFileContents, this.uploadId, this.config.workspaceFolders) + this.filePaths = registerNewFiles( + action.fs, + newFileContents, + this.uploadId, + this.config.workspaceFolders, + this.conversationId + ) this.deletedFiles = [ { zipFilePath: 'src/this-file-should-be-deleted.ts',