feat(vscode): add multi-root analysis workflows#978
Conversation
Feature flag enforcement
New feature flags in this PR
ResultPassed. This feature PR adds at least one new preview feature flag. |
Memory BenchmarksThresholds: bytes/op <= +15.0%, allocs/op <= +10.0%
Result: memory benchmark gate passed. Approval: not required. |
Lopper (Delta)
No dependency-surface deltas detected. |
SonarQube (PR)Open issues: 0 Duplication
IssuesOpen Sonar issues (0)
Source: SonarCloud PR view |
There was a problem hiding this comment.
Pull request overview
This PR significantly expands the VS Code extension surface to support multi-root workspaces and a richer set of analysis workflows (dependency explorer + detail drilldown, baseline save/compare, runtime-trace runs, export formats), and updates the e2e harness with a deterministic CLI fixture.
Changes:
- Add multi-root aware refresh routing plus a new “Lopper” explorer view and dependency detail webview.
- Thread baseline, runtime trace, thresholds/policy settings, single-dependency analysis, and export formats through the runner and command surface.
- Update report typings and e2e fixtures/tests to cover the expanded workflows.
Reviewed changes
Copilot reviewed 10 out of 10 changed files in this pull request and generated 6 comments.
Show a summary per file
| File | Description |
|---|---|
| extensions/vscode-lopper/test-fixtures/lopper-smoke-binary.mjs | Adds deterministic CLI fixture output for extension smoke/e2e flows. |
| extensions/vscode-lopper/src/types.ts | Extends report typings to include baseline/runtime/policy/cache and richer dependency metadata. |
| extensions/vscode-lopper/src/test/suite/smoke.test.ts | Updates smoke test to exercise multi-root behavior and new command surface. |
| extensions/vscode-lopper/src/test/suite/refreshLifecycle.test.ts | Updates harness stubs to match new runner interface (export support). |
| extensions/vscode-lopper/src/test/suite/lopperRunner.test.ts | Adds coverage for runtime/baseline/export flag threading and new executor API. |
| extensions/vscode-lopper/src/test/runTest.mjs | Switches e2e to multi-root workspace launch and uses the deterministic fixture binary. |
| extensions/vscode-lopper/src/lopperRunner.ts | Adds export support and threads runtime/baseline/threshold/policy flags into CLI invocations. |
| extensions/vscode-lopper/src/extension.ts | Adds multi-root controller logic, explorer tree, dependency detail webview, baseline/runtime/export/dependency commands. |
| extensions/vscode-lopper/README.md | Documents new sidebar, multi-root support, settings, and commands. |
| extensions/vscode-lopper/package.json | Contributes new commands, view, and configuration settings; expands activation events. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
…09-610-611-612-613-vscode-workflows # Conflicts: # internal/featureflags/features.json
Summary
Adds multi-root VS Code analysis workflows for #495, #496, #609, #610, #611, #612, and #613.
Changes
Validation
Commands run locally by the worker:
CI was otherwise green except for repository metadata/feature-flag enforcement.
Risk and compatibility
Closes #495
Closes #496
Closes #609
Closes #610
Closes #611
Closes #612
Closes #613
Checklist
memory-approvedrequested/applied if intentional memory benchmark regressions exceed CI thresholds