Skip to content

telemetry(amazonq): calculate % of non-generated (user-written) code #5991

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

Merged
merged 24 commits into from
Jan 16, 2025

Conversation

leigaol
Copy link
Contributor

@leigaol leigaol commented Nov 13, 2024

Problem

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.

Solution

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.

Note: The JB PR aws/aws-toolkit-jetbrains#5215. The JB implementation depends on a reliable JB internal message bus to pass information. Using VSC event listener might mess up the boolean state of Q editing or not.


License: I confirm that my contribution is made under the terms of the Apache 2.0 license.

@leigaol leigaol requested review from a team as code owners November 13, 2024 01:16
@leigaol leigaol marked this pull request as draft November 13, 2024 01:16
Copy link

  • This pull request modifies code in src/* but no tests were added/updated.
    • Confirm whether tests should be added or ensure the PR description explains why tests are not required.
  • This pull request implements a feat or fix, so it must include a changelog entry (unless the fix is for an unreleased feature). Review the changelog guidelines.
    • Note: beta or "experiment" features that have active users should announce fixes in the changelog.
    • If this is not a feature or fix, use an appropriate type from the title guidelines. For example, telemetry-only changes should use the telemetry type.

@leigaol leigaol marked this pull request as ready for review December 13, 2024 18:05
@leigaol leigaol requested review from a team as code owners December 13, 2024 18:05
@justinmk3
Copy link
Contributor

justinmk3 commented Dec 16, 2024

⛔️ Not planned for tomorrow's release.

leigaol and others added 2 commits January 7, 2025 15:56
…deTracker.test.ts

Co-authored-by: Justin M. Keyes <jmkeyes@amazon.com>
Copy link
Contributor

@justinmk3 justinmk3 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approving with the expectation that this followup work with land soon:

Our expectation is to completely get rid of the old CodeCoverageTracker.ts in a few weeks.

@Will-ShaoHua Will-ShaoHua self-requested a review January 15, 2025 23:37
@leigaol leigaol removed the request for review from zixlin7 January 16, 2025 00:40
@leigaol leigaol changed the title feat(amazonq):AI code gen % for Q features telemetry(amazonq):AI code gen % for Q features Jan 16, 2025
@justinmk3 justinmk3 merged commit f805f9b into aws:master Jan 16, 2025
25 of 26 checks passed
@justinmk3 justinmk3 changed the title telemetry(amazonq):AI code gen % for Q features telemetry(amazonq): calculate % of non-generated (user-written) code Jan 16, 2025
karanA-aws pushed a commit to karanA-aws/aws-toolkit-vscode that referenced this pull request Jan 17, 2025
…ws#5991

## Problem

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.


## Solution

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.

Note: The JB PR aws/aws-toolkit-jetbrains#5215.
The JB implementation depends on a reliable JB internal message bus to
pass information. Using VSC event listener might mess up the boolean
state of Q editing or not.
rli pushed a commit to aws/aws-toolkit-jetbrains that referenced this pull request Jan 22, 2025
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.
kevluu-aws pushed a commit to kevluu-aws/aws-toolkit-vscode that referenced this pull request Jan 23, 2025
…ws#5991

## Problem

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.


## Solution

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.

Note: The JB PR aws/aws-toolkit-jetbrains#5215.
The JB implementation depends on a reliable JB internal message bus to
pass information. Using VSC event listener might mess up the boolean
state of Q editing or not.
chungjac pushed a commit to chungjac/aws-toolkit-vscode that referenced this pull request Jan 24, 2025
…ws#5991

## Problem

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.


## Solution

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.

Note: The JB PR aws/aws-toolkit-jetbrains#5215.
The JB implementation depends on a reliable JB internal message bus to
pass information. Using VSC event listener might mess up the boolean
state of Q editing or not.
s7ab059789 pushed a commit to s7ab059789/aws-toolkit-vscode that referenced this pull request Feb 19, 2025
…ws#5991

## Problem

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.


## Solution

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.

Note: The JB PR aws/aws-toolkit-jetbrains#5215.
The JB implementation depends on a reliable JB internal message bus to
pass information. Using VSC event listener might mess up the boolean
state of Q editing or not.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants