Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

Terminal replies that arrive after the 250 ms probe are read as keystrokes

Open
#140 0 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

Nobody has claimed this yet.

Assessment

Difficulty
3/5
Estimated time
1-2 days
Newbie friendliness
65/100
Issue type
Bug
Clarity
Mostly clear
Activity status
Active
Tech stack
rust
Domain
cli

Research direction

Start with term::probe in src/term.rs:87-104 and its deadline in src/main.rs:78; trace how terminal replies are read before the event loop starts. Then inspect key handling in src/app.rs:391-450. Done when late terminal replies no longer trigger input actions and Alt-modified keys are ignored; the issue does not name specific tests.

Written by the indexing model from the issue text.

Description

bug

Today — term::probe stops reading at its 250 ms deadline (src/main.rs:78, src/term.rs:87-104). On a slow link (ssh with high latency), the answers arrive afterwards and crossterm parses them as input:

  • ESC ] becomes Alt+], which is "next year", because on_key_normal ignores modifiers (src/app.rs:391-450).
  • rgb:0d0d/… contains r (reload) and d twice (cell style).

Reproduced with termlens by sending a dark kitty terminal's ordinary answers after the first frame: the chart switched from "auto: rounded cells" to "snug cells". That run also got no pixels and assumed a dark theme. term.rs promises "A terminal that never answers costs the timeout and nothing else".

Fix

  • After the deadline, keep draining until the DA1 sentinel or a second bounded window, before the event loop starts.
  • Ignore key events that carry Alt.
  • Consider a longer timeout, since DA1 ends the read early anyway.
Dominant language
Rust
Stars
2
Forks
1
Avg merge
17h 38m
Merged PRs (30d)
8

Getting set up

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from vyncint/mossaic

All issues in vyncint/mossaic

Similar issues

More Rust issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.