Skip to content

Merge main into feature/coreDeprecation#6171

Open
aws-toolkit-automation wants to merge 44 commits intofeature/coreDeprecationfrom
autoMerge/feature/coreDeprecation
Open

Merge main into feature/coreDeprecation#6171
aws-toolkit-automation wants to merge 44 commits intofeature/coreDeprecationfrom
autoMerge/feature/coreDeprecation

Conversation

@aws-toolkit-automation
Copy link
Copy Markdown
Collaborator

Automatic merge failed

  • Resolve conflicts and push to this PR branch.
  • Do not squash-merge this PR. Use the "Create a merge commit" option to do a regular merge.

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):

git stash
git fetch --all
git checkout origin/feature/coreDeprecation
git merge origin/main
git commit
git push origin HEAD:refs/heads/autoMerge/feature/coreDeprecation

* build: update jb 253 to stable

* remove non-required versions

* resolve detekt failures
@aws-toolkit-automation aws-toolkit-automation requested review from a team as code owners January 9, 2026 21:42
chungjac and others added 27 commits January 12, 2026 12:59
* 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>
Comment on lines +15 to +36
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

Actions job or workflow does not limit the permissions of the GITHUB_TOKEN. Consider setting an explicit permissions block, using the following as a minimal starting point: {contents: read}

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: read

This 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.

Suggested changeset 1
.github/workflows/cfn-lsp-integ.yml

Autofix patch

Autofix patch
Run the following command in your local git repository to apply this patch
cat << 'EOF' | git apply
diff --git a/.github/workflows/cfn-lsp-integ.yml b/.github/workflows/cfn-lsp-integ.yml
--- a/.github/workflows/cfn-lsp-integ.yml
+++ b/.github/workflows/cfn-lsp-integ.yml
@@ -1,5 +1,8 @@
 name: CloudFormation LSP Integration Test
 
+permissions:
+  contents: read
+
 on:
   push:
     branches: [ main ]
EOF
@@ -1,5 +1,8 @@
name: CloudFormation LSP Integration Test

permissions:
contents: read

on:
push:
branches: [ main ]
Copilot is powered by AI and may make mistakes. Always verify output.
aws-toolkit-automation and others added 16 commits March 13, 2026 19:08
* 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
…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.
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.