fix(keymap): unblock ~46 integration tests by retiring ctrl-b binding on linux/windows#165
Conversation
`ctrl-b` is the ASCII STX control character. Registering it on Linux/Windows for the Workspace `ToggleWarpDrive` action failed `is_binding_pty_compliant` validation at boot — `KeymapMatcher` then panicked at `crates/warpui_core/src/keymap/matcher.rs:197` with `Bindings failed validation`, taking out ~50+ integration tests (`ui_tests::*`, shell-integration suites) that boot the test harness. Switch to `ctrl-shift-B`, matching the `cmd_or_ctrl_shift` convention for single-letter shortcuts that would otherwise collide with PTY control characters on non-Mac platforms. Verification: - `cargo check -p warp-app` — passes - `cargo test -p integration --test integration` — 211 passed, 8 failed (all SSH / ctrl-c / vertical-context-menu — separate root causes, not keymap-related), 63 ignored. Was ~50+ tests panicking at the keymap validator before the fix.
|
Self-review notes (can't formally approve own PR): Verified locally:
Nit / heads-up (non-blocking): The load-bearing concern is the boot-time panic taking out ~46 tests; this fix resolves it cleanly. The 8 unrelated SSH/context-menu failures should get a tracking issue if they don't already have one. |
Summary
ctrl-bis the ASCII STX control character. The WorkspaceToggleWarpDriveaction was registeringctrl-bas its Linux/Windows binding, which failedis_binding_pty_compliantvalidation at boot.KeymapMatcher::validate_all_bindingsthen panicked atcrates/warpui_core/src/keymap/matcher.rs:197(Bindings failed validation), taking out ~50+ integration tests that boot the harness — everyui_tests::*test and most shell-integration tests.Fix
One-line change in
app/src/workspace/mod.rs:707: switchctrl-b→ctrl-shift-B, matching thecmd_or_ctrl_shiftconvention for Mac-only single-letter shortcuts that collide with PTY control characters elsewhere.Verification
Local run (macOS, same panic surface as Linux/Windows since the binding registers on both):
cargo check -p warp-appcargo test -p integration --test integrationThe 8 remaining failures are unrelated:
test_ctrl_c,test_legacy_ssh_into_{bash,zsh},test_ssh_into_{sh,ash})test_vertical_{pane,tab}_context_menu_copies_metadata,test_ssh_with_shell_override)Those are separate root causes — should be cut as follow-up PRs.
Note
This PR is independent of #164. #164 fixes 8 unrelated unit-test failures (auth_manager, blocklist, etc.). Both can land in either order against
main.Test plan
Run X testsjobs should drop from ~50+ failing to ≤8 failing.