fix(input): parse default mouse reports - #2312
Conversation
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (2)
🚧 Files skipped from review as they are similar to previous changes (1)
📝 WalkthroughWalkthroughDefault xterm mouse escape sequences are parsed into ChangesDefault xterm mouse input
Estimated code review effort: 3 (Moderate) | ~20 minutes Sequence Diagram(s)sequenceDiagram
participant InputStream
participant EscapeFramer
participant MouseDecoder
participant IdleFlusher
participant RawInputEvent
InputStream->>EscapeFramer: provide default xterm mouse bytes
EscapeFramer->>MouseDecoder: pass complete six-byte report
MouseDecoder->>RawInputEvent: create decoded mouse event
EscapeFramer->>RawInputEvent: preserve preceding Escape when present
IdleFlusher->>EscapeFramer: check incomplete mouse sequence
EscapeFramer-->>IdleFlusher: report pending SGR or default sequence
Possibly related PRs
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Comment |
Greptile SummaryThe PR adds fixed-width DEFAULT/X10 mouse-report parsing and extends incomplete-report reassembly to this encoding.
Confidence Score: 5/5The PR appears safe to merge. No blocking failure remains; the previously reported partial DEFAULT-report timeout now receives the extended mouse reassembly window.
|
| Filename | Overview |
|---|---|
| src/raw_input.rs | Adds DEFAULT mouse framing, parsing, doubled-Escape handling, timeout classification, and focused regression coverage; the previously reported partial-report timeout is fixed. |
| src/client/input.rs | Generalizes the active mouse-capture timeout selection to include incomplete DEFAULT reports and tests the new classification. |
Reviews (3): Last reviewed commit: "Merge branch 'master' into akbash/2309-d..." | Re-trigger Greptile
There was a problem hiding this comment.
Actionable comments posted: 1
🧹 Nitpick comments (1)
src/raw_input.rs (1)
1394-1404: 🎯 Functional Correctness | 🔵 Trivial | ⚡ Quick winAdd coverage for button and modifier decoding.
This test covers only
MouseEventKind::Movedwith emptyKeyModifiers. Add cases for button presses, release, wheel events, and theSHIFT,ALT, andCONTROLbits.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro Plus
Run ID: 8239483f-0d4a-4540-9ddb-429f2e70ae98
📒 Files selected for processing (1)
src/raw_input.rs
|
Regarding CodeRabbit review 4857764169: I’m not adding a button/modifier matrix. DEFAULT decoding delegates to the shared |
Integrates upstream range e7c9620..1f1e434 (16 commits) onto fork master. Key conflict resolutions: - src/ui/status.rs + config: adopt upstream herdrdev#2282 distinct status indicators (state_icon_symbol Dots/Symbols) wholesale. Marks stay static (no animated spinner or animation-tick reintroduced); fork's config-diagnostic-as-toast delta preserved (render_config_diagnostic dropped, unused). - src/app/input: adopt upstream input fixes (herdrdev#2303 modifyOtherKeys releases, herdrdev#2259 shift-tab in automation, herdrdev#2312 default mouse reports, herdrdev#2291 pending url clicks) while preserving the deliberate herdrdev#1876 non-US shifted keybinding revert. - src/config: keep fork StatusConfig (status_right/status_right_length/ status_interval) additively alongside upstream herdrdev#2295 retired agent panel scope and StatusIndicatorStyle. - justfile: preserve fork install-local recipe alongside upstream changes.
Summary
Checks
cargo test default_mouse -- --nocapturecargo test raw_input::tests -- --nocapturecargo fmt --checkcargo clippy --all-targets --locked -- -D warningsjust checkreached unrelated integration failures because the Kennel-provided externalCARGO_TARGET_DIRconflicts with the test harness path check intests/support/mod.rsrefs #2309