Files
orca/src
Brennan BensonandOrca Worker a75cdc8287 fix(chat): match terminal pane split and close menus (#28969)
* Transfer keyboard focus when a sibling chat pane opens

* fix(native-chat): hand focus to newly opened chat composer

* fix(native-chat): keep tab bar controller within line limit

* fix(chat): split into a fresh conversation beside the current chat

* test(chat): declare the split fixture store without an assertion

* fix(chat): route the split to the source conversation host

* test(chat): keep the split regression focused on the launch contract

* test(chat): give the command palette split fixture its conversation agent

* test(chat): seed the legacy command fixture without expanding its asserted shape

* test(chat): isolate pane identity commands from the split launch boundary

* Prevent chat splits from starting a terminal on host refusal

* Cancel structured launches when their destination pane closes

* Model live destination groups in agent launch test fixture

* Capture split chat focus intent at the user action

* feat(chat): add the terminal pane hover action cluster

* fix(chat): keep pane controls above the conversation surface

* refactor(chat): share the tab resume launch hook and format pane controls

* style(chat): document reuse of the terminal header button styles

* refactor(ui): share the pane title button variants between terminals and chats

* fix(chat): keep header actions scoped to the displayed chat

* fix(chat): abandon Resume when its destination pane closes

* test(chat): declare destination fixtures without type assertions

* fix(chat): keep Resume visible when its source pane closes

* fix(chat): reuse tab menu Resume placement unchanged

* test: fix Resume regression harness setup

* feat(chat): match terminal pane split and close context actions

* style(chat): format the pane context menu

* style(chat): format the structured pane command fixture

* test(chat): remove the obsolete tab-movement menu stubs

* Match terminal close-pane menu styling

* fix(chat): share the pane action close label in the body menu

* test(chat): match structured pane action fixture returns

* fix(chat): hand input to the split pane during admission

* fix(chat): Split opens a fresh chat beside the current one

Split Right/Down on a native chat used to move the chat into a new pane.
It now opens an empty pane beside the chat and launches a new chat of the
same agent on the same host into it through the New Chat launch, so the
new composer takes focus at once. A launch that never opens a tab closes
the empty pane. Drops the earlier admission and focus-transfer changes
that main now covers.

* fix(chat): Split palette search words describe a new chat, not a move

* fix: remove misleading chat move shortcut hints

* fix(chat): a new chat stays in its pane until its host lists it

A host tab list built before a chat's create landed can arrive after the
create reply. Once the reply settled the launch, nothing protected the new
tab, so that older list dropped it: Split's new pane collapsed and focus
moved to another chat, and the next list re-added the chat elsewhere.

Keep a small in-memory record for a chat this client created that no host
list has shown yet. While it exists, a list that omits the chat keeps its
tab. The record ends when an accepted list from that host includes the
chat, when the tab closes, on workspace teardown, or 30 seconds after the
reply, when the worktree is re-read from its host (including an unchanged
version) so a chat the host really closed is dropped then. The launch
lifecycle, status, persistence and settlement are unchanged.

* test(chat): type the faked create replies without an assertion

* Keep new chat protection tied to accepted host lists

* Update paired chat close regression to current suppression API

* fix(chat): Portuguese Split palette words describe a new chat

* test(chat): use the destination group option in split fixture

* Avoid History projection in native chat header and currentness checks

* fix(native-chat): keep Find below pane controls

* fix(ui): keep noninteractive tooltip layers pointer-transparent

* fix: derive chat pane menu state inside mounted content

* test: use complete settings fixture for chat menu contract

* ci: refresh chat menu checks after base correction

* ci: refresh chat menu checks after base type fixes

* test(chat): focus retained menu lifetime contract

---------

Co-authored-by: Orca Worker <orca-worker@localhost>
2026-10-23 22:12:54 -07:00
..