23adc93f5e
Currently, when you provide a simple folder pattern like `folder/` to copy() it will not check folders contents for changes (only the folder metadata itself) which leads to stale caches. This fix appends ** pattern when no pattern is specified for recursive hash computation. <!-- CURSOR_SUMMARY --> --- > [!NOTE] > Ensure folder COPY patterns hash contents recursively to fix cache invalidation, adding a shared file-gathering helper, tests, and a Python glob dependency. > > - **Template hashing (JS + Python SDKs)**: > - Add `getAllFilesForFilesHash` (`packages/js-sdk/src/template/utils.ts`) and `get_all_files_for_files_hash` (`packages/python-sdk/e2b/template/utils.py`) to collect directories and nested files using glob patterns and ignores. > - Update `calculateFilesHash`/`calculate_files_hash` to use the new helpers, hashing recursive paths, metadata, and file contents; handle symlinks consistently. > - **Tests**: > - Add comprehensive tests for recursive matching, ignore patterns, sorting, empty dirs, symlinks in `packages/js-sdk/tests/.../getAllFilesForFilesHash.test.ts` and Python async/sync tests under `packages/python-sdk/tests/.../test_get_all_files_for_files_hash.py`. > - **Dependencies**: > - Add `wcmatch` in `packages/python-sdk/pyproject.toml` for advanced globbing. > - **Release**: > - Patch bump via `.changeset/green-mice-watch.md`. > > <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit d495427d86ad4e4d5a280567baa63df40a3271fb. This will update automatically on new commits. Configure [here](https://cursor.com/dashboard?tab=bugbot).</sup> <!-- /CURSOR_SUMMARY --> --------- Co-authored-by: Jakub Dobry <jakub.dobry8@gmail.com>
What is E2B?
E2B is an open-source infrastructure that allows you to run AI-generated code in secure isolated sandboxes in the cloud. To start and control sandboxes, use our JavaScript SDK or Python SDK.
Run your first Sandbox
1. Install SDK
pip install e2b-code-interpreter
2. Get your E2B API key
E2B_API_KEY=e2b_***
3. Execute code with code interpreter inside Sandbox
from e2b_code_interpreter import Sandbox
with Sandbox.create() as sandbox:
sandbox.run_code("x = 1")
execution = sandbox.run_code("x+=1; x")
print(execution.text) # outputs 2
4. Check docs
Visit E2B documentation.
5. E2B cookbook
Visit our Cookbook to get inspired by examples with different LLMs and AI frameworks.
