refactor(vscode): Multi-project workspace folder support, consistent project resolution across commands, workspace util cleanup - #9531
Conversation
📊 Coverage CheckThe following changed files need attention: ❌
Please add tests for the uncovered files before merging. |
🤖 AI PR Validation ReportPR Review ResultsThank you for your submission! Here's detailed feedback on your PR title and body compliance:✅ PR Title
✅ Commit Type
✅ Risk Level
✅ What & Why
✅ Impact of Change
✅ Test Plan
|
| Section | Status | Recommendation |
|---|---|---|
| Title | ✅ | No change needed |
| Commit Type | ✅ | No change needed |
| Risk Level | ✅ | Medium is correct |
| What & Why | ✅ | No change needed |
| Impact of Change | ✅ | No change needed |
| Test Plan | ✅ | Unit tests confirmed |
| Contributors | Credit PMs/designers if any | |
| Screenshots/Videos | Optional — no visual change |
All required checks pass. This PR is compliant with the template and cleared to merge.
Powered by: Copilot CLI (claude-opus-4.8) | Last updated: Wed, 02 Sep 2026 21:26:50 GMT
…me usages of tryGetLogicAppProjectRoot (scoped to workspace folder)
…aceFolder/getWorkspaceFolderPath/getWorkflowLogicAppProjectRoot
…t root rather than workspace folder)
…date codeless/codeful utils, remove initProjectForVSCode command and projectSubpath config
…code-workspace-util-cleanup
There was a problem hiding this comment.
Pull request overview
Refactors the VS Code extension for nested and multi-project Logic Apps workspaces, centralizing project discovery and project-scoped command handling.
Changes:
- Adds codeless/codeful project discovery and project-aware command routing.
- Restructures deployment, debugging, panels, and settings around explicit project paths.
- Updates manifest contexts and expands unit-test coverage.
Reviewed changes
Copilot reviewed 117 out of 117 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
apps/vs-code-designer/src/test/e2e/integration/workspaceConversion.test.ts |
Cleans workspace test comments. |
apps/vs-code-designer/src/package.json |
Updates commands, settings, and menu contexts. |
apps/vs-code-designer/src/main.ts |
Discovers projects during activation. |
apps/vs-code-designer/src/extensionVariables.ts |
Documents legacy default project state. |
apps/vs-code-designer/src/constants.ts |
Updates command and context constants. |
apps/vs-code-designer/src/app/utils/vsCodeConfig/settings.ts |
Makes setting scope optional. |
apps/vs-code-designer/src/app/utils/vsCodeConfig/launch.ts |
Uses parent workspace resolution. |
apps/vs-code-designer/src/app/utils/startRuntimeApi.ts |
Resolves runtime workspace by project. |
apps/vs-code-designer/src/app/utils/managedIdentity.ts |
Updates every discovered project concurrently. |
apps/vs-code-designer/src/app/utils/funcCoreTools/funcHostTask.ts |
Resolves ports from explicit projects. |
apps/vs-code-designer/src/app/utils/fileManagement.ts |
Generalizes workspace-folder management. |
apps/vs-code-designer/src/app/utils/extension.ts |
Sets discovered-project context keys. |
apps/vs-code-designer/src/app/utils/dotnet/dotnet.ts |
Uses centralized project discovery. |
apps/vs-code-designer/src/app/utils/dotnet/__test__/dotnet.setCommand.test.ts |
Updates project-discovery mocks. |
apps/vs-code-designer/src/app/utils/codeless/startDesignTimeApi.ts |
Starts APIs for discovered projects. |
apps/vs-code-designer/src/app/utils/codeless/parameter.ts |
Resolves parameter project from workflow. |
apps/vs-code-designer/src/app/utils/codeless/hybridLogicApp/hybridApp.ts |
Selects a project for local settings. |
apps/vs-code-designer/src/app/utils/codeless/__test__/startDesignTimeApi.test.ts |
Updates discovery tests. |
apps/vs-code-designer/src/app/utils/codeless/__test__/parameter.test.ts |
Tests parent-project resolution. |
apps/vs-code-designer/src/app/utils/codeless.ts |
Adds codeless project detection. |
apps/vs-code-designer/src/app/utils/cloudToLocalUtils.ts |
Uses parent workspace lookup. |
apps/vs-code-designer/src/app/utils/bundleFeed.ts |
Resolves bundle settings from a project. |
apps/vs-code-designer/src/app/utils/azurite/__test__/activateAzurite.test.ts |
Removes obsolete project-discovery tests. |
apps/vs-code-designer/src/app/utils/appSettings/__test__/connectionKeys.test.ts |
Updates discovery mock naming. |
apps/vs-code-designer/src/app/utils/__test__/managedIdentity.test.ts |
Tests multi-project settings updates. |
apps/vs-code-designer/src/app/utils/__test__/FileManagement.test.ts |
Adds workspace-folder utility tests. |
apps/vs-code-designer/src/app/utils/__test__/extension.test.ts |
Tests project context values. |
apps/vs-code-designer/src/app/utils/__test__/codeless.test.ts |
Tests codeless detection. |
apps/vs-code-designer/src/app/utils/__test__/bundleFeed.test.ts |
Updates project-selection mocks. |
apps/vs-code-designer/src/app/tree/AzureAccountTreeItemWithProjects.ts |
Removes project-subpath refresh handling. |
apps/vs-code-designer/src/app/projectConsistency/vscodeConsistency.ts |
Checks every discovered project. |
apps/vs-code-designer/src/app/projectConsistency/projectFilesConsistency.ts |
Reuses shared path comparison. |
apps/vs-code-designer/src/app/projectConsistency/__test__/vscodeConsistency.test.ts |
Updates consistency discovery tests. |
apps/vs-code-designer/src/app/projectConsistency/__test__/projectFilesConsistency.test.ts |
Preserves path utilities in mocks. |
apps/vs-code-designer/src/app/languageServer/languageServer.ts |
Selects a project for language-server startup. |
apps/vs-code-designer/src/app/languageServer/__test__/languageServer.test.ts |
Updates language-server selection tests. |
apps/vs-code-designer/src/app/commands/workflows/useSQLStorage.ts |
Makes SQL storage project-scoped. |
apps/vs-code-designer/src/app/commands/workflows/unitTest/createUnitTest.ts |
Resolves workflows and projects explicitly. |
apps/vs-code-designer/src/app/commands/workflows/unitTest/__test__/createUnitTest.test.ts |
Tests workflow/project fallbacks. |
apps/vs-code-designer/src/app/commands/workflows/switchDebugMode/switchDebugMode.ts |
Makes debug-mode switching project-scoped. |
apps/vs-code-designer/src/app/commands/workflows/switchDebugMode/__test__/switchDebugMode.test.ts |
Tests project resolution. |
apps/vs-code-designer/src/app/commands/workflows/overview/panels/localOverviewPanel.ts |
Resolves the containing project. |
apps/vs-code-designer/src/app/commands/workflows/overview/panels/localCodefulOverviewPanel.ts |
Resolves codeful project roots. |
apps/vs-code-designer/src/app/commands/workflows/overview/panels/__test__/localOverviewPanel.test.ts |
Updates project-root mocks. |
apps/vs-code-designer/src/app/commands/workflows/overview/panels/__test__/localCodefulOverviewPanel.test.ts |
Updates codeful project mocks. |
apps/vs-code-designer/src/app/commands/workflows/overview/openOverview.ts |
Falls back to the active workflow. |
apps/vs-code-designer/src/app/commands/workflows/overview/__test__/openOverview.test.ts |
Tests active-workflow fallback. |
apps/vs-code-designer/src/app/commands/workflows/monitoringView/panels/localMonitoringPanel.ts |
Makes monitoring metadata project-aware. |
apps/vs-code-designer/src/app/commands/workflows/monitoringView/panels/__test__/localMonitoringPanel.test.ts |
Updates monitoring project mocks. |
apps/vs-code-designer/src/app/commands/workflows/designer/utils/parameterMerge.ts |
Uses workflow-based parameter lookup. |
apps/vs-code-designer/src/app/commands/workflows/designer/panels/localDesignerPanel.ts |
Makes designer operations project-aware. |
apps/vs-code-designer/src/app/commands/workflows/designer/panels/__test__/localDesignerPanel.test.ts |
Updates designer project tests. |
apps/vs-code-designer/src/app/commands/workflows/designer-v2/panels/localDesignerV2Panel.ts |
Makes V2 designer project-aware. |
apps/vs-code-designer/src/app/commands/workflows/designer-v2/panels/__test__/localDesignerV2Panel.test.ts |
Updates V2 panel tests. |
apps/vs-code-designer/src/app/commands/workflows/designer-v2/openDesignerV2.ts |
Resolves projects before custom-code builds. |
apps/vs-code-designer/src/app/commands/workflows/designer-v2/__test__/openDesignerV2.test.ts |
Tests project-aware V2 opening. |
apps/vs-code-designer/src/app/commands/workflows/connectionView/panels/connectionPanel.ts |
Makes connection operations project-aware. |
apps/vs-code-designer/src/app/commands/workflows/connectionView/panels/__test__/connectionPanelRace.test.ts |
Updates connection project mocks. |
apps/vs-code-designer/src/app/commands/workflows/configureWebhookRedirectEndpoint/configureWebhookRedirectEndpoint.ts |
Resolves webhook settings by project. |
apps/vs-code-designer/src/app/commands/workflows/__test__/useSQLStorage.test.ts |
Tests SQL project selection. |
apps/vs-code-designer/src/app/commands/syncCloudSettings.ts |
Makes cloud-settings sync project-scoped. |
apps/vs-code-designer/src/app/commands/runProjectConsistencyCheck.ts |
Runs checks for discovered projects. |
apps/vs-code-designer/src/app/commands/registerCommands.ts |
Updates command registrations. |
apps/vs-code-designer/src/app/commands/publishCodefulProject.ts |
Publishes explicit project paths. |
apps/vs-code-designer/src/app/commands/pickFuncProcess.ts |
Passes project paths through debugging. |
apps/vs-code-designer/src/app/commands/parameterizeConnections.ts |
Parameterizes all discovered projects. |
apps/vs-code-designer/src/app/commands/initProjectForVSCode/initProjectForVSCode.ts |
Restricts initialization to projects. |
apps/vs-code-designer/src/app/commands/generateDeploymentScripts/generateDeploymentScriptsSteps/adoDeploymentScriptsSteps/GenerateADODeploymentScriptsStep.ts |
Uses shared file management. |
apps/vs-code-designer/src/app/commands/generateDeploymentScripts/generateDeploymentScripts.ts |
Selects deployment-script projects. |
apps/vs-code-designer/src/app/commands/generateDeploymentScripts/__test__/generateDeploymentScripts.test.ts |
Tests project selection. |
apps/vs-code-designer/src/app/commands/generateDeploymentScripts/__test__/FileManagement.test.ts |
Removes relocated utility tests. |
apps/vs-code-designer/src/app/commands/ensureWorkspace.ts |
Uses centralized workspace discovery. |
apps/vs-code-designer/src/app/commands/deploy/hybridLogicApp/index.ts |
Passes project paths into SMB deployment. |
apps/vs-code-designer/src/app/commands/deploy/hybridLogicApp/connectToSMB.ts |
Uploads an explicit project. |
apps/vs-code-designer/src/app/commands/deploy/hybridLogicApp/__test__/connectToSMB.test.ts |
Updates SMB deployment tests. |
apps/vs-code-designer/src/app/commands/debugLogicApp.ts |
Selects projects for debugging. |
apps/vs-code-designer/src/app/commands/dataMapper/dataMapper.ts |
Adds project selection to Data Mapper. |
apps/vs-code-designer/src/app/commands/createWorkflow/createWorkflow.ts |
Supplies all projects and workflow names. |
apps/vs-code-designer/src/app/commands/createProject/createProjectSteps/existingWorkspaceStep.ts |
Derives paths from workspace files. |
apps/vs-code-designer/src/app/commands/createNewCodeProject/CodeProjectBase/CreateLogicAppProjects.ts |
Uses centralized project detection. |
apps/vs-code-designer/src/app/commands/buildCustomCodeFunctionsProject.ts |
Builds from explicit project paths. |
apps/vs-code-designer/src/app/commands/azureConnectors/enableAzureConnectors.ts |
Makes connector setup project-scoped. |
apps/vs-code-designer/src/app/commands/azureConnectors/__test__/enableAzureConnectors.test.ts |
Tests connector project selection. |
apps/vs-code-designer/src/app/commands/appSettings/uploadAppSettings.ts |
Uploads settings from selected projects. |
apps/vs-code-designer/src/app/commands/appSettings/downloadAppSettings.ts |
Downloads settings into selected projects. |
apps/vs-code-designer/src/app/commands/appSettings/__test__/uploadAppSettings.test.ts |
Tests explicit and selected paths. |
apps/vs-code-designer/src/app/commands/addCustomCode/addCustomCode.ts |
Uses centralized project validation. |
apps/vs-code-designer/src/app/commands/addCustomCode/__test__/addCustomCode.test.ts |
Updates project-validation mocks. |
apps/vs-code-designer/src/app/commands/__test__/pickFuncProcess.test.ts |
Tests project-aware debugging. |
apps/vs-code-designer/src/app/commands/__test__/pickCustomCodeWorkerProcess.test.ts |
Removes obsolete discovery mocks. |
apps/vs-code-designer/src/app/commands/__test__/parameterizeConnections.test.ts |
Updates discovery assertions. |
apps/vs-code-designer/src/app/commands/__test__/debugLogicApp.test.ts |
Tests debug project selection. |
apps/vs-code-designer/src/app/commands/__test__/commandWebviewWrappers.test.ts |
Tests multi-project webview data. |
apps/vs-code-designer/src/app/commands/__test__/buildCustomCodeFunctionsProject.test.ts |
Updates explicit-path build tests. |
apps/vs-code-designer/src/__test__/logicAppProjectMenuVisibility.test.ts |
Tests project-root menu visibility. |
apps/vs-code-designer/.github/copilot-skills/vscode-e2e-testing.md |
Updates documented E2E inventory. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
…pt for auto-start design time non-blocking
…code-workspace-util-cleanup
…buildCustomCodeFunctionsProject command
…server in multi-root workspace
…code-workspace-util-cleanup
Commit Type
Risk Level
What & Why
Impact of Change
Test Plan
Contributors
Andrew Eldridge (@andrew-eldridge)