Repository navigation
fix: restore keyboard protocol flags after a terminal reconnect - #5088
Conversation
|
Important Review skippedAuto reviews are limited based on label configuration. 🏷️ Required labels (at least one) (1)
Please check the settings in the CodeRabbit UI or the ⚙️ Run configuration
You can disable this status message by setting the Use the checkbox below for a quick retry:
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info
📝 Walkthrough
Priority: ⬇️ Low Merge Risk: ⚪ Minimal · up to The keyboard-mode refresh is mergeable after normal checks. Behavior in VS Code remains unverified, but no specific failure is established. 🚥 Pre-merge checks | ✅ 4 | ❌ 1
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
@coderabbitai review |
✅ Action performedReview finished.
|
|
Upstream commits brought in: - fix: detect codex startup update chooser (herdrdev#5174) - fix: confirm closing a workspace's last pane in the tui (herdrdev#5173) - fix: keep sgr pixel mouse units consistent (herdrdev#4971) - fix: reject workspace numbers past the last workspace (herdrdev#5171) - fix: reject oversized canonical input on macos (herdrdev#4988) - fix: save sessions before agents die during macos restart (herdrdev#5092) - fix: preserve hermes plugin list structure (herdrdev#4984) - fix: restore keyboard protocol flags after a terminal reconnect (herdrdev#5088) - fix: reduce interactive pane echo latency (herdrdev#5149) - fix: flush session saves before replacing persisted files (herdrdev#5152) Conflict resolutions: - client shell close-pane confirmation: take upstream's request_pane_close, keep the fork's SetPaneStatus menu action and closes_group confirmation field; a group-root close still confirms client-side and closes the whole group (the fork has no server confirmation_required path, 2d839ce), so upstream's close_pane group test is adapted like close_tab.rs. - pane input: keep the fork's backpressure-preserving send paths and add upstream's keyboard_forwarded tracking; keep send_bytes_after and write_user_input next to upstream's validate_input_submission. - pane mouse: take upstream's merged encoder/position helper. - satisfy the fork's redundant_clone deny lint in the new macos input tests. Sets UPSTREAM_HERDR_COMMIT to 6d697e1 and bumps bora to 0.52.3.
…rdev#5088) * fix: restore keyboard protocol flags after a terminal reconnect refs herdrdev#4985 * test: cover keyboard protocol refresh with an outer kitty mode refs herdrdev#4985
When the host terminal resets its state while Herdr keeps running, for example after VS Code "Reload Window", Herdr re-asserted mouse modes on focus-in and resize but never the kitty keyboard flags. Shift+Enter and Ctrl+Enter then arrived as plain Enter until a detach/attach.
Where Herdr already re-asserts mouse capture, it now also re-sends the keyboard modes it enabled at startup:
The kitty flags use the same replace-the-stack-entry write as the report-all toggle, so repeated refreshes never grow the host's keyboard stack. Resize is the dependable trigger, because a reset host also stops sending focus events. Focus reporting is not re-enabled from a focus-in, so a host that answers the enable with a focus report can't loop. Direct attach is unchanged.
Validation
CSI 13;2uagain, and that Herdr's single exit pop still restores the host.CSI < 1 u CSI > 7 u(plus 2004/1004), master re-sends none.just checkgreen, including the Windows lint stage.VS Code itself was not tested.
refs #4985