VS Code Insiders Support#4
Open
smaglio81 wants to merge 19 commits into
Open
Conversation
…ize empty roots to None
…ge_root to nested folder URI resolution
…llback roots when input parses empty
…E_ROOTS in helper text
…ssion_files keyword-only
…scovery) update _uri_to_path docstring for platform-agnostic output
…nset in panels and statusBar
… URIs in _uri_to_path
…able and Insiders roots
…te pyproject.toml to use local README.md
There was a problem hiding this comment.
Pull request overview
Note
Copilot was unable to run its full agentic suite in this review.
Adds support for discovering Copilot chat session data across both stable VS Code and VS Code Insiders workspace storage locations, replacing the single-root model with a multi-root model in both the VS Code extension and Python CLI.
Changes:
- Introduce
getWorkspaceStorageRoots/VSCODE_STORAGE_ROOTSreturning multiple platform-specific roots (stable + Insiders), with ordering based on the running host where applicable. - Update discovery, signature computation, file watchers, panels, status bar, and pipeline to iterate over and merge results across multiple roots.
- Update tests, docs, and settings UI to surface the multi-root behavior; rewrite
_uri_to_pathto useurlparse+url2pathnameand add an Insiders test case.
Reviewed changes
Copilot reviewed 12 out of 14 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
| apps/vscode-extension/src/core/discovery.ts | Replaces single-root API with multi-root variant and merges workspaces by id across roots. |
| apps/vscode-extension/src/extension.ts | Iterates all roots to create file watchers and threads storageRoots into refresh/signature calls. |
| apps/vscode-extension/src/views/panels.ts | Caches storageRoots per panel and passes it to discovery calls. |
| apps/vscode-extension/src/views/statusBar.ts | Adds storageRoots handling and removes constructor-side initial refresh. |
| apps/vscode-extension/src/test/discovery.test.ts | Updates existing tests to array form and adds ordering + merge tests. |
| apps/cli/src/copilot_usage/config.py | Adds VSCODE_STORAGE_ROOTS, keeping VSCODE_STORAGE_ROOT as backward-compat alias. |
| apps/cli/src/copilot_usage/discovery.py | Multi-root discovery; rewrites _uri_to_path for platform-native output. |
| apps/cli/src/copilot_usage/pipeline.py | Accepts storage_roots, keeps deprecated storage_root. |
| apps/cli/src/copilot_usage/dashboard/pages/pipeline.py | UI supports ;-separated multi-root paths. |
| apps/cli/src/copilot_usage/dashboard/pages/settings.py | Displays each storage root. |
| apps/cli/src/copilot_usage/main.py | Settings menu lists all storage roots. |
| apps/cli/README.md | New CLI README. |
| .gitignore | Ignores .blameprompt/ staging. |
Files not reviewed (1)
- apps/vscode-extension/package-lock.json: Language not supported
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Comment on lines
+24
to
+29
| if uri.startswith("file://"): | ||
| parsed = urlparse(uri) | ||
| parsed_path = parsed.path | ||
| if parsed.netloc: | ||
| parsed_path = f"//{parsed.netloc}{parsed_path}" | ||
| return url2pathname(unquote(parsed_path)) |
Comment on lines
+20
to
+25
| candidates = [ | ||
| base / "Code" / "User" / "workspaceStorage", | ||
| base / "Code - Insiders" / "User" / "workspaceStorage", | ||
| ] | ||
| found = [p for p in candidates if p.exists()] | ||
| return found if found else [candidates[0]] |
| @@ -30,11 +31,10 @@ export class StatusBarManager implements vscode.Disposable { | |||
| if (e.affectsConfiguration('copilot-usage') || didAffectCopilotDebugLogSetting(e)) { this.refresh(); } | |||
| }), | |||
| ); | |||
| for (const ws of results) { | ||
| const existing = merged.get(ws.workspaceId); | ||
| if (existing) { | ||
| existing.sessionFiles = [...new Set([...existing.sessionFiles, ...ws.sessionFiles])]; |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
In #1, the first feature request is support for VS Code Insiders. I also use VS Code Insiders, so I thought I would give it a try to add support.
The feature was written by AI (Claude, mostly Sonnet 4.6) and went through a lot of rounds of code review with GitHub Copilot Reviewer (PR Review).
There was a little hiccup that might be worth noting:
When following the main README.md's instructions for running
copilot-usageCLI:The
pip install -e .command failed with an error that thereadme = "README.md"(link) doesn't exist atapps/cli.The AI copied the main
README.mdinto that folder to satisfy the build.Anyways, HTH