[fix](VA) Keep non-zero wait action groups in computer-use recordings - #14540
Conversation
A standalone wait-for-UI-to-settle call previously produced a Wait-only action group that was never committed, so the smart trim hard-cut the settling period from the recording. Treat any batch with a non-zero wait as meaningful; Wait(0) no-op batches (screenshot-only calls) remain excluded. Co-Authored-By: Oz <oz-agent@warp.dev>
|
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 |
There was a problem hiding this comment.
Overview
This PR updates computer-use recording trim eligibility so non-zero Wait-only action groups are retained while Wait(0) no-op groups remain excluded. The predicate and unit test changes are consistent with that intent, and I did not find security issues in the changed code.
Concerns
- The change affects user-visible Linux recording output, but the PR does not include a screenshot or screen recording demonstrating a non-zero wait-only action being retained end to end. Please attach visual evidence from a Linux recording run, either locally or from a computer-use-capable environment, before merging.
Verdict
Found: 0 critical, 1 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
Description
Computer-use recordings on Linux are smart-trimmed: only committed action groups produce keep-windows, and everything else is hard-cut.
is_meaningful_action_grouptreated everyWait-only batch as non-meaningful, so a standalone "wait for the UI to settle" call was never committed and its settling period was cut from the video, even though it plays out in real time on screen.This changes the predicate to count any non-zero
Waitas meaningful (via the existingAction::is_no_op()helper), whileWait(0)no-op batches — emitted for screenshot/zoom/cursor-position-only calls — remain excluded so empty frames are still trimmed. Non-Waitactions are unaffected. The commit path already records the full wait duration in the group's[offset, finish_offset]span, so no other changes are needed.Linked Issue
N/A — recording-quality fix from the CU video trim pipeline work.
ready-to-specorready-to-implement.Testing
Updated the existing
is_meaningful_action_groupunit test: a 500 ms wait-only group now asserts meaningful, while theWait(0)and empty-slice cases keep asserting non-meaningful.Ran locally (macOS):
cargo nextest run -p computer_use— 62 passed, 0 skipped./script/format --check— cleancargo clippy --workspace --exclude warp_completer --all-targets --tests -- -D warnings— cleancargo clippy -p warp --all-targets --tests -- -D warnings— cleancargo clippy -p warp_completer --all-targets --tests -- -D warnings— cleanNot manually tested with
./script/run: the trim only runs on Linux recordings, and the change is fully covered by the unit test on the pure predicate../script/runAgent Mode
Conversation: https://staging.warp.dev/conversation/df74c6da-5f2a-4a0f-99a6-7b9e8b64cb1f
Run: https://oz.staging.warp.dev/runs/019fb41e-c9c2-778f-844e-afcf68f7bf0e
CHANGELOG-BUG-FIX: Computer-use video recordings now keep real (non-zero) wait periods at real time instead of trimming them out.
Co-Authored-By: Oz oz-agent@warp.dev