KEMBAR78
Improve the UI for feedback provider to make the results from providers stream-able and cancellable · Issue #25909 · PowerShell/PowerShell · GitHub
Skip to content

Improve the UI for feedback provider to make the results from providers stream-able and cancellable #25909

@daxian-dbw

Description

@daxian-dbw

Summary of the new feature / enhancement

Today, we wait for all feedback provider to finish or time out before rendering the results. The worst-case scenario would be a feedback provider always times out and then the user won't see feedback displayed until the timeout happens. Therefore, we currently set the timeout to a small number (300ms initially) to avoid having a user wondering "where is my prompt? is PowerShell freezing?".

This short timeout is not flexible and not enough for many interesting feedback scenarios. For example, the WinGet feedback provider simply cannot guarantee to return results within 300ms.

In the long-term, we need to improve the UI for feedback provider to make the results from providers stream-able and cancellable:

  • stream-able: whenever a feedback provider returns results, they will be displayed to the user without wait for other providers. If any provider is still running, we display a spinner to indicate the on-going processing.
  • cancellable: user can press ctrl+c to cancel the on-going feedback provider and get their prompt back.

In this way, we will be able to afford a much larger timeout to allow various feedback provider to work with PowerShell.

Proposed technical implementation details (optional)

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    Issue-Enhancementthe issue is more of a feature request than a bugNeeds-TriageThe issue is new and needs to be triaged by a work group.WG-Interactive-Consolethe console experienceWG-NeedsReviewNeeds a review by the labeled Working Group

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions