-
Notifications
You must be signed in to change notification settings - Fork 225
add debounce for theme filewatcher to stop unwanted file deletes #6791
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
Coverage report
Show new covered files 🐣
Show files with reduced coverage 🔻
Test suite run success3689 tests passing in 1431 suites. Report generated by 🧪jest coverage report action from acc85ca |
bc862ab to
def9984
Compare
847cb7d to
021499d
Compare
021499d to
acc85ca
Compare
karreiro
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks a lot for this PR, @EvilGenius13! 🚀 I've left only only one minor question :)
| } | ||
|
|
||
| const timeout = setTimeout(() => { | ||
| pendingEvents.delete(fileKey) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I believe it would be nice if we could debounce per file name and per event type.
However, I believe this line implies that an unlink event could cancel an add event.
If that’s accurate, do you think we could update it so unlink just debounces other unlink events (and so on)?
WHY are these changes introduced?
With the increase in LLM's editing files, file updates can happen in small batches in very quick succession. This can kick off multiple file syncs when we upload the changed file.
Adding a debounce will lower the amount of file changes sent.
WHAT is this pull request doing?
Add a 250ms debounce.
The following screenshots are from a script that updated the same file 25 times, firing an update every
100ms.Before: (Sometimes the file watcher grouped a few updates together, overall it synced 17 times)

After: (One single update)

How to test your changes?
You too can run the script! It will target the
layout/theme.liquidfile and add a comment just above the closinghtmltag. When it's done you can rip out the comment.Details
theme devin a terminal instancetheme devonruby test_debounce.rbPost-release steps
Measuring impact
How do we know this change was effective? Please choose one:
Checklist