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 +4 -2
- package/package.json +1 -1
- package/utils/podman.js +23 -8
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**:
|
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
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
|
-
|
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
|
83
|
-
} catch (
|
84
|
-
|
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
|
}
|