add debounce for theme filewatcher to stop unwanted file deletes#6791
Open
EvilGenius13 wants to merge 2 commits intomainfrom
Open
add debounce for theme filewatcher to stop unwanted file deletes#6791EvilGenius13 wants to merge 2 commits intomainfrom
EvilGenius13 wants to merge 2 commits intomainfrom
Conversation
Contributor
Coverage report
Show new covered files 🐣
Show files with reduced coverage 🔻
Test suite run success3715 tests passing in 1438 suites. Report generated by 🧪jest coverage report action from 75d8f3a |
bc862ab to
def9984
Compare
021499d to
acc85ca
Compare
karreiro
reviewed
Jan 27, 2026
Contributor
karreiro
left a comment
There was a problem hiding this comment.
Thanks a lot for this PR, @EvilGenius13! 🚀 I've left only only one minor question :)
| } | ||
|
|
||
| const timeout = setTimeout(() => { | ||
| pendingEvents.delete(fileKey) |
Contributor
There was a problem hiding this comment.
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)?
Contributor
Author
There was a problem hiding this comment.
Yes absolutely, great call out!
58b68fe to
75d8f3a
Compare
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.
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