Repository navigation
fix: zip symlinked files as their content and finish writing the zip before upload - #1549
Merged
Merged
Conversation
archive.finalize() resolves when the archive stream ends, before the file stream has flushed it. Push reads the file right after, so a fast store call could upload a truncated zip.
archiver writes a symlink as a link entry, which the platform unzips as a link to a file the upload may lack. The multi-file upload already sends the content, so what a push uploads no longer depends on its size.
commit: |
# Conflicts: # src/lib/utils.ts
DaveHanns
marked this pull request as ready for review
November 4, 2026 09:29
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.
Summary
Two fixes to
createActZip, which every push over the multi-file size limit uses. The review of #1505 found them. They're split out here because they aren't specific to monorepos.Changes
createActZipresolves once the file stream has written the whole zip. It resolved when the archive stream ended, and push reads the file right after, so it could upload a truncated zip.Tests
utils.test.ts, each failing onmaster: a symlinked file comes out of the zip with its content (skipped on Windows, where creating a symlink needs extra rights), and a zip read right after the call holds every file.pnpm run lint,pnpm run format,tsc --noEmit,pnpm run build, andpnpm run test:localpass, except the two[python]suites, which fail the same way onmasterbecause the local Python is 3.9.Notes for reviewers
actorPath#1505 has the same two changes. Once this merges andmasteris merged into feat: push monorepo Actors by uploading the repository root withactorPath#1505, they drop out of its diff.Closes #1548
🤖 Generated with Claude Code