Skip to content

Improve scroll performance for blocklists with many AIBlocks. - #15280

Merged
vorporeal merged 2 commits into
masterfrom
david/improve-aiblock-scroll-performance
Aug 19, 2026
Merged

Improve scroll performance for blocklists with many AIBlocks.#15280
vorporeal merged 2 commits into
masterfrom
david/improve-aiblock-scroll-performance

Conversation

@vorporeal

@vorporeal vorporeal commented Aug 18, 2026

Copy link
Copy Markdown
Contributor

Description

Scrolling an AIBlock-heavy transcript caused large amounts of unrelated render work. A symbolicated Samply profile showed that TaskStore::lookup_exchange accounted for about 24% of renderer samples during the affected scroll. The lookup was repeated because two costs multiplied:

  • Tooltip dismissal updated every AI block on each scroll, even when that block had no open tooltip.
  • Each recording-related AI block rebuilt the conversation-wide recording span map during every render. That calculation traversed all exchanges twice.

This PR removes both multipliers:

  • AI blocks and search result views now notify only when tooltip state changes. Scrolling still dismisses an open tooltip, but no-op dismissals do not dirty unrelated AI blocks.
  • BlocklistAIActionModel now 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

  • I manually tested my changes locally with ./script/run.
    • Compared an AIBlock-heavy transcript before and after the change.
    • Confirmed that scrolling performance was substantially improved in the native build.
  • cargo check -p warp
  • ./script/format --check
  • cargo clippy -p warp --all-targets --tests -- -D warnings
  • Warp-on-Web manual verification. ./script/wasm/run was 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

vorporeal and others added 2 commits August 18, 2026 13:57
Co-Authored-By: Warp <agent@warp.dev>
Co-Authored-By: Warp <agent@warp.dev>
@cla-bot cla-bot Bot added the cla-signed label Aug 18, 2026

Copy link
Copy Markdown
Contributor Author

This stack of pull requests is managed by Graphite. Learn more about stacking.

@vorporeal
vorporeal marked this pull request as ready for review August 18, 2026 19:03
@warp-for-oss

warp-for-oss Bot commented Aug 18, 2026

Copy link
Copy Markdown
Contributor

@vorporeal

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 /oz-review on this pull request to retrigger a review (up to 3 times on the same pull request).

Powered by Oz

@warp-for-oss warp-for-oss Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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

@vorporeal
vorporeal merged commit 216d0ef into master Aug 19, 2026
66 of 68 checks passed
@vorporeal
vorporeal deleted the david/improve-aiblock-scroll-performance branch August 19, 2026 22:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants