Issue reporter wizard#317577
Merged
Merged
Conversation
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Contributor
There was a problem hiding this comment.
Pull request overview
This pull request introduces a new “issue reporter wizard” experience (editor-tab based) alongside the classic auxiliary-window reporter, adding first-class capture (screenshots/recordings) and attachment upload support for the native desktop workbench.
Changes:
- Add a wizard-based issue reporter hosted in an editor pane, with new keybindings and extensive UI styling.
- Introduce screenshot/recording/upload services (with native Electron implementations and browser fallbacks) and a new
submitIssueflow that can upload attachments via GitHub’s Mobile Upload API. - Extend diagnostics/performance collection APIs to support cache-bypass and unbounded workspace scans, plus improve workspace file-type accounting.
Show a summary per file
| File | Description |
|---|---|
| src/vs/workbench/test/electron-browser/workbenchTestServices.ts | Updates test native host stub with new native-host APIs used by the wizard. |
| src/vs/workbench/contrib/issue/test/browser/testReporterModel.test.ts | Adjusts tests for renamed “unsupported”/integrity mode flag. |
| src/vs/workbench/contrib/issue/electron-browser/nativeScreenshotService.ts | New native screenshot service returning a JPEG data URL from getScreenshot(). |
| src/vs/workbench/contrib/issue/electron-browser/nativeRecordingService.ts | New native recording service built on MediaRecorder + getDisplayMedia, with size limiting and permission handling. |
| src/vs/workbench/contrib/issue/electron-browser/nativeIssueFormService.ts | Routes between legacy reporter and wizard editor-tab flow; improves legacy reporter disposal handling. |
| src/vs/workbench/contrib/issue/electron-browser/nativeGitHubUploadService.ts | New desktop upload service that uses native host upload entrypoint; resolves repo IDs. |
| src/vs/workbench/contrib/issue/electron-browser/issueService.ts | Adds wizard/legacy branching, async background data population for wizard, and refines error surfacing. |
| src/vs/workbench/contrib/issue/electron-browser/issueReporterService.ts | Renames unsupported-mode plumbing to installation-purity semantics. |
| src/vs/workbench/contrib/issue/electron-browser/issue.contribution.ts | Registers wizard editor pane + new services; adds wizard configuration settings. |
| src/vs/workbench/contrib/issue/common/issue.ts | Extends common issue types/data (new Unknown source, new submission host interface, new required purity flag). |
| src/vs/workbench/contrib/issue/browser/screenshotService.ts | Adds screenshot service abstraction and browser fallback. |
| src/vs/workbench/contrib/issue/browser/recordingService.ts | Adds recording service abstraction and browser fallback. |
| src/vs/workbench/contrib/issue/browser/media/issueReporterOverlay.css | New large stylesheet for the wizard UI and capture/attachment flows. |
| src/vs/workbench/contrib/issue/browser/issueService.ts | Aligns browser issue reporter data with installation-purity semantics. |
| src/vs/workbench/contrib/issue/browser/issueReporterModel.ts | Updates serialization logic for new fields and revises how diagnostics sections are included/rendered. |
| src/vs/workbench/contrib/issue/browser/issueReporterKeybindings.ts | Adds global capture-phase key handling + command/keybinding rules for wizard capture/recording. |
| src/vs/workbench/contrib/issue/browser/issueReporterEditorPane.ts | New editor pane hosting the wizard overlay, wiring capture/recording/upload/title-generation. |
| src/vs/workbench/contrib/issue/browser/issueReporterEditorInput.ts | New singleton editor input with close-confirmation behavior for the wizard tab. |
| src/vs/workbench/contrib/issue/browser/issueFormService.ts | Adds submitIssue flow with attachment upload + URL size mitigation (issue-data attachment). |
| src/vs/workbench/contrib/issue/browser/issue.contribution.ts | Registers browser fallbacks for new services so DI can construct the updated form service. |
| src/vs/workbench/contrib/issue/browser/githubUploadService.ts | Adds upload service abstraction + browser fallback implementation. |
| src/vs/workbench/browser/layout.ts | Minor formatting-only change. |
| src/vs/platform/process/electron-main/processMainService.ts | Threads new performance options through to diagnostics service. |
| src/vs/platform/process/common/process.ts | Extends IProcessService.getPerformanceInfo API with options. |
| src/vs/platform/native/electron-main/nativeHostMainService.ts | Adds media access status query + GitHub Mobile Upload API implementation in main process. |
| src/vs/platform/native/common/native.ts | Extends native host service contract with new media status + upload APIs. |
| src/vs/platform/diagnostics/node/diagnosticsService.ts | Adds cache-bypass/unbounded scan options and improves file-type counting (incl. extensionless files). |
| src/vs/platform/diagnostics/common/diagnostics.ts | Extends diagnostics API to accept performance options. |
| src/vs/code/electron-main/app.ts | Adds a setDisplayMediaRequestHandler that auto-selects the appropriate screen and warms up screen sources. |
Copilot's findings
- Files reviewed: 30/31 changed files
- Comments generated: 2
The wizard flow opens the reporter before populateReporterDataAsync completes, so isInstallationPure defaults to true and is never updated in the overlay's internal model. Add a whenDataComplete promise that resolves after all async data is populated, and forward the resolved isInstallationPure value into the wizard via updateModel. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Contributor
📬 CODENOTIFYThe following users are being notified based on files changed in this PR: @deepak1556Matched files:
|
federicobrancasi
approved these changes
May 20, 2026
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.
Improves the issue reporting flow so users can create high quality issues directly from VS Code, including screenshots and video recordings
To test, set
issueReporter.wizard.enabledtotrueand run theHelp: Report Issuecommand.Here's a video showing how it can be used:
Screen.Recording.2026-05-20.at.19.48.16.mov