diff --git a/.changeset/new-students-accept.md b/.changeset/new-students-accept.md deleted file mode 100644 index 6f7214e3..00000000 --- a/.changeset/new-students-accept.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@cloudflare/sandbox': patch ---- - -Redact credentials from Git URLs in logs diff --git a/.changeset/wild-news-pretend.md b/.changeset/wild-news-pretend.md deleted file mode 100644 index 42c7f06d..00000000 --- a/.changeset/wild-news-pretend.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -'@cloudflare/sandbox': patch ---- - -Expose deleteSession API with proper safeguards - -- Add `deleteSession(sessionId)` method to public SDK API -- Prevent deletion of default session (throws error with guidance to use `sandbox.destroy()`) -- Session cleanup kills all running commands in parallel before destroying shell -- Return structured `SessionDeleteResult` with success status, sessionId, and timestamp diff --git a/examples/claude-code/Dockerfile b/examples/claude-code/Dockerfile index a67d1d4e..3d958ae0 100644 --- a/examples/claude-code/Dockerfile +++ b/examples/claude-code/Dockerfile @@ -1,7 +1,7 @@ -FROM docker.io/cloudflare/sandbox:0.4.15 +FROM docker.io/cloudflare/sandbox:0.4.16 RUN npm install -g @anthropic-ai/claude-code ENV COMMAND_TIMEOUT_MS=300000 EXPOSE 3000 # On a Mac with Apple Silicon, you might need to specify the platform: -# FROM --platform=linux/arm64 docker.io/cloudflare/sandbox:0.4.15 +# FROM --platform=linux/arm64 docker.io/cloudflare/sandbox:0.4.16 diff --git a/examples/code-interpreter/Dockerfile b/examples/code-interpreter/Dockerfile index 7ff56059..4a61ad28 100644 --- a/examples/code-interpreter/Dockerfile +++ b/examples/code-interpreter/Dockerfile @@ -1,9 +1,9 @@ # This image is unique to this repo, and you'll never need it. # Whenever you're integrating with sandbox SDK in your own project, # you should use the official image instead: -# FROM docker.io/cloudflare/sandbox:0.4.15 -FROM cloudflare/sandbox-test:0.4.15 +# FROM docker.io/cloudflare/sandbox:0.4.16 +FROM cloudflare/sandbox-test:0.4.16 # On a mac, you might need to actively pick up the # arm64 build of the image. -# FROM --platform=linux/arm64 cloudflare/sandbox-test:0.4.15 +# FROM --platform=linux/arm64 cloudflare/sandbox-test:0.4.16 diff --git a/examples/minimal/Dockerfile b/examples/minimal/Dockerfile index 981a5dd9..683e8456 100644 --- a/examples/minimal/Dockerfile +++ b/examples/minimal/Dockerfile @@ -1,7 +1,7 @@ -FROM docker.io/cloudflare/sandbox:0.4.15 +FROM docker.io/cloudflare/sandbox:0.4.16 # On a Mac with Apple Silicon, you might need to specify the platform: -# FROM --platform=linux/arm64 docker.io/cloudflare/sandbox:0.4.15 +# FROM --platform=linux/arm64 docker.io/cloudflare/sandbox:0.4.16 # Required during local development to access exposed ports EXPOSE 8080 diff --git a/package-lock.json b/package-lock.json index bfed1de6..4be7c1d4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -181,6 +181,7 @@ "integrity": "sha512-e7jT4DxYvIDLk1ZHmU/m/mB19rex9sv0c2ftBtjSBv+kVM/902eh0fINUzD7UwLLNR+jU585GxUJ8/EBfAM5fw==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@babel/code-frame": "^7.27.1", "@babel/generator": "^7.28.5", @@ -1129,7 +1130,8 @@ "resolved": "https://registry.npmjs.org/@cloudflare/workers-types/-/workers-types-4.20251014.0.tgz", "integrity": "sha512-tEW98J/kOa0TdylIUOrLKRdwkUw0rvvYVlo+Ce0mqRH3c8kSoxLzUH9gfCvwLe0M89z1RkzFovSKAW2Nwtyn3w==", "dev": true, - "license": "MIT OR Apache-2.0" + "license": "MIT OR Apache-2.0", + "peer": true }, "node_modules/@cspotcode/source-map-support": { "version": "0.8.1", @@ -2281,6 +2283,7 @@ "integrity": "sha512-/g2d4sW9nUDJOMz3mabVQvOGhVa4e/BN/Um7yca9Bb2XTzPPnfTWHWQg+IsEYO7M3Vx+EXvaM/I2pJWIMun1bg==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@octokit/auth-token": "^4.0.0", "@octokit/graphql": "^7.1.0", @@ -3313,6 +3316,7 @@ "resolved": "https://registry.npmjs.org/@types/react/-/react-19.2.2.tgz", "integrity": "sha512-6mDvHUFSjyT2B2yeNx2nUgMxh9LtOWvkhIU3uePn2I2oyNymUAX1NIsdgviM4CH+JSrp2D2hsMvJOkxY+0wNRA==", "license": "MIT", + "peer": true, "dependencies": { "csstype": "^3.0.2" } @@ -3450,6 +3454,7 @@ "integrity": "sha512-oukfKT9Mk41LreEW09vt45f8wx7DordoWUZMYdY/cyAk7w5TWkTRCNZYF7sX7n2wB7jyGAl74OxgwhPgKaqDMQ==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@vitest/utils": "3.2.4", "pathe": "^2.0.3", @@ -3465,6 +3470,7 @@ "integrity": "sha512-dEYtS7qQP2CjU27QBC5oUOxLE/v5eLkGqPE0ZKEIDGMs4vKWe7IjgLOeauHsR0D5YuuycGRO5oSRXnwnmA78fQ==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@vitest/pretty-format": "3.2.4", "magic-string": "^0.30.17", @@ -3493,6 +3499,7 @@ "integrity": "sha512-hGISOaP18plkzbWEcP/QvtRW1xDXF2+96HbEX6byqQhAUbiS5oH6/9JwW+QsQCIYON2bI6QZBF+2PvOmrRZ9wA==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@vitest/utils": "3.2.4", "fflate": "^0.8.2", @@ -3714,6 +3721,7 @@ } ], "license": "MIT", + "peer": true, "dependencies": { "baseline-browser-mapping": "^2.8.19", "caniuse-lite": "^1.0.30001751", @@ -5129,7 +5137,6 @@ "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", "license": "MIT", - "peer": true, "dependencies": { "js-tokens": "^3.0.0 || ^4.0.0" }, @@ -6207,7 +6214,6 @@ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", "license": "MIT", - "peer": true, "engines": { "node": ">=0.10.0" } @@ -6629,6 +6635,7 @@ "resolved": "https://registry.npmjs.org/react/-/react-19.2.0.tgz", "integrity": "sha512-tmbWg6W31tQLeB5cdIBOicJDJRR2KzXsV7uSK9iNfLWQ5bIZfxuPEHp7M8wiHyHnn0DD1i7w3Zmin0FtkrwoCQ==", "license": "MIT", + "peer": true, "engines": { "node": ">=0.10.0" } @@ -6650,8 +6657,7 @@ "version": "16.13.1", "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/react-katex": { "version": "3.1.0", @@ -6836,6 +6842,7 @@ "integrity": "sha512-iMmuD72XXLf26Tqrv1cryNYLX6NNPLhZ3AmNkSf8+xda0H+yijjGJ+wVT9UdBUHOpKzq9RjKtQKRCWoEKQQBZQ==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@oxc-project/types": "=0.95.0", "@rolldown/pluginutils": "1.0.0-beta.45" @@ -7496,6 +7503,7 @@ "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=12" }, @@ -7664,6 +7672,7 @@ "integrity": "sha512-ytQKuwgmrrkDTFP4LjR0ToE2nqgy886GpvRSpU0JAnrdBYppuY5rLkRUYPU1yCryb24SsKBTL/hlDQAEFVwtZg==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "esbuild": "~0.25.0", "get-tsconfig": "^4.7.5" @@ -7860,6 +7869,7 @@ "integrity": "sha512-Wj7/AMtE9MRnAXa6Su3Lk0LNCfqDYgfwVjwRFVum9U7wsto1imuHqk4kTm7Jni+5A0Hn7dttL6O/zjvUvoo+8A==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "defu": "^6.1.4", "exsolve": "^1.0.7", @@ -8078,6 +8088,7 @@ "integrity": "sha512-ZWyE8YXEXqJrrSLvYgrRP7p62OziLW7xI5HYGWFzOvupfAlrLvURSzv/FyGyy0eidogEM3ujU+kUG1zuHgb6Ug==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "esbuild": "^0.25.0", "fdir": "^6.5.0", @@ -8194,6 +8205,7 @@ "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=12" }, @@ -8207,6 +8219,7 @@ "integrity": "sha512-LUCP5ev3GURDysTWiP47wRRUpLKMOfPh+yKTx3kVIEiu5KOMeqzpnYNsKyOoVrULivR8tLcks4+lga33Whn90A==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@types/chai": "^5.2.2", "@vitest/expect": "3.2.4", @@ -8362,6 +8375,7 @@ "dev": true, "hasInstallScript": true, "license": "Apache-2.0", + "peer": true, "bin": { "workerd": "bin/workerd" }, @@ -8890,6 +8904,7 @@ "integrity": "sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==", "devOptional": true, "license": "MIT", + "peer": true, "engines": { "node": ">=10.0.0" }, @@ -8972,7 +8987,7 @@ }, "packages/sandbox": { "name": "@cloudflare/sandbox", - "version": "0.4.15", + "version": "0.4.16", "license": "ISC", "dependencies": { "@cloudflare/containers": "^0.0.30" diff --git a/packages/sandbox/CHANGELOG.md b/packages/sandbox/CHANGELOG.md index 8ad3f909..4eb08e7a 100644 --- a/packages/sandbox/CHANGELOG.md +++ b/packages/sandbox/CHANGELOG.md @@ -1,5 +1,17 @@ # @cloudflare/sandbox +## 0.4.16 + +### Patch Changes + +- [#184](https://github.com/cloudflare/sandbox-sdk/pull/184) [`7989b61`](https://github.com/cloudflare/sandbox-sdk/commit/7989b6105cea8c381dd162be0bcb29db3e214fde) Thanks [@ghostwriternr](https://github.com/ghostwriternr)! - Redact credentials from Git URLs in logs + +- [#186](https://github.com/cloudflare/sandbox-sdk/pull/186) [`c2e3384`](https://github.com/cloudflare/sandbox-sdk/commit/c2e3384b151ae3f430c2edc8c492921d0b6b8b1c) Thanks [@whoiskatrin](https://github.com/whoiskatrin)! - Expose deleteSession API with proper safeguards + - Add `deleteSession(sessionId)` method to public SDK API + - Prevent deletion of default session (throws error with guidance to use `sandbox.destroy()`) + - Session cleanup kills all running commands in parallel before destroying shell + - Return structured `SessionDeleteResult` with success status, sessionId, and timestamp + ## 0.4.15 ### Patch Changes diff --git a/packages/sandbox/package.json b/packages/sandbox/package.json index bc0bc233..b17940bf 100644 --- a/packages/sandbox/package.json +++ b/packages/sandbox/package.json @@ -1,6 +1,6 @@ { "name": "@cloudflare/sandbox", - "version": "0.4.15", + "version": "0.4.16", "repository": { "type": "git", "url": "https://github.com/cloudflare/sandbox-sdk" diff --git a/packages/sandbox/src/version.ts b/packages/sandbox/src/version.ts index d8ec91d5..91529b36 100644 --- a/packages/sandbox/src/version.ts +++ b/packages/sandbox/src/version.ts @@ -3,4 +3,4 @@ * This file is auto-updated by .github/changeset-version.ts during releases * DO NOT EDIT MANUALLY - Changes will be overwritten on the next version bump */ -export const SDK_VERSION = '0.4.15'; +export const SDK_VERSION = '0.4.16'; diff --git a/tests/e2e/test-worker/Dockerfile b/tests/e2e/test-worker/Dockerfile index e4b57aab..71393aab 100644 --- a/tests/e2e/test-worker/Dockerfile +++ b/tests/e2e/test-worker/Dockerfile @@ -1,5 +1,5 @@ # Integration test Dockerfile -FROM docker.io/cloudflare/sandbox-test:0.4.15 +FROM docker.io/cloudflare/sandbox-test:0.4.16 # Expose ports used for testing EXPOSE 8080 diff --git a/tests/integration/Dockerfile b/tests/integration/Dockerfile index 18090622..111d9ba1 100644 --- a/tests/integration/Dockerfile +++ b/tests/integration/Dockerfile @@ -1,12 +1,12 @@ # This image is unique to this repo, and you'll never need it. # Whenever you're integrating with sandbox SDK in your own project, # you should use the official image instead: -# FROM docker.io/cloudflare/sandbox:0.4.15 -FROM cloudflare/sandbox-test:0.4.15 +# FROM docker.io/cloudflare/sandbox:0.4.16 +FROM cloudflare/sandbox-test:0.4.16 # On a mac, you might need to actively pick up the # arm64 build of the image. -# FROM --platform=linux/arm64 cloudflare/sandbox-test:0.4.15 +# FROM --platform=linux/arm64 cloudflare/sandbox-test:0.4.16 # Expose the ports you want to expose EXPOSE 8080