Feat: In-memory template unzip + sandbox requests optimizations #179
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.
Earlier, template zips were fetched from R2 via the worker binding in the worker, and copied over to the sandbox container as base64 string, then decoded. It required a container to be provisioned and fetching all the files again from the container counted towards subrequests. Bad in general.
This PR eliminates that by using fflate to unzip the templates zip directly within the worker, and thus eliminating the need for sandbox I/O.
This PR also removes storing template details object inside code generator agent's state, thus reducing the state bloat (agent sdk's cf_agent_state have a maximum limit on storage). Now, template details are fetched in onStart and cached in memory of the worker/Durable object.
This PR builds towards enabling full git repo support per app feature.