Skip to content

Merge master into feature/flare-inline #7338

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

Open
wants to merge 42 commits into
base: feature/flare-inline
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
42 commits
Select commit Hold shift + click to select a range
9f44fa6
Release 3.60.0
May 6, 2025
734bd98
fix(nep): truncate editor state (#7256)
tomcat323 May 8, 2025
529f833
fix(amazonq): Revert refactor(amazonq): reduce extra call of listAvai…
Will-ShaoHua May 8, 2025
8a02d60
fix(amazonq): agent tabs open with prompt options (#7265)
ctlai95 May 8, 2025
4369fb5
fix(amazonq): flare clientId changes on every instance (#7273)
jpinkney-aws May 9, 2025
0d97988
Release 1.66.0
May 9, 2025
dcaeb53
Update version to snapshot version: 3.61.0-SNAPSHOT
May 9, 2025
3290630
Merge release into master
May 9, 2025
91e5039
Update version to snapshot version: 1.67.0-SNAPSHOT
May 9, 2025
a7fd043
Merge release into master
May 9, 2025
1085a8d
telemetry(amazonq): Emit metric on server crash (#7278)
nkomonen-amazon May 9, 2025
a14b9a2
telemetry(amazonq): expose FileCreationFailed exceptions #7260
akhamis-amzn May 9, 2025
05cde57
fix(lsp): send extension version to Q LSP #7279
yueny2020 May 9, 2025
4b09167
fix(amazonq): adding logs for the agentic chat telemetry events (#7276)
laileni-aws May 9, 2025
ffc0cb4
fix(amazonq): pass uri.path as workspaceIdentifier when initializing …
LiGaCu May 12, 2025
2d898fb
deps: bump @aws-toolkits/telemetry to 1.0.318 #7290
avi-alpert May 12, 2025
8e85476
fix(amazonq): use neighbor cells as completion context in Notebook #7086
brdskggs May 13, 2025
c97740e
feat(amazonq): import userWrittenCode configuration for inline with l…
zixlin7 May 13, 2025
143e35c
fix(amazonq): push customizations on startup (#7297)
nkomonen-amazon May 13, 2025
3f5fa17
deps: bump @aws-toolkits/telemetry to 1.0.319 (#7300)
chungjac May 14, 2025
6081f89
fix(amazonq):support chat in al2 aarch64 and CDM (#7270)
leigaol May 14, 2025
229126e
docs(amazonq): How to export logs (#7308)
nkomonen-amazon May 14, 2025
04eb09a
deps: bump @aws-toolkits/telemetry to 1.0.321 #7307
laileni-aws May 14, 2025
ab781b9
Release 3.61.0
May 14, 2025
2b44176
Release 1.67.0
May 14, 2025
ae4dbcd
Update version to snapshot version: 3.62.0-SNAPSHOT
May 14, 2025
74bd712
Update version to snapshot version: 1.68.0-SNAPSHOT
May 14, 2025
1619e6b
Merge release into master
May 14, 2025
6fead6e
feat(amazonq): add inline completion support for abap language (#7303)
Will-ShaoHua May 14, 2025
6898221
fix(amazonq): Profile needing to be selected on server restart (#7316)
nkomonen-amazon May 15, 2025
327fb56
fix(chat): adding new events for list mcp server and click mcp events…
ashishrp-aws May 15, 2025
dbb24b7
Release 3.62.0
May 15, 2025
9881fae
Release 1.68.0
May 15, 2025
c81f7dd
Update version to snapshot version: 3.63.0-SNAPSHOT
May 15, 2025
c35805e
Update version to snapshot version: 1.69.0-SNAPSHOT
May 15, 2025
fbf8bd0
Merge release into master
May 15, 2025
340309c
feat(amazonq): Command to clear extension cache (#7335)
nkomonen-amazon May 16, 2025
ea593e2
fix(amazonq): remove target JDK path prompt (#7328)
dhasani23 May 16, 2025
e564ef6
feat(codewhisperer): add fileUri to FileContext (#7294)
LiGaCu May 19, 2025
1d585e9
feat(chat): Add ripgrep path and make it executable (#7325)
jguoamz May 19, 2025
3d30dcd
feat(amazonq): parse new transformation plan (#7340)
dhasani23 May 20, 2025
196de6f
feat(amazonq): remove option to select multiple diffs (#7327)
dhasani23 May 20, 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,815 changes: 361 additions & 1,454 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": "/transform: avoid prompting user for target JDK path unnecessarily"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
{
"type": "Removal",
"description": "/transform: remove option to select multiple diffs"
}
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
7 changes: 6 additions & 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 Expand Up @@ -805,6 +805,11 @@
{
"command": "aws.amazonq.walkthrough.show",
"title": "%AWS.amazonq.welcomeWalkthrough%"
},
{
"command": "aws.amazonq.clearCache",
"title": "%AWS.amazonq.clearCache%",
"category": "%AWS.amazonq.title%"
}
],
"keybindings": [
Expand Down
6 changes: 5 additions & 1 deletion packages/amazonq/src/commands.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,11 @@
import * as vscode from 'vscode'
import { Auth } from 'aws-core-vscode/auth'
import { Commands } from 'aws-core-vscode/shared'
import { clearCacheDeclaration } from './util/clearCache'

export function registerCommands(context: vscode.ExtensionContext) {
context.subscriptions.push(Commands.register('_aws.amazonq.auth.autoConnect', Auth.instance.tryAutoConnect))
context.subscriptions.push(
Commands.register('_aws.amazonq.auth.autoConnect', Auth.instance.tryAutoConnect),
clearCacheDeclaration.register()
)
}
4 changes: 2 additions & 2 deletions packages/amazonq/src/extension.ts
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ import {
maybeShowMinVscodeWarning,
Experiments,
isSageMaker,
isAmazonInternalOs,
isAmazonLinux2,
} from 'aws-core-vscode/shared'
import { ExtStartUpSources } from 'aws-core-vscode/telemetry'
import { VSCODE_EXTENSION_ID } from 'aws-core-vscode/utils'
Expand Down Expand Up @@ -123,7 +123,7 @@ export async function activateAmazonQCommon(context: vscode.ExtensionContext, is
await activateCodeWhisperer(extContext as ExtContext)
if (
(Experiments.instance.get('amazonqLSP', true) || Auth.instance.isInternalAmazonUser()) &&
(!isAmazonInternalOs() || (await hasGlibcPatch()))
(!isAmazonLinux2() || hasGlibcPatch())
) {
// start the Amazon Q LSP for internal users first
// for AL2, start LSP if glibc patch is found
Expand Down
7 changes: 4 additions & 3 deletions packages/amazonq/src/lsp/auth.ts
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ import { AuthUtil } from 'aws-core-vscode/codewhisperer'
import { Writable } from 'stream'
import { onceChanged } from 'aws-core-vscode/utils'
import { getLogger, oneMinute } from 'aws-core-vscode/shared'
import { isSsoConnection } from 'aws-core-vscode/auth'

export const encryptionKey = crypto.randomBytes(32)

Expand Down Expand Up @@ -76,8 +77,8 @@ export class AmazonQLspAuth {
* @param force bypass memoization, and forcefully update the bearer token
*/
async refreshConnection(force: boolean = false) {
const activeConnection = this.authUtil.auth.activeConnection
if (activeConnection?.state === 'valid' && activeConnection?.type === 'sso') {
const activeConnection = this.authUtil.conn
if (this.authUtil.isConnectionValid() && isSsoConnection(activeConnection)) {
// send the token to the language server
const token = await this.authUtil.getBearerToken()
await (force ? this._updateBearerToken(token) : this.updateBearerToken(token))
Expand Down Expand Up @@ -118,7 +119,7 @@ export class AmazonQLspAuth {
data: jwt,
metadata: {
sso: {
startUrl: AuthUtil.instance.auth.startUrl,
startUrl: AuthUtil.instance.startUrl,
},
},
encrypted: true,
Expand Down
57 changes: 1 addition & 56 deletions packages/amazonq/src/lsp/chat/activation.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,20 +12,11 @@ import { Commands, getLogger, globals, undefinedIfEmpty } from 'aws-core-vscode/
import { activate as registerLegacyChatListeners } from '../../app/chat/activation'
import { DefaultAmazonQAppInitContext } from 'aws-core-vscode/amazonq'
import { AuthUtil, getSelectedCustomization } from 'aws-core-vscode/codewhisperer'
import {
DidChangeConfigurationNotification,
updateConfigurationRequestType,
} from '@aws/language-server-runtimes/protocol'
import { pushConfigUpdate } from '../config'

export async function activate(languageClient: LanguageClient, encryptionKey: Buffer, mynahUIPath: string) {
const disposables = globals.context.subscriptions

// Make sure we've sent an auth profile to the language server before even initializing the UI
await pushConfigUpdate(languageClient, {
type: 'profile',
profileArn: AuthUtil.instance.regionProfileManager.activeRegionProfile?.arn,
})

const provider = new AmazonQChatViewProvider(mynahUIPath)

disposables.push(
Expand Down Expand Up @@ -74,10 +65,6 @@ export async function activate(languageClient: LanguageClient, encryptionKey: Bu

disposables.push(
AuthUtil.instance.regionProfileManager.onDidChangeRegionProfile(async () => {
void pushConfigUpdate(languageClient, {
type: 'profile',
profileArn: AuthUtil.instance.regionProfileManager.activeRegionProfile?.arn,
})
await provider.refreshWebview()
}),
Commands.register('aws.amazonq.updateCustomizations', () => {
Expand All @@ -94,45 +81,3 @@ export async function activate(languageClient: LanguageClient, encryptionKey: Bu
})
)
}

/**
* Push a config value to the language server, effectively updating it with the
* latest configuration from the client.
*
* The issue is we need to push certain configs to different places, since there are
* different handlers for specific configs. So this determines the correct place to
* push the given config.
*/
async function pushConfigUpdate(client: LanguageClient, config: QConfigs) {
switch (config.type) {
case 'profile':
await client.sendRequest(updateConfigurationRequestType.method, {
section: 'aws.q',
settings: { profileArn: config.profileArn },
})
break
case 'customization':
client.sendNotification(DidChangeConfigurationNotification.type.method, {
section: 'aws.q',
settings: { customization: config.customization },
})
break
case 'logLevel':
client.sendNotification(DidChangeConfigurationNotification.type.method, {
section: 'aws.logLevel',
})
break
}
}
type ProfileConfig = {
type: 'profile'
profileArn: string | undefined
}
type CustomizationConfig = {
type: 'customization'
customization: string | undefined
}
type LogLevelConfig = {
type: 'logLevel'
}
type QConfigs = ProfileConfig | CustomizationConfig | LogLevelConfig
5 changes: 5 additions & 0 deletions packages/amazonq/src/lsp/chat/messages.ts
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,8 @@ import {
getSerializedChatRequestType,
listConversationsRequestType,
conversationClickRequestType,
listMcpServersRequestType,
mcpServerClickRequestType,
ShowSaveFileDialogRequestType,
ShowSaveFileDialogParams,
LSPErrorCodes,
Expand Down Expand Up @@ -94,6 +96,7 @@ export function registerLanguageServerEventListener(languageClient: LanguageClie
const telemetryName: string = e.name

if (telemetryName in telemetry) {
languageClient.info(`[Telemetry] Emitting ${telemetryName} telemetry: ${JSON.stringify(e.data)}`)
telemetry[telemetryName as keyof TelemetryBase].emit(e.data)
}
})
Expand Down Expand Up @@ -312,6 +315,8 @@ export function registerMessageListeners(
}
case listConversationsRequestType.method:
case conversationClickRequestType.method:
case listMcpServersRequestType.method:
case mcpServerClickRequestType.method:
case tabBarActionRequestType.method:
await resolveChatResponse(message.command, message.params, languageClient, webview)
break
Expand Down
Loading