A kitty `a=p` that arrives during a chunked upload is swallowed as the upload's next chunk
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Newbie friendliness
- 76/100
- Issue type
- Bug
- Clarity
- Clearly specified
- Activity status
- Active
- Tech stack
- rust
- Domain
- cli, testing-qa
Research direction
Start with emu/seq.rs:1398-1406, where building.kitty(keys) handles APC G sequences during an upload, and compare the behavior with kitty’s case 'p' described in the issue. Run the reproduction and the tests beside #587. Done when the placement i=9 is emitted and image i=1 completes with data /wAAAAD/ in two chunks, with kitty() == 1.
Written by the indexing model from the issue text.
Description
What happens. With an upload in progress (m=1), a placement command is taken as part of the upload:
\033_Ga=T,f=24,s=2,v=1,i=1,m=1;/wAA\033\\ \033_Ga=p,i=9,c=2,r=1\033\\ \033_Gm=0;AAD/\033\\
termlens reports kitty() == 2:
TransmitAndPlace i=1with data/wAA, which fails to decode ("fewer bytes than the declared size needs").Transmitwith no id and dataAAD/, which fails to decode ("without s= and v=").
The i=9 placement is gone.
Expected. kitty handles a=p in its own case 'p' without touching the load in progress (graphics.c, grman_handle_command). The following action-less m=0 chunk then completes the load. So the right result is one placement of i=9 and one image i=1 with data /wAAAAD/ in 2 chunks, kitty() == 1.
Cause. emu/seq.rs:1398-1406: once an upload is in progress, building.kitty(keys) treats any APC G as its continuation, whatever its action.
Fix. Treat only an escape with no a= as a continuation. Emit a=p (and a=a, a=c) as payloads of their own, leaving the upload alone.
Done when the repro reports the placement and one complete image, beside the #587 tests.
- Dominant language
- Rust
- Stars
- 28
- Forks
- 24
- Avg merge
- 11h 23m
- Merged PRs (30d)
- 42
Getting set up
- No Dockerfile or Docker Compose file
- Has a pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from vyncint/termlens
-
documentation good first issue
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
Maintainers usually reply within 1 day
-
documentation good first issue
Difficulty 1/5 Under an hour Newbie friendliness 95/100
Maintainers usually reply within 1 day
-
Release notes show a broken link: `extract-changelog.sh` copies a reference but not its definitionOpenbug good first issue
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
Maintainers usually reply within 1 day
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 67/100
Maintainers usually reply within 1 day
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
Maintainers usually reply within 1 day
All issues in vyncint/termlens
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 85/100
Maintainers usually reply within 1 day
-
compiler P4 perf
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
HerringtonDarkholme/hd-lang#1044 ·
Maintainers usually reply within 1 day
-
good first issue help wanted r-docs
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
servo/rust-smallvec#824 ·
Maintainers usually reply within 1 day
-
Difficulty 1/5 Under an hour Newbie friendliness 90/100
akitaonrails/ai-usagebar#552 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 76/100