Files
Axel L. 27f4933b81 feat(uri): add warposs://pane/{uuid} deep link for pane focus (#9655)
## Description

Adds a `warposs://pane/{uuid_hex}` deep link that focuses a specific
terminal pane by its persistent session UUID. This enables external
tools to programmatically switch to a given pane/tab/window in Warp.

### What
- **`PaneGroup::find_pane_by_session_uuid`** — new method that iterates
terminal panes and matches by persistent UUID bytes, returning the
`PaneId`
- **`UriHost::Pane`** — new URI host variant with full handler: decodes
32-char hex UUID, walks all workspaces/windows via
`WorkspaceRegistry::all_workspaces()`, dispatches
`handle_pane_navigation_event` to focus the tab, and calls
`show_window_and_focus_app` to bring the window forward
- **5 unit tests** — host parsing, full URI validation, empty path
safety, invalid hex safety, case-insensitive hex decoding

### Why
External tools (e.g. orchestration UIs) that know a pane's UUID need a
way to switch focus to that pane without user interaction. The pane UUID
is already persisted in SQLite and is stable across sessions.

### How
- Handler parses hex from URL path, converts to `[u8; 16]` via
`u8::from_str_radix` (no new crate dependency)
- Cross-window lookup via existing `WorkspaceRegistry::all_workspaces()`
+ `tab_views()` pattern (matches `focus_terminal_view_in_other_window`)
- `WindowBehaviorHint::Nothing` since handler explicitly manages window
focus
- O(n) pane iteration — deep links are rare, no cache needed

## Testing

- [x] Unit tests for URI parsing and validation (5 tests in
`uri_test.rs`)
- [x] Manual testing: `open "warposs://pane/{uuid}"` correctly focuses
the target pane across tabs and windows

Co-Authored-By: Warp <agent@warp.dev>

---------

Co-authored-by: Warp <agent@warp.dev>
2026-05-06 04:25:17 +00:00
..