Improve scroll performance for blocklists with many AIBlocks. - #15280
Merged
Conversation
Co-Authored-By: Warp <agent@warp.dev>
Co-Authored-By: Warp <agent@warp.dev>
vorporeal
marked this pull request as ready for review
August 18, 2026 19:03
Contributor
|
I'm starting a first review of this pull request. You can view the conversation on Warp. I completed the review and no human review was requested for this pull request. Comment Powered by Oz |
Contributor
There was a problem hiding this comment.
Overview
This PR reduces redundant blocklist render work by suppressing no-op tooltip notifications and caching recording span maps per conversation. I did not find a code-level correctness, security, or spec-drift issue in the changed lines.
Concerns
- The change is user-facing because it changes scrolling responsiveness for AIBlock-heavy transcripts. Per repository guidance, please include screenshots or a short screen recording demonstrating it working end to end.
- The PR specifically targets Warp-on-Web scroll performance, but the testing notes say Warp-on-Web manual verification was stopped before completion. Please verify the target surface before merging.
Verdict
Found: 0 critical, 2 important, 0 suggestions
Request changes
Comment /oz-review on this pull request to retrigger a review (up to 3 times on the same pull request).
Powered by Oz
alokedesai
approved these changes
Aug 19, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

Description
Scrolling an AIBlock-heavy transcript caused large amounts of unrelated render work. A symbolicated Samply profile showed that
TaskStore::lookup_exchangeaccounted for about 24% of renderer samples during the affected scroll. The lookup was repeated because two costs multiplied:This PR removes both multipliers:
BlocklistAIActionModelnow caches recording spans by conversation. Recording output changes, completed action results, restored results, and rewind cleanup invalidate the cache. Recording-related blocks share the cached map instead of rebuilding it independently.Linked Issue
No linked issue. This change follows a profile-driven investigation of Warp-on-Web scrolling performance.
Testing
./script/run.cargo check -p warp./script/format --checkcargo clippy -p warp --all-targets --tests -- -D warnings./script/wasm/runwas stopped before verification completed.No integration test was added. This change targets redundant invalidation and derived-state recomputation during rendering, and the affected scrolling behavior was verified manually with a representative transcript.
Agent Mode
CHANGELOG-BUG-FIX: Improved scrolling performance in transcripts with many Agent Mode blocks.
Co-Authored-By: Warp agent@warp.dev