Add directional conversation focus shortcuts in workspace mode (#59287)

## What changed

- Add configurable `focus_pane_left` and `focus_pane_right` actions, defaulting to `leader left` / `leader h` and `leader right` / `leader l`.
- Move focus to the parent or open side conversation without reopening a hidden pane. Preserve the current interaction when no neighbor is available, and accept fresh typing after a no-op shortcut while suppressing reported key repeats.
- Expose the actions in the keymap picker and configuration schema, and prevent workspace-only pane bindings from claiming keys in classic mode.

## Testing

Add regression coverage for pane navigation, preserved transcript selection and search, fresh typing after a no-op, key capture, and binding conflicts and limits.

GitOrigin-RevId: 7f7629d15cffcd35d1353b36c5c9208dbb1034e8
This commit is contained in:
Felipe Coury
2026-11-04 01:40:12 +00:00
committed by copyberry
parent 0a944f8ce2
commit db3c44414c
24 changed files with 401 additions and 74 deletions
+3 -2
View File
@@ -1314,6 +1314,7 @@ fn user_prompt_has_a_background_without_a_terminal_palette() {
#[test]
fn spoken_prompt_selection_keeps_its_fallback_contrast() {
use crate::history_cell::new_spoken_user_prompt;
use crate::terminal_palette::rgb_color;
use ratatui::style::Color;
use ratatui::style::Modifier;
@@ -1352,8 +1353,8 @@ fn spoken_prompt_selection_keeps_its_fallback_contrast() {
(
Some("one\n"),
Color::Red,
Color::Rgb(238, 238, 238),
Color::Rgb(68, 68, 68),
rgb_color((238, 238, 238)),
rgb_color((68, 68, 68)),
true
)
);