Skip to content

Commit 65eaf41

Browse files
committed
fix(amazonq): disclaimer acknowledgement fails web build
Problem: Webpack fails on the parent commit: 2025-04-07T17:25:48.4129595Z Error: Cannot find module './globalState' 2025-04-07T17:25:48.4148372Z at webpackMissingModule (file:///…/packages/amazonq/dist/test/web/testRunnerWebCore.js#vscode-extension:159675:92) Solution: Avoid importing `'aws-core-vscode/amazonq'` in `webviewProvider.ts`. `AmazonQPromptSettings` is intended to have application-specific logic, so move the logic there and drop the special `disclaimer.ts` module.
1 parent 5383cfd commit 65eaf41

File tree

11 files changed

+19
-44
lines changed

11 files changed

+19
-44
lines changed

packages/amazonq/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -128,7 +128,7 @@
128128
"type": "boolean",
129129
"default": false
130130
},
131-
"amazonQChatDisclaimerAcknowledged": {
131+
"amazonQChatDisclaimer": {
132132
"type": "boolean",
133133
"default": false
134134
}

packages/amazonq/src/lsp/chat/messages.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,7 @@ export function registerMessageListeners(
109109
break
110110
}
111111
case DISCLAIMER_ACKNOWLEDGED: {
112-
void AmazonQPromptSettings.instance.update('amazonQChatDisclaimerAcknowledged', true)
112+
void AmazonQPromptSettings.instance.disablePrompt('amazonQChatDisclaimer')
113113
break
114114
}
115115
case chatRequestType.method: {

packages/amazonq/src/lsp/chat/webviewProvider.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,7 @@ import {
1414
} from 'vscode'
1515
import { QuickActionCommandGroup } from '@aws/mynah-ui'
1616
import * as path from 'path'
17-
import { LanguageServerResolver } from 'aws-core-vscode/shared'
18-
import { disclaimer } from 'aws-core-vscode/amazonq'
17+
import { AmazonQPromptSettings, LanguageServerResolver } from 'aws-core-vscode/shared'
1918

2019
export class AmazonQChatViewProvider implements WebviewViewProvider {
2120
public static readonly viewType = 'aws.amazonq.AmazonQChatView'
@@ -65,7 +64,7 @@ export class AmazonQChatViewProvider implements WebviewViewProvider {
6564
}
6665

6766
private async getWebviewContent(mynahUIPath: string) {
68-
const disclaimerAcknowledged = await disclaimer.disclaimerAcknowledged()
67+
const disclaimerAcknowledged = AmazonQPromptSettings.instance.isPromptEnabled('amazonQChatDisclaimer')
6968
return `
7069
<!DOCTYPE html>
7170
<html lang="en">

packages/core/src/amazonq/index.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,6 @@ export * from './lsp/config'
4848
export * as WorkspaceLspInstaller from './lsp/workspaceInstaller'
4949
export * as secondaryAuth from '../auth/secondaryAuth'
5050
export * as authConnection from '../auth/connection'
51-
export * as disclaimer from './util/disclaimer'
5251
import { FeatureContext } from '../shared/featureConfig'
5352

5453
/**

packages/core/src/amazonq/util/disclaimer.ts

Lines changed: 0 additions & 21 deletions
This file was deleted.

packages/core/src/amazonq/webview/generators/webViewContent.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import { AuthUtil } from '../../../codewhisperer/util/authUtil'
99
import { FeatureConfigProvider, FeatureContext } from '../../../shared/featureConfig'
1010
import globals from '../../../shared/extensionGlobals'
1111
import { isSageMaker } from '../../../shared/extensionUtilities'
12-
import { disclaimerAcknowledged } from '../../util/disclaimer'
12+
import { AmazonQPromptSettings } from '../../../shared/settings'
1313

1414
export class WebViewContentGenerator {
1515
private async generateFeatureConfigsData(): Promise<string> {
@@ -83,7 +83,7 @@ export class WebViewContentGenerator {
8383
const isSMUS = isSageMaker('SMUS')
8484

8585
const disabledCommandsString = isSM ? `['/dev', '/transform', '/test', '/review', '/doc']` : '[]'
86-
const enableDisclaimer = await disclaimerAcknowledged()
86+
const disclaimerAcknowledged = !AmazonQPromptSettings.instance.isPromptEnabled('amazonQChatDisclaimer')
8787
const welcomeLoadCount = globals.globalState.tryGet('aws.amazonq.welcomeChatShowCount', Number, 0)
8888

8989
return `
@@ -93,7 +93,7 @@ export class WebViewContentGenerator {
9393
const init = () => {
9494
createMynahUI(acquireVsCodeApi(), ${
9595
(await AuthUtil.instance.getChatAuthState()).amazonQ === 'connected'
96-
},${featureConfigsString},${welcomeLoadCount},${enableDisclaimer},${disabledCommandsString},${isSMUS},${isSM});
96+
},${featureConfigsString},${welcomeLoadCount},${disclaimerAcknowledged},${disabledCommandsString},${isSMUS},${isSM});
9797
}
9898
</script>
9999
`

packages/core/src/amazonq/webview/messages/messageDispatcher.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ export function dispatchWebViewMessagesToApps(
7878
return
7979
}
8080
case 'disclaimer-acknowledged': {
81-
void AmazonQPromptSettings.instance.update('amazonQChatDisclaimerAcknowledged', true)
81+
void AmazonQPromptSettings.instance.disablePrompt('amazonQChatDisclaimer')
8282
return
8383
}
8484
case 'update-welcome-count': {

packages/core/src/shared/globalState.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ export type globalKey =
3535
| 'aws.amazonq.codescan.groupingStrategy'
3636
| 'aws.amazonq.notifications'
3737
| 'aws.amazonq.welcomeChatShowCount'
38-
| 'aws.amazonq.disclaimerAcknowledged'
38+
| 'aws.amazonq.disclaimerAcknowledged' // Legacy, use `AmazonQPromptSettings` instead.
3939
| 'aws.notifications'
4040
| 'aws.notifications.dev' // keys to store notifications for testing
4141
| 'aws.downloadPath'

packages/core/src/shared/settings-amazonq.gen.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ export const amazonqSettings = {
2121
"ssoCacheError": {},
2222
"amazonQLspManifestMessage": {},
2323
"amazonQWorkspaceLspManifestMessage": {},
24-
"amazonQChatDisclaimerAcknowledged": {}
24+
"amazonQChatDisclaimer": {}
2525
},
2626
"amazonQ.showCodeWithReferences": {},
2727
"amazonQ.allowFeatureDevelopmentToRunCodeAndTests": {},

packages/core/src/shared/settings.ts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -662,6 +662,15 @@ export class AmazonQPromptSettings
662662
{
663663
public isPromptEnabled(promptName: amazonQPromptName): boolean {
664664
try {
665+
// Legacy migration for old globalState settings:
666+
if (promptName === 'amazonQChatDisclaimer') {
667+
const acknowledged = globals.globalState.tryGet('aws.amazonq.disclaimerAcknowledged', Boolean, false)
668+
if (acknowledged) {
669+
void this.update(promptName, true)
670+
globals.globalState.tryUpdate('aws.amazonq.disclaimerAcknowledged', undefined)
671+
}
672+
}
673+
665674
return !this._getOrThrow(promptName, false)
666675
} catch (e) {
667676
this._log('prompt check for "%s" failed: %s', promptName, (e as Error).message)

0 commit comments

Comments
 (0)