feat: slide-out special key sender panel#90
Merged
billchurch merged 3 commits intomainfrom Feb 9, 2026
Merged
Conversation
Add a collapsible panel for sending browser-reserved key combinations (Ctrl+W, Ctrl+N, Ctrl+T, etc.) and other terminal sequences to the SSH session via mouse click. Categories: Terminal Control, Line Editing, Special Keys, Network Equipment (Cisco Ctrl+Shift+6), and Function Keys (F1-F12). Resolves #89 See also: billchurch/webssh2#481
High severity DoS via __proto__ key in mergeConfig. In practice, axios is a transitive dev dependency only (@axe-core/cli → chromedriver → axios) and is never included in the production bundle, so runtime risk to end users is negligible. Updating per SECURITY.md CVE exception to the 2-week cool-down policy.
Ctrl+B is the default tmux prefix key and also moves the cursor back one character in readline. Browsers intercept it for the bookmarks bar, so it is marked as browser-reserved.
billchurch
added a commit
to billchurch/webssh2
that referenced
this pull request
Feb 9, 2026
Adds slide-out special key sender panel (billchurch/webssh2_client#90)
2 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
onDisconnecthandler to reduce cognitive complexityResolves #89
See also: billchurch/webssh2#481
Changes
New files
client/src/components/special-keys-data.ts- Key definitions with categories, sequences, and browser-reserved flagsclient/src/components/SpecialKeysPanel.tsx- Slide-out panel component (absolute overlay, CSS transition, z-40)tests/special-keys.test.js- 22 tests for data integrity, control codes, function keys, and browser-reserved flagsModified files
client/src/stores/terminal.ts- AddedisSpecialKeysOpensignalclient/src/components/MenuDropdown.tsx- Added "Special Keys" menu item with Keyboard iconclient/src/app.tsx- Wired panel into terminal container, extractedhandleAuthFailed/showDisconnectErrorhelpersTest plan
npm run check:allpasses (lint, typecheck, 180 tests)