Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
41 commits
Select commit Hold shift + click to select a range
15efdd9
feat(amazonq): enable inline suggestions through flare by default (#7…
jpinkney-aws May 6, 2025
da499d5
fix(amazonq): respect suggestions enabled setting for auto trigger (#…
jpinkney-aws May 6, 2025
d91bbbb
Merge master into feature/flare-inline
aws-toolkit-automation May 6, 2025
f14533d
Merge master into feature/flare-inline
aws-toolkit-automation May 6, 2025
15ad617
Merge master into feature/flare-inline
aws-toolkit-automation May 6, 2025
d57cac5
refactor(amazonq): deprecate amazon q inline through vscode (#7237)
jpinkney-aws May 6, 2025
71040b4
Merge master into feature/flare-inline
aws-toolkit-automation May 6, 2025
c6fb67c
Merge master into feature/flare-inline
aws-toolkit-automation May 6, 2025
b7cab24
Merge master into feature/flare-inline
aws-toolkit-automation May 6, 2025
3e1614d
Merge master into feature/flare-inline
aws-toolkit-automation May 6, 2025
f114894
refactor(amazonq): deprecate codewhisperer context utils (#7241)
jpinkney-aws May 6, 2025
059a140
Merge master into feature/flare-inline
aws-toolkit-automation May 7, 2025
4a279d8
feat(amazonq): add experiment for basic e2e flow of inline chat throu…
Hweinstock May 7, 2025
86ceeba
feat(amazonq): add experiment for basic e2e flow of inline chat throu…
Hweinstock May 7, 2025
0b751ac
Merge master into feature/flare-inline
aws-toolkit-automation May 7, 2025
aeca817
refactor(amazonq): pull out all decryption logic to one place (#7248)
Hweinstock May 7, 2025
ddad4ec
Merge master into feature/flare-inline
aws-toolkit-automation May 7, 2025
858cad6
telemetry(amazonq): align flare/vscode codewhisperer_serviceInvocatio…
jpinkney-aws May 8, 2025
972d1af
Merge master into feature/flare-inline
aws-toolkit-automation May 8, 2025
8022cd3
Merge master into feature/flare-inline
aws-toolkit-automation May 8, 2025
1a728f1
Merge master into feature/flare-inline
aws-toolkit-automation May 8, 2025
bbf7b0e
feat(amazonq): re-add activeState/line trackers (#7257)
jpinkney-aws May 8, 2025
c77668d
refactor(amazonq): rename inline "generating" message class (#7267)
nkomonen-amazon May 8, 2025
4eac908
fix: Ensure we clear the "generating" inline message when done
nkomonen-amazon May 8, 2025
dd3b829
fix: show spinning icon on status bar when generating suggestion
nkomonen-amazon May 8, 2025
0d2c7fb
feat(amazonq): add tutorial trackers for lsp (#7264)
jpinkney-aws May 9, 2025
260fb37
Merge pull request #7272 from nkomonen-amazon/spinningStatusBar
jpinkney-aws May 9, 2025
7e65155
refactor(amazonq): remove local workspace indexing library
jpinkney-aws May 9, 2025
079bb52
refactor(amazonq): refactor base lsp config
jpinkney-aws May 9, 2025
6995107
telemetry(amazonq): implement codewhisperer_clientComponentLatency (#…
jpinkney-aws May 9, 2025
9a793ee
Merge pull request #7275 from jpinkney-aws/remove3
jpinkney-aws May 9, 2025
5f6ee4e
Merge pull request #7277 from jpinkney-aws/closingBrackets
jpinkney-aws May 9, 2025
4b52ff4
test(amazonq): update inline tests for flare (#7274)
jpinkney-aws May 9, 2025
0429352
fix(amazonq): debounce inline suggestion requests. (#7289)
Hweinstock May 12, 2025
2f7c3d9
refactor(amazonq): move debounce to top level. (#7292)
Hweinstock May 13, 2025
7bb3dac
Merge master into feature/flare-inline (#7261)
aws-toolkit-automation May 13, 2025
b649dbd
Merge master into feature/flare-inline (#7299)
aws-toolkit-automation May 14, 2025
692847a
test(amazonq): add tests for edge cases (#7305)
Hweinstock May 14, 2025
ffb6ec1
fix(amazonq): standardize reference type for reference log (#7311)
Hweinstock May 14, 2025
b5540e2
feat(amazonq): show a message when no suggestions are found on manual…
Hweinstock May 15, 2025
a814ee0
Merge master into feature/flare-inline (#7310)
aws-toolkit-automation May 15, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -387,6 +387,9 @@ If you need to report an issue attach these to give the most detailed informatio
4. Open the Command Palette again and select `Reload Window`.
5. Now you should see additional `[debug]` prefixed logs in the output.
- ![](./docs/images/logsDebugLog.png)
6. To export logs, click the kebab (`...`), select `Export Logs`, and then select the appropriate channel (`Amazon Q Logs` for Amazon Q)
- ![](./docs/images/openExportLogs.png)
- ![](./docs/images/exportAmazonQLogs.png)

### Telemetry

Expand Down
Binary file added docs/images/exportAmazonQLogs.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/images/openExportLogs.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1,674 changes: 387 additions & 1,287 deletions package-lock.json

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@
"skippedTestReport": "ts-node ./scripts/skippedTestReport.ts ./packages/amazonq/test/e2e/"
},
"devDependencies": {
"@aws-toolkits/telemetry": "^1.0.317",
"@aws-toolkits/telemetry": "^1.0.322",
"@playwright/browser-chromium": "^1.43.1",
"@stylistic/eslint-plugin": "^2.11.0",
"@types/he": "^1.2.3",
Expand Down
14 changes: 14 additions & 0 deletions packages/amazonq/.changes/1.66.0.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
{
"date": "2025-05-09",
"version": "1.66.0",
"entries": [
{
"type": "Bug Fix",
"description": "Avoid inline completion 'Improperly formed request' errors when file is too large"
},
{
"type": "Bug Fix",
"description": "Named agent tabs sometimes open with unnecessary input options"
}
]
}
14 changes: 14 additions & 0 deletions packages/amazonq/.changes/1.67.0.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
{
"date": "2025-05-14",
"version": "1.67.0",
"entries": [
{
"type": "Bug Fix",
"description": "Previous and subsequent cells are used as context for completion in a Jupyter notebook"
},
{
"type": "Bug Fix",
"description": "Support chat in AL2 aarch64"
}
]
}
18 changes: 18 additions & 0 deletions packages/amazonq/.changes/1.68.0.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
{
"date": "2025-05-15",
"version": "1.68.0",
"entries": [
{
"type": "Bug Fix",
"description": "Fix Error: 'Amazon Q service is not signed in'"
},
{
"type": "Bug Fix",
"description": "Fix Error: 'Amazon Q Profile is not selected for IDC connection type'"
},
{
"type": "Feature",
"description": "Add inline completion support for abap language"
}
]
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
{
"type": "Bug Fix",
"description": "Previous and subsequent cells are used as context for completion in a Jupyter notebook"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
{
"type": "Bug Fix",
"description": "Support chat in AL2 aarch64"
}
16 changes: 16 additions & 0 deletions packages/amazonq/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,19 @@
## 1.68.0 2025-05-15

- **Bug Fix** Fix Error: 'Amazon Q service is not signed in'
- **Bug Fix** Fix Error: 'Amazon Q Profile is not selected for IDC connection type'
- **Feature** Add inline completion support for abap language

## 1.67.0 2025-05-14

- **Bug Fix** Previous and subsequent cells are used as context for completion in a Jupyter notebook
- **Bug Fix** Support chat in AL2 aarch64

## 1.66.0 2025-05-09

- **Bug Fix** Avoid inline completion 'Improperly formed request' errors when file is too large
- **Bug Fix** Named agent tabs sometimes open with unnecessary input options

## 1.65.0 2025-05-05

- **Feature** Support selecting customizations across all Q profiles with automatic profile switching for enterprise users
Expand Down
2 changes: 1 addition & 1 deletion packages/amazonq/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
"name": "amazon-q-vscode",
"displayName": "Amazon Q",
"description": "The most capable generative AI-powered assistant for building, operating, and transforming software, with advanced capabilities for managing data and AI",
"version": "1.66.0-SNAPSHOT",
"version": "1.69.0-SNAPSHOT",
"extensionKind": [
"workspace"
],
Expand Down
13 changes: 2 additions & 11 deletions packages/amazonq/src/app/chat/activation.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,22 +6,14 @@
import * as vscode from 'vscode'
import { ExtensionContext } from 'vscode'
import { telemetry } from 'aws-core-vscode/telemetry'
import { AuthUtil, CodeWhispererSettings } from 'aws-core-vscode/codewhisperer'
import { Commands, placeholder, funcUtil } from 'aws-core-vscode/shared'
import { AuthUtil } from 'aws-core-vscode/codewhisperer'
import { Commands, placeholder } from 'aws-core-vscode/shared'
import * as amazonq from 'aws-core-vscode/amazonq'

export async function activate(context: ExtensionContext) {
const appInitContext = amazonq.DefaultAmazonQAppInitContext.instance
await amazonq.TryChatCodeLensProvider.register(appInitContext.onDidChangeAmazonQVisibility.event)

const setupLsp = funcUtil.debounce(async () => {
void amazonq.LspController.instance.trySetupLsp(context, {
startUrl: AuthUtil.instance.startUrl,
maxIndexSize: CodeWhispererSettings.instance.getMaxIndexSize(),
isVectorIndexEnabled: false,
})
}, 5000)

context.subscriptions.push(
amazonq.focusAmazonQChatWalkthrough.register(),
amazonq.walkthroughInlineSuggestionsExample.register(),
Expand All @@ -37,7 +29,6 @@ export async function activate(context: ExtensionContext) {
void vscode.env.openExternal(vscode.Uri.parse(amazonq.amazonQHelpUrl))
})

void setupLsp()
void setupAuthNotification()
}

Expand Down
58 changes: 1 addition & 57 deletions packages/amazonq/src/app/inline/activation.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,68 +6,26 @@
import vscode from 'vscode'
import {
AuthUtil,
CodeSuggestionsState,
CodeWhispererCodeCoverageTracker,
CodeWhispererConstants,
CodeWhispererSettings,
ConfigurationEntry,
DefaultCodeWhispererClient,
invokeRecommendation,
isInlineCompletionEnabled,
KeyStrokeHandler,
RecommendationHandler,
runtimeLanguageContext,
TelemetryHelper,
UserWrittenCodeTracker,
vsCodeState,
} from 'aws-core-vscode/codewhisperer'
import { Commands, getLogger, globals, sleep } from 'aws-core-vscode/shared'
import { globals, sleep } from 'aws-core-vscode/shared'

export async function activate() {
const codewhispererSettings = CodeWhispererSettings.instance
const client = new DefaultCodeWhispererClient()

if (isInlineCompletionEnabled()) {
await setSubscriptionsforInlineCompletion()
await AuthUtil.instance.setVscodeContextProps()
}

function getAutoTriggerStatus(): boolean {
return CodeSuggestionsState.instance.isSuggestionsEnabled()
}

async function getConfigEntry(): Promise<ConfigurationEntry> {
const isShowMethodsEnabled: boolean =
vscode.workspace.getConfiguration('editor').get('suggest.showMethods') || false
const isAutomatedTriggerEnabled: boolean = getAutoTriggerStatus()
const isManualTriggerEnabled: boolean = true
const isSuggestionsWithCodeReferencesEnabled = codewhispererSettings.isSuggestionsWithCodeReferencesEnabled()

// TODO:remove isManualTriggerEnabled
return {
isShowMethodsEnabled,
isManualTriggerEnabled,
isAutomatedTriggerEnabled,
isSuggestionsWithCodeReferencesEnabled,
}
}

async function setSubscriptionsforInlineCompletion() {
RecommendationHandler.instance.subscribeSuggestionCommands()

/**
* Automated trigger
*/
globals.context.subscriptions.push(
vscode.window.onDidChangeActiveTextEditor(async (editor) => {
await RecommendationHandler.instance.onEditorChange()
}),
vscode.window.onDidChangeWindowState(async (e) => {
await RecommendationHandler.instance.onFocusChange()
}),
vscode.window.onDidChangeTextEditorSelection(async (e) => {
await RecommendationHandler.instance.onCursorChange(e)
}),
vscode.workspace.onDidChangeTextDocument(async (e) => {
const editor = vscode.window.activeTextEditor
if (!editor) {
Expand All @@ -80,7 +38,6 @@ export async function activate() {
return
}

CodeWhispererCodeCoverageTracker.getTracker(e.document.languageId)?.countTotalTokens(e)
UserWrittenCodeTracker.instance.onTextDocumentChange(e)
/**
* Handle this keystroke event only when
Expand All @@ -105,19 +62,6 @@ export async function activate() {
* Then this event can be processed by our code.
*/
await sleep(CodeWhispererConstants.vsCodeCursorUpdateDelay)
if (!RecommendationHandler.instance.isSuggestionVisible()) {
await KeyStrokeHandler.instance.processKeyStroke(e, editor, client, await getConfigEntry())
}
}),
// manual trigger
Commands.register({ id: 'aws.amazonq.invokeInlineCompletion', autoconnect: true }, async () => {
invokeRecommendation(
vscode.window.activeTextEditor as vscode.TextEditor,
client,
await getConfigEntry()
).catch((e) => {
getLogger().error('invokeRecommendation failed: %s', (e as Error).message)
})
})
)
}
Expand Down
Loading