Skip to content

Conversation

@tsmithsz
Copy link
Contributor

@tsmithsz tsmithsz commented Sep 4, 2025

Problem

Related PR:

As part of changes made to move amazonq-ui.js from clients.zip to servers.zip, we now need to load the LSP UI from the correct locations.

Solution

lspArtifact.ts - Added backwards compatibility check for amazonq-ui.js in both locations

lspInstaller.ts - Added backwards compatibility logic to check both clients/ and servers/ directories

types.ts - Updated comments to show both possible locations

baseLspInstaller.ts - Updated comments to reflect the change

The changes maintain backwards compatibility.

Testing

Tested using local build on Mac and Windows with the old and new .zip setup and plugin works without issue

  • Treat all work as PUBLIC. Private feature/x branches will not be squash-merged at release time.
  • Your code changes must meet the guidelines in CONTRIBUTING.md.
  • License: I confirm that my contribution is made under the terms of the Apache 2.0 license.

@tsmithsz tsmithsz requested a review from a team as a code owner September 4, 2025 00:57
@amazon-inspector-ohio
Copy link

⏳ I'm reviewing this pull request for security vulnerabilities and code quality issues. I'll provide an update when I'm done

@github-actions
Copy link

github-actions bot commented Sep 4, 2025

  • This pull request modifies code in src/* but no tests were added/updated.
    • Confirm whether tests should be added or ensure the PR description explains why tests are not required.
  • This pull request implements a feat or fix, so it must include a changelog entry (unless the fix is for an unreleased feature). Review the changelog guidelines.
    • Note: beta or "experiment" features that have active users should announce fixes in the changelog.
    • If this is not a feature or fix, use an appropriate type from the title guidelines. For example, telemetry-only changes should use the telemetry type.

@amazon-inspector-ohio
Copy link

✅ I finished the code review, and didn't find any security or code quality issues.

* SPDX-License-Identifier: Apache-2.0
*/

import * as nodeFs from 'fs'
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

what is the reason of using nodeFs

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The fs wrapper in the toolkit doesn't have existsSync, but Node.js's native fs module does

if (!fs.existsSync(path.join(resourcesDir, 'servers', 'aws-lsp-codewhisperer.js'))) {
throw new Error(`Extracting aws-lsp-codewhisperer.js failure`)
}
if (!fs.existsSync(path.join(resourcesDir, 'clients', 'amazonq-ui.js'))) {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You need to make it compatible with https://github.com/aws/aws-toolkit-vscode/pull/7421/files. Please check function export function getBundledResourcePaths(ctx: vscode.ExtensionContext): AmazonQResourcePaths {

@tsmithsz tsmithsz marked this pull request as draft September 4, 2025 19:01
@tsmithsz tsmithsz closed this Oct 2, 2025
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.

2 participants