the universal sandbox runtime for agents and humans. pocketenv.io
sandbox openclaw agent claude-code vercel-sandbox deno-sandbox cloudflare-sandbox atproto sprites daytona
7
fork

Configure Feed

Select the types of activity you want to include in your feed.

Use -C and basename when creating tar archives

Change tar invocation to run from the directory's parent and archive
just the basename so the tarball does not include the full path and
works
with absolute paths.

+2 -2
+1 -1
apps/cf-sandbox/src/index.ts
··· 1050 1050 sandbox = await createSandbox("cloudflare", { 1051 1051 id: record.sandboxId!, 1052 1052 }); 1053 - await sandbox.sh`cd /tmp && tar czvf ${uuid}.tar.gz ${params.directoryPath} && curl -X POST "https://sandbox.pocketenv.io/cp?uuid=${uuid}" -H "Authorization: ${token}" -F "file=@${uuid}.tar.gz" && rm ${uuid}.tar.gz`; 1053 + await sandbox.sh`cd /tmp && tar czvf ${uuid}.tar.gz -C $(dirname ${params.directoryPath}) $(basename ${params.directoryPath}) && curl -X POST "https://sandbox.pocketenv.io/cp?uuid=${uuid}" -H "Authorization: ${token}" -F "file=@${uuid}.tar.gz" && rm ${uuid}.tar.gz`; 1054 1054 1055 1055 return c.json({ uuid }); 1056 1056 });
+1 -1
apps/sandbox/src/index.ts
··· 1006 1006 const params = await c.req.json<PushDirectoryParams>(); 1007 1007 await pushSchema.parseAsync(params); 1008 1008 const uuid = crypto.randomUUID(); 1009 - await sandbox.sh`cd /tmp && tar czvf ${uuid}.tar.gz ${params.directoryPath} && curl -X POST "https://sandbox.pocketenv.io/cp?uuid=${uuid}" -H "Authorization: ${token}" -F "file=@${uuid}.tar.gz" && rm ${uuid}.tar.gz`; 1009 + await sandbox.sh`cd /tmp && tar czvf ${uuid}.tar.gz -C $(dirname ${params.directoryPath}) $(basename ${params.directoryPath}) && curl -X POST "https://sandbox.pocketenv.io/cp?uuid=${uuid}" -H "Authorization: ${token}" -F "file=@${uuid}.tar.gz" && rm ${uuid}.tar.gz`; 1010 1010 return c.json({ success: true, uuid: uuid.toString() }); 1011 1011 }); 1012 1012