-
Notifications
You must be signed in to change notification settings - Fork 234
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
WIP: feat(amazonq): AI code gen % for Q features #5215
base: main
Are you sure you want to change the base?
Conversation
...c/software/aws/toolkits/jetbrains/services/codewhisperer/telemetry/UserWrittenCodeTracker.kt
Fixed
Show fixed
Hide fixed
|
||
private fun isTelemetryEnabled(): Boolean = AwsSettings.getInstance().isTelemetryEnabled | ||
|
||
fun onQFeatureInvoked() { |
Check warning
Code scanning / QDJVMC
Unused symbol Warning
qInvocationCount.incrementAndGet() | ||
} | ||
|
||
fun onQStartsMakingEdits() { |
Check warning
Code scanning / QDJVMC
Unused symbol Warning
isQMakingEdits.set(true) | ||
} | ||
|
||
fun onQFinishesMakingEdits() { |
Check warning
Code scanning / QDJVMC
Unused symbol Warning
Types of changes
Description
With the release of many Q features(Inline Suggestion, chat, inline chat, /dev, /test, /doc, /review, /transform), we need to know the % code written by all Q features. This requires calculating and reporting the user written code. The reporting of the code contribution of each Q features was already implemented.
% Code Written by Q = Code Written by Q / ( Code Written by Q + Code Written by User)
Ref: aws/aws-toolkit-vscode#5991
Calculate and report the user written code for each language by listening to document change events while Q is not making changes to the editor.
We add flags to know whether Q is making temporary changes for suggestion rendering or Q suggestion is accepted, by doing so, the document change events are coming from the user.
We ignore certain document changes when their length of new characters exceeds 50. Previous data driven research has shown that user tend to copy a huge file from one place to another, making the user written code count skyrocketing but that is actually some existing code not written by the user.
We plan to first collect data from IDEs and let it run in the background in shadow mode before we finish the service side aggregation, fix possible bugs and eventually present the AI code written % to the customers.
Checklist
License
I confirm that my contribution is made under the terms of the Apache 2.0 license.