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.

ci: fix Ctr+C signal not working

+6 -4
+1 -1
apps/cli/package.json
··· 4 4 "bin": { 5 5 "pocketenv": "dist/index.js" 6 6 }, 7 - "version": "0.3.4", 7 + "version": "0.3.5", 8 8 "type": "module", 9 9 "keywords": [ 10 10 "sandbox",
+5 -3
apps/cli/src/theme.ts
··· 27 27 if (!savedState) return false; 28 28 const tty = fs.openSync("/dev/tty", "r+"); 29 29 try { 30 - execSync("stty raw -echo min 0 time 2 </dev/tty 2>/dev/null"); 30 + // Use -icanon -echo instead of raw: avoids disabling ISIG (Ctrl+C) so 31 + // signal handling stays intact even if the restore below fails. 32 + execSync("stty -icanon -echo min 0 time 2 </dev/tty 2>/dev/null"); 31 33 fs.writeSync(tty, "\x1b]11;?\x07"); 32 34 // Read in a loop until we see the response terminator (BEL or ST), 33 35 // so leftover bytes don't leak into the terminal input buffer. ··· 47 49 return 0.299 * r + 0.587 * g + 0.114 * b > 127; 48 50 } 49 51 } finally { 50 - fs.closeSync(tty); 51 - execSync(`stty ${savedState} </dev/tty 2>/dev/null`); 52 + try { fs.closeSync(tty); } catch {} 53 + try { execSync(`stty ${savedState} </dev/tty 2>/dev/null`); } catch {} 52 54 } 53 55 } catch {} 54 56 }