sandboxbox 2.2.3 → 2.2.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CLAUDE.md CHANGED
@@ -76,10 +76,12 @@ if (process.platform === 'win32' && isBundled) {
76
76
 
77
77
  ### Portable Podman Architecture
78
78
  - **Direct Podman Execution**: Uses bundled Podman binary without complex machine management
79
- - **Rootless Operation**: Always runs in rootless mode for portability
79
+ - **Rootless Operation**: Always runs in rootless mode for portability (--rootful=false)
80
80
  - **Self-Contained**: All dependencies included in the package
81
- - **Simple Configuration**: No complex connection or machine setup required
81
+ - **Simple Configuration**: Minimal backend setup only when needed
82
82
  - **Auto-Download**: Downloads platform-specific binaries automatically
83
+ - **NPX Compatible**: Works via npx without global installation
84
+ - **Windows Podman Remote**: Uses podman-remote-release-windows_amd64.zip as portable client
83
85
 
84
86
  ## Isolation Architecture
85
87
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sandboxbox",
3
- "version": "2.2.3",
3
+ "version": "2.2.4",
4
4
  "description": "Portable container runner with Podman - Claude Code & Playwright support. Works on Windows, macOS, and Linux.",
5
5
  "type": "module",
6
6
  "main": "cli.js",
package/utils/podman.js CHANGED
@@ -69,19 +69,34 @@ export function checkPodman() {
69
69
  if (infoError.message.includes('Cannot connect to Podman')) {
70
70
  console.log('\n🔧 Setting up portable Podman backend...');
71
71
  try {
72
- execSync(`"${newPodmanPath}" machine init --rootful=false`, {
73
- stdio: 'inherit',
74
- shell: true,
75
- cwd: __dirname
76
- });
72
+ // Try to start existing machine first
77
73
  execSync(`"${newPodmanPath}" machine start`, {
78
74
  stdio: 'inherit',
79
75
  shell: true,
80
76
  cwd: __dirname
81
77
  });
82
- console.log('\n✅ Portable Podman backend ready!');
83
- } catch (machineError) {
84
- console.log('\n⚠️ Podman backend setup needed on first container run');
78
+ console.log('\n✅ Portable Podman backend started!');
79
+ } catch (startError) {
80
+ if (startError.message.includes('does not exist') || startError.message.includes('not found')) {
81
+ try {
82
+ // Create new machine if none exists
83
+ execSync(`"${newPodmanPath}" machine init --rootful=false`, {
84
+ stdio: 'inherit',
85
+ shell: true,
86
+ cwd: __dirname
87
+ });
88
+ execSync(`"${newPodmanPath}" machine start`, {
89
+ stdio: 'inherit',
90
+ shell: true,
91
+ cwd: __dirname
92
+ });
93
+ console.log('\n✅ Portable Podman backend created and started!');
94
+ } catch (initError) {
95
+ console.log('\n⚠️ Podman backend setup needed on first container run');
96
+ }
97
+ } else {
98
+ console.log('\n⚠️ Podman backend setup needed on first container run');
99
+ }
85
100
  }
86
101
  }
87
102
  }