Merge main into feature/coreDeprecation#6171
Merge main into feature/coreDeprecation#6171aws-toolkit-automation wants to merge 44 commits intofeature/coreDeprecationfrom
Conversation
* build: update jb 253 to stable * remove non-required versions * resolve detekt failures
* fix: open links in browser for /help and chat responses Links in chat responses were not opening because: 1. Link URL was being read from wrong JSON path (node.link instead of node.params.link) 2. Was delegating to LSP server which has empty handlers Now opens browser directly on client side with correct URL extraction. * fix: use correct theme key for link color link.foreground returns black in some themes, use 'link' key instead which has the correct blue color * Detekt * fix: handle link clicks in chat and fix link color - Open browser directly when link click messages are received - Support both Flare (aws/chat/linkClick) and legacy (response-body-link-click) message formats - Fix link color by using correct theme key lookup - Add constants for legacy link click message types * Detekt * refactor: organize UI message constants properly - Move FOOTER_INFO_LINK_CLICK, RESPONSE_BODY_LINK_CLICK, SOURCE_LINK_CLICK from FlareChatCommands.kt to ChatConstants.kt - These constants don't follow aws/chat/ prefix pattern and belong with other chat constants - Update BrowserConnector.kt imports to use ChatConstants * refactor: organize UI message constants properly - Move FOOTER_INFO_LINK_CLICK, RESPONSE_BODY_LINK_CLICK, SOURCE_LINK_CLICK from FlareChatCommands.kt to ChatConstants.kt - These constants don't follow aws/chat/ prefix pattern and belong with other chat constants - Update BrowserConnector.kt imports to use ChatConstants * cleanup: remove build output files * revert: remove unintended package-lock.json changes * fix(rider): move off snapshot builds to stable 2025.3 release - Change Rider sdkVersion from '2025.3-SNAPSHOT' to '2025.3' - Resolves CI dependency resolution failures * Revert "fix(rider): move off snapshot builds to stable 2025.3 release" This reverts commit e8b12e6. * ci: retry build * Remove unused legacy link click message types The legacy types (source-link-click, response-body-link-click, footer-info-link-click) are never hit - all link clicks go through the aws/chat/* LSP types. * Revert infoLinkClick and sourceLinkClick to use handleChat --------- Co-authored-by: Aseem Sharma <aseemxs@amazon.com> Co-authored-by: Aseem sharma <198968351+aseemxs@users.noreply.github.com>
* fix(core): fix string comparison versions to semver * stop showing notifications in sandbox * detekt
…6206) * fix: reduce number of calls sent to ui before it is ready * fix(amazonq): fix ci builds --------- Co-authored-by: Manodnya Bhoite <manodnyb@amazon.com>
* fix(amazonq): Can't remove document listener * fix: updating the mockitoKotlin version for fixing ci builds * fix: upgrade mockito-kotlin to 6.2.3 and mockito-core to 5.20.0 - Update mockito from 5.12.0 to 5.20.0 - Update mockitoKotlin from 5.4.0 to 6.2.3 - Remove snapshot repository since we're using stable releases - Update CodeWhispererTestBase.kt to use mockito-kotlin 6.x API syntax This fixes failing CI tests caused by downgrading from 5.4.1-SNAPSHOT.
#6222) * fix(toolkit): region/credential picker dropdown not closing after selection --------- Co-authored-by: Jacob Chung <chungjac@amazon.com>
* fix(tests): downgrade mockito to 5.12.0 and mockito-kotlin to 5.4.0 for CI stability Downgrade from mockito-kotlin 6.2.3 to 5.4.0 (latest stable 5.x) and mockito-core from 5.20.0 to 5.12.0 to restore CI build stability without requiring extensive test migration to mockito-kotlin 6.x API. * fix(tests): downgrade mockito-kotlin to 5.4.0 for CI stability Downgrade mockito-kotlin from 6.2.3 to 5.4.0 (latest stable 5.x) to restore CI build stability without requiring extensive test migration to mockito-kotlin 6.x API. Keep mockito-core at 5.20.0.
…me settings (#6217) * fix: Handle directory paths in user-configured Node.js runtime settings * fix: fix unit tests cases * fix: Unit test cases --------- Co-authored-by: chungjac <chungjac@amazon.com>
Co-authored-by: chungjac <chungjac@amazon.com>
…straint (#6229) Co-authored-by: Aseem sharma <198968351+aseemxs@users.noreply.github.com>
Co-authored-by: David Hasani <davhasan@amazon.com>
* Updating version to 3.103 * Updating SNAPSHOT version to 3.104-SNAPSHOT --------- Co-authored-by: aws-toolkit-automation <>
…mework (#6268) * fix build failures from rider failing to resolve test framework * patch
…ots: C:/Program Files/pypy3.11-v7.3.20-win64/python.exe (#6273) * fix: windows unit test failure File accessed outside allowed roots: file://C:/Program Files/pypy3.11-v7.3.20-win64/python.exe * r
…values in JetBrains telemetry (#6260) * fix(amazonq): adding changelog * fix(amazonq): Fix for incorrect TriggerToResponseLatencyMilliseconds values in JetBrains telemetry --------- Co-authored-by: chungjac <chungjac@amazon.com>
* build: drop support for 243 * fix: remove 2024.3 * fix: FIX_WHEN_MIN_IS_252
…NoClassDefFoundError on startup (#6291) * fix(amazonq): adding changelog * fix(amazonq): Fix for incorrect TriggerToResponseLatencyMilliseconds values in JetBrains telemetry * fix: lazy-init languageIds in NodeJsRuntimeGroup to prevent NoClassDefFoundError Fixes #6289 NodeJsRuntimeGroup was eagerly initializing languageIds at construction time, which caused JavascriptLanguage to be loaded immediately when the plugin extension point was instantiated at IDE startup. In IDEs where the JavaScript plugin is unavailable (e.g. PyCharm), this resulted in a NoClassDefFoundError crashing the plugin. Making languageIds a lazy delegate defers the class loading until the property is actually accessed, avoiding the crash on startup. --------- Co-authored-by: chungjac <chungjac@amazon.com>
* fix(amazonq): adding changelog * fix(amazonq): Fix for incorrect TriggerToResponseLatencyMilliseconds values in JetBrains telemetry * fix: lazy-init languageIds in NodeJsRuntimeGroup to prevent NoClassDefFoundError Fixes #6289 NodeJsRuntimeGroup was eagerly initializing languageIds at construction time, which caused JavascriptLanguage to be loaded immediately when the plugin extension point was instantiated at IDE startup. In IDEs where the JavaScript plugin is unavailable (e.g. PyCharm), this resulted in a NoClassDefFoundError crashing the plugin. Making languageIds a lazy delegate defers the class loading until the property is actually accessed, avoiding the crash on startup. * fix: Adding try catch to catch NoClassDefFoundError --------- Co-authored-by: chungjac <chungjac@amazon.com>
…allback LSP (#6280) Co-authored-by: invictus <149003065+ashishrp-aws@users.noreply.github.com>
…n branch (#6304) * feat(cloudformation): Add CloudFormation Language Server integration (#6188) * feat(cloudformation): add CloudFormation LSP * update imports as per toolkits to toolkit rename * address PR comments on 1/26 * add didConfigurationChange notification to server * revert unintended package-lock.json changes * Add auto-update, manifest caching, hash verification, and legacy Linux support for LSP server * address comments * reduce class scopes * remove unused imports * add ldconfig lookup and binary check fallback for legacy linux * address detekt issues * create extension config, update init params * feat(cloudformation): add CloudFormation tool window, stacks tree view (#6215) * feat(cloudformation): add CloudFormation tool window and stacks tree view * remove seperate cfn region picker and subscribe to AwsConnectionManager for region info * address PR comments, no major change - 02/05 * fix(cloudformation): rename properties to fix failing test (#6241) * fix(cloudformation): rename properties to fix failing test * use gson serializer to fix detekt issue with PascalCase * feat(cloudformation): add resources exploration node (#6236) * Add CloudFormation resources node * Remove duplicated message bundles * gradle check fixes * Fixed imports and nested data classes * fix(cloudformation): persist resource types list (#6253) * fix(cloudformation): Skip credential resolution during transient connection states (#6252) * feat(cloudformation): Prompt for CloudFormation Language Server telem… (#6249) * feat(cloudformation): Prompt for CloudFormation Language Server telemetry opt-in * update changelog and reuse learn more message bundle * revert to using cfn dedicated learn more message * fix(cloudformation): dedupe resource pagination and add load more right click action (#6256) * feat(cloudformation): validate template via change set and add actions toolbar (#6255) * fix(cloudformation): suppress noisy LSP logMessage notifications from surfacing as balloon popups (#6259) * feat(cloudformation): add stack view panel and overview contents (#6250) * feat(cloudformation): add semantic versioning and limit server versio… (#6262) * feat(cloudformation): add semantic versioning and limit server version for compatibility * use isLatest, remove gh release api * fix(cloudformation): Fix imports and gradle properties (#6272) * feat(cloudformation): Add document manager to list available templates * Lint fixes * Addressed comments * Move DocumentMetadata to manager class, remove relative path parsing logs * Use absolute paths on hover, fix folder icon, fix imports * fix(cloudformation): auto focus search bar, allow for entire checkbox row to be selectable (#6266) * Merge pull request #6265 from Zee2413/lsp-integ-test feat(cloudformation): add cfn lsp integration test * feat(cloudformation): add stack resources panel (#6271) * feat(cloudformation): add stack resources panel * Move auto refresh logic into new listener and interface * feat(cloudformation): Add outputs panel to CloudFormation template (#6275) * feat(cloudformation): Add outputs panel to CloudFormation template * Addressed comments * Fix merge conflicts and api contract changes * feat(cloudformation): view change set diff and add deployment configu… (#6279) * feat(cloudformation): view change set diff and add deployment configurations * revert package lock * add live aware changeset drift in diff view * add titles to tables, rename change set tab, add diff view button * Minor code cleanup and detekt fix * Address PR feedback: 1. Silent catch → Now shows notifyError to the user with the failure reason 2. .get() without timeout → All 5 calls now use get(30, TimeUnit.SECONDS) — existing catch blocks handle TimeoutException 3. Scheduler lifecycle → Added project.isDisposed check at the start of each poll tick, and a MAX_POLL_COUNT of 3600 (1 hour at 1s intervals) to prevent infinite polling * feat(cloudformation): update README with CloudFormation language server features (#6283) * feat(cloudformation): Add stack events panel (#6277) * feat(cloudformation): Add stack events panel * Add changelog * Fixes * Created shared table panel method, using arn sdk methods * Make hook invocation column conditional, set console links dynamically, fix console icon spacing, fix display messages * Remove unused const * UI tweaks * Make changelog more concise * fix(cloudformation): add Node.js download link to error notification * fix(cloudformation): add extension name and version to the lsp init options * fix(cloudformation): convert cfn-guard settings rule pack to be a checkbox list * feat(cloudformation): add status bar showing CloudFormation deployment operations in-flight (#6287) * fix(cloudformation): Start CloudFormation LSP upon toolkit activation (#6293) * fix(cloudformation): Restart polling and switch to events panel after executing change set (#6290) Co-authored-by: invictus <149003065+ashishrp-aws@users.noreply.github.com> * fix(cloudformation): Update plugin description to include CloudFormation support (#6296) * fix(cloudformation): Fix CI (#6301) * feat(cloudformation): Add CloudFormation LSP Introduction notification (#6303) * fix(cloudformation): add credentials listener to cloudformation tool window * fix(cloudformation): Fix CI for 2025-3 version * fix lsp server shutdown * Add robust handling around cfn lsp server shutdown * Added comments * Move cfn resources into correct xml * Move all cfn lsp resources to correct xml * Remove unnecessary whitespace * Add explicit disposal of server following project close * Modify logging * feat(cloudformation): Add CloudFormation LSP Introduction notification * fix(cloudformation): consolidated change logs (#6305) --------- Co-authored-by: aws-toolkit-automation <43144436+aws-toolkit-automation@users.noreply.github.com> Co-authored-by: Zeeshan Ahmed <37942674+Zee2413@users.noreply.github.com> Co-authored-by: Laxman Reddy <141967714+laileni-aws@users.noreply.github.com> Co-authored-by: Zeeshan Ahmed <zeemed@amazon.com> Co-authored-by: invictus <149003065+ashishrp-aws@users.noreply.github.com>
| name: ${{ matrix.os }} | ||
|
|
||
| runs-on: ${{ matrix.os }} | ||
|
|
||
| strategy: | ||
| fail-fast: false | ||
| matrix: | ||
| os: [ubuntu-latest, windows-latest, macos-latest] | ||
|
|
||
| steps: | ||
| - name: Support longpaths | ||
| if: ${{ matrix.os == 'windows-latest' }} | ||
| run: git config --system core.longpaths true | ||
| - uses: actions/checkout@v2 | ||
| - uses: actions/setup-java@v4 | ||
| with: | ||
| distribution: 'corretto' | ||
| java-version: '21' | ||
| - name: Grant execute permission for gradlew | ||
| run: chmod +x gradlew | ||
| - name: Run CloudFormation LSP Integration Tests | ||
| run: ./gradlew :plugin-toolkit:jetbrains-core:integrationTest --info --full-stacktrace --console plain --tests "software.aws.toolkits.jetbrains.services.cfnlsp.CfnLspIntegrationTest" |
Check warning
Code scanning / CodeQL
Workflow does not contain permissions Medium
Show autofix suggestion
Hide autofix suggestion
Copilot Autofix
AI 23 days ago
In general, the fix is to explicitly declare permissions for the workflow or for each job, restricting GITHUB_TOKEN to the minimal required scopes. For this workflow, the job only checks out code and runs tests, so contents: read is sufficient.
The best minimal change without altering behavior is to add a permissions block at the workflow root level (just under name: or on:). This will apply to all jobs (here, just build) that don’t override permissions. We’ll set:
permissions:
contents: readThis ensures the workflow only has read access to repository contents while still allowing actions/checkout and the Gradle tests to run as before. No imports or external dependencies are needed; only the YAML in .github/workflows/cfn-lsp-integ.yml is updated.
Concretely, in .github/workflows/cfn-lsp-integ.yml, insert the permissions block after the name: line (line 1) so that lines 2–3 shift down. No other lines need changes.
| @@ -1,5 +1,8 @@ | ||
| name: CloudFormation LSP Integration Test | ||
|
|
||
| permissions: | ||
| contents: read | ||
|
|
||
| on: | ||
| push: | ||
| branches: [ main ] |
… remove Q and CodeWhisperer (#6312)
* fix(cloudformation): change cloudformation language server path * cleanup legacy dir
#6321) * fix(cloudformation): update Node.js resolution to be more robust for all operating systems and improve node failure prompt * make throw foldable
Changing the owner team
…environemnt variable (#6327)
…ry (#6328) ModelZoneMarket.cs is a hand-written zone marker that was placed in ReSharper.AWS/src/AWS.Psi/Protocol/, which is declared as a Gradle task output directory for the generateModels RdGen task. During buildPlugin, Gradle cleans stale outputs from this directory, deleting ModelZoneMarket.cs since it is not produced by the code generator. Move the file up one level to ReSharper.AWS/src/AWS.Psi/ where other hand-written files like ZoneMarker.cs already reside.
Automatic merge failed
Command line hint
To perform the merge from the command line, you could do something like the following (where "origin" is the name of the remote in your local git repo):