fix: run workspace updates in interactive task#945
Draft
EhabY wants to merge 3 commits into
Draft
Conversation
acf6414 to
558f101
Compare
`coder start` and `coder update` can need to prompt for template parameters, but the VS Code workbench's terminal renderer isn't initialized during `resolveAuthority` — so a PTY terminal created in that phase silently drops all output and can't be used to surface prompts. See microsoft/vscode#12000 and #144729: extension-Pseudoterminal writes before `open()` fires are ignored, and `open()` doesn't fire until the workbench has mounted the terminal panel at least once. Run the CLI via plain `spawn` again and stream output through the existing write callback (output channel). Before invoking `coder update`, fetch the new template version's rich parameters and the workspace's current build parameters; for any required parameter that has no default and no existing value, prompt the user with `vscode.window.showInputBox` (with regex/range validation) or `showQuickPick` (when the parameter declares options). Pass the collected values as `--parameter name=value` flags so the CLI never has to prompt. Also propagate the post-update workspace through the state machine so the agent check uses the fresh build's resources.
558f101 to
436f566
Compare
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.
Summary
coder updatethrough an interactive VS Code task when CLI update is supported, so parameter prompts can be answered in a real terminal.Fixes #939.
Tests
pnpm test:extension ./test/unit/api/workspace.test.ts ./test/unit/remote/workspaceStateMachine.test.tspnpm typecheckpnpm lintpnpm format:checkpnpm buildSupporting plan and decision context
The issue is caused by
coder updateprompting for parameter values while the extension streams CLI output to a read-only VS CodeOutputChannel.Chosen approach: use a VS Code
TaskwithShellExecutionfor updates so the CLI keeps owning parameter resolution and prompts, while the extension can await task completion viavscode.tasks.onDidEndTaskProcess.Why this path:
--use-parameter-defaultsis insufficient because required parameters without defaults still need input and the flag is version-dependent.Non-goals:
coder startpath.Generated by Coder Agents.