The interactive !/!! shortcut wrapped commands as `fish -l -c '…'`:
resolveUserShellConfig swaps in $SHELL but inherits the bash-oriented
["-l", "-c"] args, and ensureInteractiveShellArgs injected -i only
for zsh. A login fish fires `status is-login` blocks in user config
(agent/keychain setup, PATH mutation) on every command.
fish sources the same config.fish/conf.d files for interactive shells
as for login shells, so give fish -i and strip the inherited -l: user
aliases and functions (#1816) keep working without login-shell side
effects. zsh keeps -l -i since .zprofile is login-only.
Installed the normal plan proposal handler in print mode, persisted the resolved plan artifact, and silently stopped the completed planning turn for later review.
Shared plan proposal validation with interactive mode and added regression coverage.
Fixes#6017
Applied the console-aware launch policy in the original OMP process before spawning the broker. The broker now inherits the caller's console state instead of probing a detached console it created itself.
Applied console-aware spawn options to both non-PTY daemon paths. Windows children now stay attached when the host has a console and use CREATE_NO_WINDOW only for headless hosts.
Fixes#6018
Applied the startup plan default before headless prompts and persisted the mode for later interactive review.
Added regression coverage for the exact -p startup path.
Fixes#6017
The exact-bounds rewrite matched reverted PR #5812; the ±context expansion
(1 leading + 3 trailing line) around explicit selectors is intended behavior
so edit anchors at range boundaries stay fresh.
- tools.test.ts still asserted the pre-#5812 ±context expansion for offset/
limit and archive-entry reads; updated to the exact-bounds contract.
- selector-controller-logout.test.ts mocked the old modelRegistry.refresh;
#5786 switched logout to a provider-scoped refreshProvider(id, 'online'),
so the mock never resolved and the test timed out.
- Shift+Enter on a tree entry forks with a branch summary directly, skipping
the summary prompt and ignoring the branchSummary.enabled gate.
- Plain Enter keeps existing behavior: direct switch, with the summary prompt
only for users who enabled branchSummary.enabled.
- Updated the selector help line and added controller-level regression tests.
Fixes#5152
Rebased the committed-row seam when multiplexer reflow exposes native scrollback inside an enlarged viewport.
Added production transcript coverage for a finalized prefix above a live response and verified no ED3 is emitted.
Fixes#6011
Native combinators (AbortSignal.any, fetch) brand-check internal slots
that a Proxy cannot forward; return signals unwrapped from
bindBrowserRunFacade so tab.signal composes with native cancellation.