Skip to content

Issue reporter wizard#317577

Merged
Giuspepe merged 3 commits into
mainfrom
agents/issue-reporting-flow-fixes-squashed
May 20, 2026
Merged

Issue reporter wizard#317577
Giuspepe merged 3 commits into
mainfrom
agents/issue-reporting-flow-fixes-squashed

Conversation

@Giuspepe
Copy link
Copy Markdown
Contributor

@Giuspepe Giuspepe commented May 20, 2026

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.enabled to true and run the Help: Report Issue command.

Here's a video showing how it can be used:

Screen.Recording.2026-05-20.at.19.48.16.mov

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot AI review requested due to automatic review settings May 20, 2026 17:21
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 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 submitIssue flow 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

Comment thread src/vs/workbench/contrib/issue/browser/issueReporterModel.ts
Comment thread src/vs/workbench/contrib/issue/electron-browser/issueService.ts
Giuspepe and others added 2 commits May 20, 2026 19:43
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>
@Giuspepe Giuspepe marked this pull request as ready for review May 20, 2026 18:01
@Giuspepe Giuspepe enabled auto-merge May 20, 2026 18:01
@vs-code-engineering
Copy link
Copy Markdown
Contributor

📬 CODENOTIFY

The following users are being notified based on files changed in this PR:

@deepak1556

Matched files:

  • src/vs/code/electron-main/app.ts

@Giuspepe Giuspepe merged commit 9ecd1e9 into main May 20, 2026
25 checks passed
@Giuspepe Giuspepe deleted the agents/issue-reporting-flow-fixes-squashed branch May 20, 2026 18:14
@vs-code-engineering vs-code-engineering Bot added this to the 1.122.0 milestone May 20, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants