ui diff: Chunk frame diffs and group in report with thumbnails - #37328
Open
TheSecurityDev wants to merge 156 commits into
Open
ui diff: Chunk frame diffs and group in report with thumbnails#37328TheSecurityDev wants to merge 156 commits into
TheSecurityDev wants to merge 156 commits into
Conversation
…d lazy loading of videos
…ce in diff computation
Contributor
|
This PR has had no activity for 24 days. It will be automatically closed in 7 days if there is no activity. |
Contributor
Author
|
Bump |
Contributor
|
This PR has had no activity for 24 days. It will be automatically closed in 7 days if there is no activity. |
Contributor
Process replay diff reportReplays driving segments through this PR and compares the behavior to master. ✅ 0 changed, 66 passed, 0 errors |
Contributor
|
This PR has had no activity for 24 days. It will be automatically closed in 7 days if there is no activity. |
adeebshihadeh
added a commit
that referenced
this pull request
Jun 17, 2026
Contributor
Author
|
I'll fix the merge conflicts |
Contributor
|
This PR has had no activity for 24 days. It will be automatically closed in 7 days if there is no activity. |
Contributor
Author
|
Looks like we need #38514 to fix the errors |
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:
Does a proper diff on the replay video frame hashes using
difflibto create groups of changes, and updates the HTML report to support showing these groups. Shows frame changes, additions, and deletions, and allows viewing the exact diff for each one.It's still possible to see the full clips and diff like before, although we can consider whether the full diff will be needed in the future when we have these chunk diffs now.
Other changes:
The HTML report now supports video placeholders for no video slots (e.g. when frames added/removed) or as a loading indicator.
Also adds multithreading for creating the full diff video in the background while everything else is happening, hashing both video frames at once, and extracting the diff chunk frames in parallel.
Finally, cleans up the script and improves the logging, etc.
Example output:
Example video:
Note: This was generated by taking a replay I had lying around from a previous version, and for the second video, modifying the toggle color to blue, adding 2 seconds to the firehose page, and removing the experimental mode description scenario. So the diff is a lot messier than you might get in most realistic situations.
Recording.2026-02-22.190317.mp4
Here's a simpler example with just adding 2 more steps to the mici replay:
Identical example:
More comments:
diff-chunksfolder underreport, wherediffmatches the stem of theoutputname (e.g.mici-diff.html->mici-diff-chunks). Thumbnails of the diff/new/removed clips are also extracted and used in the report.-nostdinis used for ffmpeg calls that run in threads because without it my terminal glitches out where I can't see the output as I type.