skalpel 3.0.13 → 3.0.15
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/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "skalpel",
|
|
3
|
-
"version": "3.0.
|
|
3
|
+
"version": "3.0.15",
|
|
4
4
|
"description": "Skalpel — local proxy and TUI for coding agents (skalpel + skalpeld bundle).",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"homepage": "https://skalpel.ai",
|
|
@@ -53,10 +53,10 @@
|
|
|
53
53
|
"x64"
|
|
54
54
|
],
|
|
55
55
|
"optionalDependencies": {
|
|
56
|
-
"@skalpelai/skalpel-darwin-arm64": "3.0.
|
|
57
|
-
"@skalpelai/skalpel-darwin-x64": "3.0.
|
|
58
|
-
"@skalpelai/skalpel-linux-arm64": "3.0.
|
|
59
|
-
"@skalpelai/skalpel-linux-x64": "3.0.
|
|
60
|
-
"@skalpelai/skalpel-win32-x64": "3.0.
|
|
56
|
+
"@skalpelai/skalpel-darwin-arm64": "3.0.15",
|
|
57
|
+
"@skalpelai/skalpel-darwin-x64": "3.0.15",
|
|
58
|
+
"@skalpelai/skalpel-linux-arm64": "3.0.15",
|
|
59
|
+
"@skalpelai/skalpel-linux-x64": "3.0.15",
|
|
60
|
+
"@skalpelai/skalpel-win32-x64": "3.0.15"
|
|
61
61
|
}
|
|
62
62
|
}
|
|
@@ -36,8 +36,19 @@ const LAUNCHCTL_PATH = '/bin/launchctl';
|
|
|
36
36
|
// B10: launchd target (gui/<uid> vs system/) depends on whether a
|
|
37
37
|
// graphical session is attached. Headless macOS (SSH login, CI box)
|
|
38
38
|
// must use system/ because gui/<uid> requires Aqua.
|
|
39
|
+
//
|
|
40
|
+
// 2026-05-14 fix: the previous heuristic used `!process.env.DISPLAY`
|
|
41
|
+
// as a headless signal, but macOS native terminal sessions never set
|
|
42
|
+
// DISPLAY (that's an X11 convention) — every desktop install was
|
|
43
|
+
// misclassified as headless, fell into the system/ branch, and then
|
|
44
|
+
// failed with "Bootstrap failed: Operation not permitted" because
|
|
45
|
+
// `launchctl bootstrap system <plist>` requires sudo. The correct
|
|
46
|
+
// signal on macOS is just "is this an SSH session." If the user is
|
|
47
|
+
// SSHed into a headless box, fall back to system/; otherwise use
|
|
48
|
+
// gui/<uid>, which is the right scope for a per-user agent and does
|
|
49
|
+
// not need elevated privileges.
|
|
39
50
|
function launchdTarget() {
|
|
40
|
-
const headless = !!process.env.SSH_CLIENT ||
|
|
51
|
+
const headless = !!process.env.SSH_CLIENT || !!process.env.SSH_TTY;
|
|
41
52
|
if (headless) {
|
|
42
53
|
return 'system';
|
|
43
54
|
}
|