Wowee, that was a rabbit hole Fixed versions are released. Here is what was happening:
Duplicate files were being added into the rewrite struct, due to how in some places (when adding a glob), we were adding files by absolute path, instead of relative to CWD path.
The kicker is how we were alerted to this problem The reason that it only happened when the app name was longer is because rewrite uses
Task.async_stream
to write files in parallel. Inside of that stream each thing reads its original contents and then writes it if it hasn’t changed. The slight additional extra time that it took to either read the file or hash the file name (not sure which) for the longer file names, changed the performance of the writing enough that one of the tasks was slow enough to see the new file contents from one of the other tasks completing and writing its file contents. Now there are no duplicates because everything is using relative paths.
This could also have been the source of other subtle bugs
Thank you for your help in figuring this one out!