release: prepare Pebrel 1.8.2 with reviewed Shell selection - #189
Merged
Merged
Conversation
Right-clicking a folder has always opened the configured default shell — usually PowerShell — with no way to ask for a WSL distribution instead. - `--shell <id>` takes the same ids the `shell` setting uses (`pwsh`, `cmd`, `wsl:Ubuntu`, or an imported profile's settings id) and applies to the first tab this process creates. It carries an id rather than a path so every launch re-resolves the executable. - The id travels both startup paths: the cold start (`run_shell` → `WorkspaceStartup::NewTerminal`), and the resident hand-off, which is the common case on Windows. `tab.new`/`window.create` gained an optional `shell` field, so clicking the menu while Pebrel is already running adds a tab to the existing window instead of starting a second process. - An explicit request never silently degrades. An unresolvable id fails (`invalid_shell`, or a startup error before any window opens), and a `wsl:<distro>` id that the registry no longer lists still launches `wsl.exe -d <distro>`, leaving the complaint to the distribution itself. The `shell` setting keeps its documented fallback to the platform default. - The winit shell rejects a shell request instead of ignoring it, so the caller falls back to a cold GPUI start and still gets the requested shell. The resolution lives in a new `workspace::shell_launch` module: `main.rs` has to validate `--shell` before it opens a window, and none of it needs `NebulaWorkspace` state — `workspace.rs` is also at its line budget, which this keeps from growing (`architecture/file-budgets.txt`). The installer registers one context-menu entry per registered WSL distribution (`PebrelWsl<n>`, skipping `docker-desktop*`) and the uninstaller reclaims them by key prefix plus the command line it wrote. `--shell` is passed before `--working-directory`: a drive-root `%V` ends in `\"`, which would swallow the rest of the line if the directory came first. Both the string and the order are pinned by installer assertions. Docs (runtime API schema + control API) and shell completions are updated.
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.
Result / 用户结果
Prepare Pebrel 1.8.2 from current main and integrate PR #145 with the relevant fixes from
codex/review-fixes-20260916. Users can select a Shell through--shelland open Explorer folders in registered WSL distributions, both on first launch and through the running instance.An explicit directory now overrides the selected profile's saved directory in both startup paths. WSL profiles discard their old launch-level
--cdwhile preserving distribution, user and guest-command arguments. Saved profiles and ordinary profile launches retain their defaults. Invalid Shell requests are rejected before creating a window. Current main's session recovery and command-launch behavior are retained.All seven product package versions, local dependency constraints and lockfiles, Windows resources and installer defaults are synchronized to 1.8.2. The bilingual Changelog and release notes cover the complete commit range since v1.8.1, including the WSL
PROMPT_COMMANDCRLF fix, wrapped Git Bash editing, notifications, SSH, file reveal, tab transfers, command management, settings and taskbar icons. Final checksums will be populated from the verified release assets.Validation
c9cbfa63982ee7c72fe3e2f9fc9671b47ee3d045; platform conditionals remain at the existing budget of 484.Original PR #145 is retained as a merge parent so GitHub records it as merged when this integration reaches main. PRs #130, #131, #133 and #144 are outside this release integration.