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
+20
View File
@@ -5284,6 +5284,8 @@
"find_transcript": null,
"focus_activity": null,
"focus_main_composer": null,
"focus_pane_left": null,
"focus_pane_right": null,
"focus_sidebar_content": null,
"hide_pane": null,
"leader": null,
@@ -6123,6 +6125,22 @@
],
"description": "Focus the main conversation composer."
},
"focus_pane_left": {
"allOf": [
{
"$ref": "#/definitions/KeybindingsSpec"
}
],
"description": "Focus the parent conversation."
},
"focus_pane_right": {
"allOf": [
{
"$ref": "#/definitions/KeybindingsSpec"
}
],
"description": "Focus the open side conversation."
},
"focus_sidebar_content": {
"allOf": [
{
@@ -6353,6 +6371,8 @@
"find_transcript": null,
"focus_activity": null,
"focus_main_composer": null,
"focus_pane_left": null,
"focus_pane_right": null,
"focus_sidebar_content": null,
"hide_pane": null,
"leader": null,