Skip to content

fix(vscode): Node 24 / VS Code 1.123 compatibility and fallback handling for connector prompts#9246

Merged
lambrianmsft merged 12 commits into
Azure:mainfrom
lambrianmsft:vscode_extension_node24
Jun 5, 2026
Merged

fix(vscode): Node 24 / VS Code 1.123 compatibility and fallback handling for connector prompts#9246
lambrianmsft merged 12 commits into
Azure:mainfrom
lambrianmsft:vscode_extension_node24

Conversation

@lambrianmsft
Copy link
Copy Markdown
Contributor

@lambrianmsft lambrianmsft commented Jun 4, 2026

Commit Type

  • feature - New functionality
  • fix - Bug fix
  • refactor - Code restructuring without behavior change
  • perf - Performance improvement
  • docs - Documentation update
  • test - Test-related changes
  • chore - Maintenance/tooling

Risk Level

  • Low - Minor changes, limited scope
  • Medium - Moderate changes, some user impact
  • High - Major changes, significant user/system impact

What & Why

Users have to revert to a previous version of vscode in order to use the vscode extension otherwise they are running into issues with creating a workspace and debugging logic apps.

Impact of Change

  • Users:
    Users should now be able to use the latest version of vscode with our extension.
  • Developers:
  • System:

Test Plan

  • Unit tests added/updated
  • E2E tests added/updated
  • Manual testing completed
  • Tested in:

Contributors

Screenshots/Videos

Copilot AI added 5 commits June 4, 2026 13:10
Restore legacy node:util helpers required by Azure extension utilities under VS Code's Node 24 runtime and harden Logic Apps language server startup when project or dependency paths are missing.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Allow run-e2e.js to target an explicit VS Code version while keeping the default suite pinned. Add compatibility activation smokes for Node 20/22 with VS Code 1.108 and Node 24 with VS Code 1.123 so the latest extension is checked against both older and newer VS Code/Electron runtimes.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Default and create the Logic Apps runtime dependencies path at dependency-install boundaries before installing LSP, Node, .NET, or Functions Core Tools assets. Also make dependency downloads wait for stream completion and fail on writer/readable stream errors.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot AI review requested due to automatic review settings June 4, 2026 23:29
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Jun 4, 2026

🤖 AI PR Validation Report

PR Review Results

Thank you for your submission! Here's detailed feedback on your PR title and body compliance:

PR Title

  • Current: fix(vscode): Node 24 / VS Code 1.123 compatibility and fallback handling for connector prompts
  • Issue: None — the title is specific, informative, and accurately reflects the change.
  • Recommendation: No change needed.

Commit Type

  • Properly selected (fix).
  • Only one commit type is selected, which matches the template requirement.

⚠️ Risk Level

  • The submitted risk label is risk:medium, and that is reasonable for the scope of this change.
  • Advised risk level remains medium based on the diff: it touches VS Code/E2E compatibility paths, connector prompt fallback behavior, runtime dependency handling, and language-server startup logic, but it is still bounded and well covered by tests.

⚠️ What & Why

  • Current: Users have to revert to a previous version of vscode in order to use the vscode extension otherwise they are running into issues with creating a workspace and debugging logic apps.
  • Issue: This is understandable, but a bit broader than necessary and does not mention the key fix areas in the diff (Node 24 / VS Code 1.123 compatibility, connector prompt fallback, and dependency/runtime handling).
  • Recommendation: Consider tightening it to something like: Fix VS Code 1.123 / Node 24 compatibility issues by adding util fallback helpers, improving connector prompt cancellation behavior, and hardening runtime dependency handling.

Impact of Change

  • The user-facing impact is described clearly enough for the scope of the change.
  • Recommendation:
    • Users: Good as-is; optionally mention that prompts now default safely when cancelled and latest VS Code versions are supported.
    • Developers: Could mention the runtime dependency path helper and compatibility shim if you want more detail.
    • System: No additional detail required, though noting CI/E2E coverage additions would be helpful.

Test Plan

  • Passes.
  • The diff contains both unit tests and E2E tests, which satisfies the template requirements.

Contributors

  • Blank is acceptable and does not fail validation.
  • Optional: add contributors if PM/design/help was involved.

Screenshots/Videos

  • Not required for this change set.
  • Blank is acceptable.

Summary Table

Section Status Recommendation
Title No change needed
Commit Type No change needed
Risk Level No change needed
What & Why ⚠️ Make the summary more specific to the actual fixes
Impact of Change Optional: add a bit more detail for developers/system
Test Plan No change needed
Contributors Optional only
Screenshots/Videos Optional only

Overall: this PR passes. The only improvement I'd recommend is tightening the What & Why section so it explicitly mentions the VS Code/Node compatibility fix and connector prompt fallback behavior.


Last updated: Fri, 05 Jun 2026 21:16:04 GMT

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR addresses breakages in the VS Code extension when running on newer VS Code/Electron (newer embedded Node), by adding a Node util compatibility shim, hardening runtime dependency path initialization, and expanding E2E/CI coverage to validate activation across multiple Node/VS Code combinations.

Changes:

  • Add a node:util compatibility patch (restoring legacy helpers) and ensure it’s applied at extension startup.
  • Centralize/standardize runtime dependency path initialization via ensureRuntimeDependenciesPath() and adopt it across installers + LSP SDK install.
  • Improve resilience/diagnostics in E2E + design-time host output (health-check spam suppression) and add a CI compatibility matrix job.

Reviewed changes

Copilot reviewed 20 out of 20 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
apps/vs-code-designer/test-setup.ts Extends FS mocks needed by updated unit-test paths.
apps/vs-code-designer/src/test/ui/run-e2e.js Allows VS Code version override via env vars and logs chosen version.
apps/vs-code-designer/src/nodeUtilCompatibility.ts Adds a Node util legacy-helper shim and applies it on import.
apps/vs-code-designer/src/main.ts Ensures the compatibility shim is loaded at extension startup.
apps/vs-code-designer/src/app/utils/runtimeDependenciesPath.ts Introduces a helper to default + create the runtime dependency directory and persist the setting.
apps/vs-code-designer/src/app/utils/languageServerProtocol.ts Uses the dependency-path helper and adjusts hash computation logic for LSP assets.
apps/vs-code-designer/src/app/utils/codeless/startDesignTimeApi.ts Adds output de-duplication for repeated failing health-check log lines; flushes partial output on stream close.
apps/vs-code-designer/src/app/utils/codeless/test/startDesignTimeApi.test.ts Adds unit tests for health-check suppression + flushing behavior.
apps/vs-code-designer/src/app/utils/binaries.ts Refactors dependency download/extract flow to use async/await and adds stream error handling.
apps/vs-code-designer/src/app/utils/test/binaries.test.ts Updates/extends tests for download error paths (writer + stream failures).
apps/vs-code-designer/src/app/utils/test/runtimeDependenciesPath.test.ts Adds tests covering defaulted vs configured dependency-path behavior.
apps/vs-code-designer/src/app/utils/test/languageServerProtocol.test.ts Updates tests for defaulting the dependency path before LSP extraction and path checks.
apps/vs-code-designer/src/app/languageServer/languageServer.ts Hardens startup when project root/dependencies are missing; improves warning messages.
apps/vs-code-designer/src/app/languageServer/test/languageServer.test.ts Adds coverage for early returns and missing dependency scenarios.
apps/vs-code-designer/src/app/commands/nodeJs/installNodeJs.ts Uses the dependency-path helper instead of directly reading the setting.
apps/vs-code-designer/src/app/commands/funcCoreTools/installFuncCoreTools.ts Uses the dependency-path helper instead of directly reading the setting.
apps/vs-code-designer/src/app/commands/dotnet/installDotNet.ts Uses the dependency-path helper instead of directly reading the setting.
apps/vs-code-designer/src/app/commands/binaries/validateAndInstallBinaries.ts Replaces manual default-setting logic with the dependency-path helper.
apps/vs-code-designer/src/test/nodeUtilCompatibility.test.ts Adds unit tests verifying legacy util helpers are restored when missing.
.github/workflows/vscode-e2e.yml Adds a compatibility smoke matrix job (Node 20/22/24 + VS Code 1.108/1.123) and gates summary on it.

Comment thread apps/vs-code-designer/src/app/utils/binaries.ts
Comment thread apps/vs-code-designer/src/app/utils/languageServerProtocol.ts
Copilot AI added 2 commits June 4, 2026 17:37
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Narrow language server startup to linked custom code projects, avoid connector metadata warm-up during design-time startup, and make p43 E2E failures report runtime readiness before overview navigation. Add focused coverage for runtime dependency installers and Azure connector wizard fallbacks, with narrow coverage exclusions for VS Code orchestration and shared install plumbing.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@lambrianmsft lambrianmsft added the risk:medium Medium risk change with potential impact label Jun 5, 2026
@lambrianmsft lambrianmsft changed the title fix(vscode): Newest vscode causing issues with our vscode extension. fix(vscode): Node 24 / VS Code 1.123 compatibility and fallback handling for connector prompts Jun 5, 2026
Copilot AI added 4 commits June 5, 2026 12:56
Use the shared dependency validation helper in designer actions and re-resolve the Functions Core Tools binary path while polling so CI handles layouts where func moves under in-proc folders after validation reinstalls dependencies.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Discover the Functions Core Tools executable recursively under the dependency cache and give the designer actions before hook enough time to report dependency diagnostics instead of being killed by Mocha.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@lambrianmsft lambrianmsft enabled auto-merge (squash) June 5, 2026 21:35
@lambrianmsft lambrianmsft disabled auto-merge June 5, 2026 21:35
@lambrianmsft lambrianmsft merged commit 0d9fafd into Azure:main Jun 5, 2026
35 of 38 checks passed
lambrianmsft added a commit to lambrianmsft/LogicAppsUX that referenced this pull request Jun 6, 2026
…ing for connector prompts (Azure#9246)

* fix(vscode): support Node 24 activation

Restore legacy node:util helpers required by Azure extension utilities under VS Code's Node 24 runtime and harden Logic Apps language server startup when project or dependency paths are missing.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* test(vscode): add Node compatibility E2E lane

Allow run-e2e.js to target an explicit VS Code version while keeping the default suite pinned. Add compatibility activation smokes for Node 20/22 with VS Code 1.108 and Node 24 with VS Code 1.123 so the latest extension is checked against both older and newer VS Code/Electron runtimes.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix(vscode): ensure runtime dependency root

Default and create the Logic Apps runtime dependencies path at dependency-install boundaries before installing LSP, Node, .NET, or Functions Core Tools assets. Also make dependency downloads wait for stream completion and fail on writer/readable stream errors.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix(vscode): suppress repeated health check logs

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* test(vscode): cover unhealthy health check logs

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix(vscode): default cancelled connector prompts to keys

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* test(vscode): preflight VS Code CLI path

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix(vscode): stabilize debug startup checks

Narrow language server startup to linked custom code projects, avoid connector metadata warm-up during design-time startup, and make p43 E2E failures report runtime readiness before overview navigation. Add focused coverage for runtime dependency installers and Azure connector wizard fallbacks, with narrow coverage exclusions for VS Code orchestration and shared install plumbing.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* test(vscode): stabilize custom code dependency wait

Use the shared dependency validation helper in designer actions and re-resolve the Functions Core Tools binary path while polling so CI handles layouts where func moves under in-proc folders after validation reinstalls dependencies.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* test(vscode): find nested func runtime binaries

Discover the Functions Core Tools executable recursively under the dependency cache and give the designer actions before hook enough time to report dependency diagnostics instead of being killed by Mocha.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix(vscode): address dependency cleanup review

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix(vscode): reinstall incomplete runtime dependencies

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
lambrianmsft added a commit to lambrianmsft/LogicAppsUX that referenced this pull request Jun 6, 2026
…ing for connector prompts (Azure#9246)

* fix(vscode): support Node 24 activation

Restore legacy node:util helpers required by Azure extension utilities under VS Code's Node 24 runtime and harden Logic Apps language server startup when project or dependency paths are missing.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* test(vscode): add Node compatibility E2E lane

Allow run-e2e.js to target an explicit VS Code version while keeping the default suite pinned. Add compatibility activation smokes for Node 20/22 with VS Code 1.108 and Node 24 with VS Code 1.123 so the latest extension is checked against both older and newer VS Code/Electron runtimes.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix(vscode): ensure runtime dependency root

Default and create the Logic Apps runtime dependencies path at dependency-install boundaries before installing LSP, Node, .NET, or Functions Core Tools assets. Also make dependency downloads wait for stream completion and fail on writer/readable stream errors.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix(vscode): suppress repeated health check logs

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* test(vscode): cover unhealthy health check logs

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix(vscode): default cancelled connector prompts to keys

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* test(vscode): preflight VS Code CLI path

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix(vscode): stabilize debug startup checks

Narrow language server startup to linked custom code projects, avoid connector metadata warm-up during design-time startup, and make p43 E2E failures report runtime readiness before overview navigation. Add focused coverage for runtime dependency installers and Azure connector wizard fallbacks, with narrow coverage exclusions for VS Code orchestration and shared install plumbing.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* test(vscode): stabilize custom code dependency wait

Use the shared dependency validation helper in designer actions and re-resolve the Functions Core Tools binary path while polling so CI handles layouts where func moves under in-proc folders after validation reinstalls dependencies.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* test(vscode): find nested func runtime binaries

Discover the Functions Core Tools executable recursively under the dependency cache and give the designer actions before hook enough time to report dependency diagnostics instead of being killed by Mocha.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix(vscode): address dependency cleanup review

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix(vscode): reinstall incomplete runtime dependencies

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

pr-validated risk:medium Medium risk change with potential impact

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants