Ctrl+Delete word-forward-delete parity with Ctrl+Backspace - #20
Merged
Conversation
… for POSIX shells
- isPosixShell: flip from blacklist (default-to-POSIX) to whitelist (default-to-false). 'default' is a real, persistent shellType value (StateManager.resetToDefaultLayout, TerminalPane's fallback chain before shell profiles load) that very often resolves to an actual PowerShell session (pushed first with is_default:true in pty_manager.rs) -- the old default direction would misfire ESC-byte garbage into PSReadLine. - Swallow the keyup paired with a shimmed keydown via uiClaimedKeydownKeys (matching the existing scroll-key shim pattern), so Win32-Input-Mode -- active for the whole Windows session regardless of shellType -- doesn't leak a stray Kd=0 release record after the shim's synthetic bytes. - shellType is now a live getter (matching smartCopy/enhancedKeyboard), since the engine-construction effect only depends on [terminalId] and never re-reads a plain captured value after mount. Found by codex (gpt-5.6-sol) reviewing PR #20; verified against pty_manager.rs and StateManager.ts before applying. agy's independent review characterized the isPosixShell issue as a minor/hypothetical custom-profile edge case -- verification showed it's a concrete, reachable regression via the 'default' placeholder.
Contributor
Author
Automated review roundDispatched two independent external reviewers (agy/Gemini 3.6 Flash, codex/gpt-5.6-sol) against this PR. agy: full approval, no blocking findings. codex: found 2 P1s + 1 P2, all confirmed on independent verification against
New regression tests lock in all three: Full suite: 446 terminal-core tests, 592 app tests, clean typecheck, all green post-fix. |
6 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
0x08).TerminalEngine.tsthat sends readline's native word-kill sequences (ESC DEL/ESC d) directly to POSIX/readline shells, gated by a newshellTypeengine option threaded from the app.Design / plan docs
termflow-fabric/docs/design/005-word-delete-shim-design.mdtermflow-fabric/docs/plan/006-word-delete-shim-implementation.mdTest plan
bun run test:workspace(terminal-core unit tests, 436 passing, incl. newwordDeleteShim.test.tsand the Win32-Input-Mode Ctrl+Delete regression test)bun run test(main app suite, 592 passing)tsc --noEmit(clean)bun run build(terminal-core + renderer, succeeds)