Repository navigation
Conversation
Remove prior iTerm placements at the same anchor before placing a replacement image.
|
Thank you for your pull request and welcome to our community. We require contributors to sign our Contributor License Agreement, and we don't seem to have the users @lomavkin on file. In order for us to review and merge your code, each contributor must visit https://cla.warp.dev to read and agree to our CLA. Once you have done so, please comment |
|
I tried to sign the CLA at https://cla.warp.dev/, but submitting it returns: “Sign request failed (500): Failed to record signature. Please try again.” Could you please check the CLA service? |
|
@cla-bot check |
|
Thank you for your pull request and welcome to our community. We require contributors to sign our Contributor License Agreement, and we don't seem to have the users @lomavkin on file. In order for us to review and merge your code, each contributor must visit https://cla.warp.dev to read and agree to our CLA. Once you have done so, please comment |
|
The cla-bot has been summoned, and re-checked this pull request! |
|
@cla-bot check |
|
The cla-bot has been summoned, and re-checked this pull request! |
Description
Redrawing a transparent iTerm2 inline image at the same cursor position leaves the previous image visible underneath it. This causes stale graph lines to accumulate when scrolling in Serie (A rich git commit graph viewer) with
--protocol iterm.Remove existing iTerm image placements at the same anchor before placing the replacement image, after validating the incoming image. Images anchored elsewhere and Kitty image placements are preserved.
Linked Issue
Fixes #16586
ready-to-specorready-to-implement.The linked issue has a standalone reproduction and is labeled
bugandrepro:high. This is a reproducible bug fix submitted directly as a code PR under the contribution guide.Testing
Tested on macOS 15.7.3 (Apple Silicon) with Rust 1.92.0.
cargo nextest run --locked -p warp_terminal: 560 passed, 2 existing ignored tests skipped.cargo clippy --locked -p warp_terminal --all-targets --tests -- -D warnings: passed../script/format: passed.Added regression coverage for:
Repeated images at the same position, including replacement with a narrower image and the resulting cursor position.
Preserving images anchored at different rows or columns.
Preserving Kitty image placements at the same position.
Preserving the previous image and cursor position when a zero-width replacement is rejected.
I have manually tested my changes locally with
./script/runBuilt the local app with
./script/run --features iterm_images --dont-openand opened the resultingWarpOss.app.python3 probe.py --mode none, using the script attached to #16586python3 probe.py --mode spaceserie -i head --protocol iterm, Serie 0.10.0 in the Warp repositoryCtrl-E12 times; old graph lines did not accumulate.Screenshots / Videos
Before
After
serie-after.mp4
The before screenshot is from the original Warp recording in #16586. The after screenshots and approximately 18-second Serie recording show the local build based on master commit
1e6c3ae465d6a925a9b97ae03877aaadd159b8f1with this fix applied.Agent Mode
Changelog Entries for Stable
CHANGELOG-BUG-FIX: Fixed stale inline images remaining visible when applications redraw images using the iTerm2 image protocol.