clippy cannot run advisory: the workflow contract forbids continue-on-error
and several crates deny lints, so it joins after the backlog is cleared.
The trigger contract now requires the default pull_request activity types
plus ready_for_review instead of forbidding a types list.
The release run re-invoked the Full native tests workflow and waited for it
before aggregating packages. That workflow already runs for every pull
request, merge group and main push, so the repeat added no coverage while
its macOS Intel job queued behind the Intel package build and became the
critical path (60 minutes end to end, packages done after 28). Aggregation
now depends on the packaging jobs only; each package still runs its own
runtime conformance and the aggregate still validates every report.
Include cloud settings, panel sizing, command groups, Agent integration settings and runtime input fixes from main. Bind native Codex recovery to the live pane process and preserve verified IDs; add CMD recovery choices and an explicit exit path when identity discovery fails.
Native Codex hooks may identify a running session/group instead of the
rollout thread accepted by resume. Retain transcript paths, normalize the
thread identity, and share the parser with session discovery and probes.
Keep recovery paths when a matching provider acknowledgement omits them,
retain native identity metadata while reducing large SSH/WSL events, and
show the existing failure message when a saved target has no resume command.
Add regressions for Windows/guest paths and multiple CLI startup flows.
Apply the same provider argument rules to native and BSD process observations.
Resolve the platform temporary-directory alias in ordinary remote fixtures and
retain explicit symlink redirection tests.
Move the pending activity, input and SSH authentication decisions into their
module-owned notes under the current governance contract. Import the shutdown
draft type directly after the incoming drag-preview cleanup removes its parent
import.
Keep hook authority separate from screen observations and shell completion.
Install owned native and remote bridges, preserve durable session recovery,
and support Shift+Enter for byte-stream clients without changing native keys.
Addresses #199.
Synchronize package versions and bilingual notes with verified issue references.
Allow releases without PR contributors to omit that section, with positive and
negative format coverage as requested by the maintainer.
Keep native update process operations and default-shell resolution inside the
platform boundary. Preserve transaction authority in the updater and tighten
the platform condition budget to the measured 484.
Persist native AI recovery targets and per-pane launch contexts without treating
command submission as provider confirmation. Keep window partitions and the
active window in the durable session snapshot for immediate and scheduled updates.
Coordinate draft approval, snapshot writes, helper readiness, process exit and
installation with a committed transaction. Reverify packages and retain recovery
state on failure. Isolate acceptance installers from production integrations and
reject same-version setup that leaves the executable unchanged.
Validation: Windows GPUI suite 1552 passed; settings 55 passed; i18n 20 passed;
9 native helper scenarios; 77 installer migration checks and 41 static invariants.
Full interactive packaged upgrade acceptance remains separate.
Combine custom themes, updater proxies and native resource fixes with the published release source. Preserve independent interface and CJK fonts, selection visibility, saved-session startup and all existing release checks. Remove the retired terminal-view size exception after the capability extraction brought it below the standard limit.
Persist the pending ConPTY lifetime, process snapshot and native font ownership fixes. Keep lifecycle regression tests and the Windows memory stress tool together with the ownership contracts.
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.