Skip to content

release: prepare Pebrel 1.8.2 with reviewed Shell selection - #189

Merged
Kuddev merged 2 commits into
mainfrom
release/1.8.2
Sep 17, 2026
Merged

Kuddev merged 2 commits into
mainfrom
release/1.8.2

Conversation

@Kuddev

@Kuddev Kuddev commented Sep 17, 2026

Copy link
Copy Markdown
Owner

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 --shell and 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 --cd while 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_COMMAND CRLF 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

  • Architecture checked against actual main base c9cbfa63982ee7c72fe3e2f9fc9671b47ee3d045; platform conditionals remain at the existing budget of 484.
  • Rust formatting, whitespace, release metadata, bilingual note consistency and added-text checks completed locally. No budgets or protection rules changed.
  • Added regressions for explicit profile directories, WSL directory/argument preservation and invalid Shell requests, alongside the review branch's runtime-window, profile identity and CLI regressions.
  • Preserve the existing CRLF injection regression and main's SSH, notification and background-process fixes.
  • Full native tests and fresh release packaging run in CI, following the existing release workflow. Native desktop menu-click acceptance is not claimed by these source checks.

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.

AnxForever and others added 2 commits September 14, 2026 23:07
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.
@Kuddev
Kuddev merged commit b024811 into main Sep 17, 2026
23 of 29 checks passed
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.

2 participants