Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ConPTY Passthrough mode #1985

Closed
2 tasks
zadjii-msft opened this issue Jul 16, 2019 · 3 comments
Closed
2 tasks

ConPTY Passthrough mode #1985

zadjii-msft opened this issue Jul 16, 2019 · 3 comments
Labels
Area-Server Down in the muck of API call servicing, interprocess communication, eventing, etc. Issue-Feature Complex enough to require an in depth planning process and actual budgeted, scheduled work. Needs-Triage It's a new issue that the core contributor team needs to triage at the next triage meeting Product-Conpty For console issues specifically related to conpty Resolution-Duplicate There's another issue on the tracker that's pretty much the same thing.

Comments

@zadjii-msft
Copy link
Member

I've discussed this a couple times on different threads before, but I think I never made a real issue for it.

The idea of conpty passthrough mode is that a commandline client application that knows it's only going to use VT sequences (and not the API) to modify the console could set a special mode, ENABLE_PASSTHROUGH_MODE. If conpty is active, the console would then stop rendering itself over conpty, and anything that was written to the console would go straight to the terminal.

  • This would work especially well for something like wsl, where it's only ever going to be talking VT.
  • It would not work for cmd.exe, because of cmd.exe's heavy reliance on the API.
  • Windows Powershell again needs the API pretty heavily, but maybe Powershell Core, which is cross-platform, could make use of it.

This has some rough edges that need to be sorted out.

  • What happens when the app exits, and passthrough mode is turned off? The terminal and conpty's buffers would not be equivalent anymore!
    • I've been toying with the idea of having conpty both pass the sequences through, and also process them itself, so that the terminal and conpty stay in sync.
  • What happens when someone tries to call Console API's in passthrough mode?
    • I'm thinking we just cause them to fail. All save for Get/SetConsoleMode and reading input / writing output.
    • We'll also probably need to be able to read resize events.

This needs a real spec written, but it probably needs prototyping done before that.

@zadjii-msft zadjii-msft added Issue-Feature Complex enough to require an in depth planning process and actual budgeted, scheduled work. Product-Conpty For console issues specifically related to conpty Area-Server Down in the muck of API call servicing, interprocess communication, eventing, etc. labels Jul 16, 2019
@zadjii-msft zadjii-msft added this to the Console Backlog milestone Jul 16, 2019
@zadjii-msft zadjii-msft added this to Spec Needed ❓ in Specification Tracker via automation Jul 16, 2019
@ghost ghost added the Needs-Triage It's a new issue that the core contributor team needs to triage at the next triage meeting label Jul 16, 2019
@DHowett-MSFT
Copy link
Contributor

This may actually be #1173?

@zadjii-msft
Copy link
Member Author

zadjii-msft commented Jul 16, 2019

oh my god I've filed a dupe, you can go ahead and draw and quarter me now

@zadjii-msft zadjii-msft added the Resolution-Duplicate There's another issue on the tracker that's pretty much the same thing. label Jul 16, 2019
@zadjii-msft zadjii-msft removed this from the Console Backlog milestone Jul 16, 2019
@DHowett-MSFT
Copy link
Contributor

mfw "draw and quarter me now": 🤔😱

@zadjii-msft zadjii-msft removed this from Spec Needed ❓ in Specification Tracker Jul 17, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Area-Server Down in the muck of API call servicing, interprocess communication, eventing, etc. Issue-Feature Complex enough to require an in depth planning process and actual budgeted, scheduled work. Needs-Triage It's a new issue that the core contributor team needs to triage at the next triage meeting Product-Conpty For console issues specifically related to conpty Resolution-Duplicate There's another issue on the tracker that's pretty much the same thing.
Projects
None yet
Development

No branches or pull requests

2 participants