skalpel 3.0.8 → 3.0.9
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/npm-bin/skalpel.js +18 -0
- package/package.json +6 -6
- package/postinstall/index.js +28 -5
package/npm-bin/skalpel.js
CHANGED
|
@@ -298,6 +298,24 @@ function runUninstall(rest) {
|
|
|
298
298
|
// Fallback to the old unconditional message if no summary made it back.
|
|
299
299
|
process.stdout.write(`\n${ok} skalpel state removed from this machine.\n`);
|
|
300
300
|
}
|
|
301
|
+
|
|
302
|
+
// Only emit the "running agents still have stale env" hint when
|
|
303
|
+
// something was actually removed (or in dry-run); on already-clean
|
|
304
|
+
// re-runs the hint adds noise without value.
|
|
305
|
+
const ranAnyCleanup = summary && !(
|
|
306
|
+
summary.rcBlocksRemoved === 0 &&
|
|
307
|
+
!summary.serviceFileRemoved &&
|
|
308
|
+
summary.userDataFilesRemoved === 0
|
|
309
|
+
);
|
|
310
|
+
if (!summary || ranAnyCleanup) {
|
|
311
|
+
process.stdout.write(
|
|
312
|
+
`${dim('Note: any open shells or running coding agents (Claude Code, Codex, ' +
|
|
313
|
+
'Cursor, etc.) still have the skalpel proxy env vars cached in their ' +
|
|
314
|
+
'environment. Open a fresh shell and restart any active agents to drop ' +
|
|
315
|
+
'them.')}\n`
|
|
316
|
+
);
|
|
317
|
+
}
|
|
318
|
+
|
|
301
319
|
process.stdout.write(`${dim('To finish removal, also run:')}\n`);
|
|
302
320
|
process.stdout.write(` npm uninstall -g skalpel\n`);
|
|
303
321
|
return 0;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "skalpel",
|
|
3
|
-
"version": "3.0.
|
|
3
|
+
"version": "3.0.9",
|
|
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",
|
|
@@ -54,10 +54,10 @@
|
|
|
54
54
|
"x64"
|
|
55
55
|
],
|
|
56
56
|
"optionalDependencies": {
|
|
57
|
-
"@skalpelai/skalpel-darwin-arm64": "3.0.
|
|
58
|
-
"@skalpelai/skalpel-darwin-x64": "3.0.
|
|
59
|
-
"@skalpelai/skalpel-linux-arm64": "3.0.
|
|
60
|
-
"@skalpelai/skalpel-linux-x64": "3.0.
|
|
61
|
-
"@skalpelai/skalpel-win32-x64": "3.0.
|
|
57
|
+
"@skalpelai/skalpel-darwin-arm64": "3.0.9",
|
|
58
|
+
"@skalpelai/skalpel-darwin-x64": "3.0.9",
|
|
59
|
+
"@skalpelai/skalpel-linux-arm64": "3.0.9",
|
|
60
|
+
"@skalpelai/skalpel-linux-x64": "3.0.9",
|
|
61
|
+
"@skalpelai/skalpel-win32-x64": "3.0.9"
|
|
62
62
|
}
|
|
63
63
|
}
|
package/postinstall/index.js
CHANGED
|
@@ -226,12 +226,35 @@ function main(argv) {
|
|
|
226
226
|
return 0;
|
|
227
227
|
}
|
|
228
228
|
|
|
229
|
-
//
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
229
|
+
// npx mode: prior to v3.0.9 we returned exit 1 here, which caused
|
|
230
|
+
// npm to roll back the cached package install — leaving an empty
|
|
231
|
+
// ~/.npm/_npx/<hash>/ dir and a silent failure that re-prompted on
|
|
232
|
+
// every subsequent `npx skalpel` call. The original reason for the
|
|
233
|
+
// gate (B32) was that paths.binPath() couldn't locate the platform
|
|
234
|
+
// binary under npx's directory layout. That was fixed in v3.0.1
|
|
235
|
+
// when binPath was rewritten to use require.resolve against the
|
|
236
|
+
// platform sub-package (see paths.js:99-116) — which works under
|
|
237
|
+
// npx, global, or local install paths uniformly.
|
|
238
|
+
//
|
|
239
|
+
// We still skip the install wizard under npx because the wizard's
|
|
240
|
+
// service-register step would bake the npx cache path
|
|
241
|
+
// (~/.npm/_npx/<hash>/...) into the OS service unit, and that path
|
|
242
|
+
// is evicted by npx's cache GC. Exit 0 instead of 1 so npm install
|
|
243
|
+
// completes and the binary becomes invokable.
|
|
244
|
+
//
|
|
245
|
+
// Uninstall, however, MUST run under npx: a user running
|
|
246
|
+
// `npx skalpel uninstall` to clean up a prior `npm install -g`
|
|
247
|
+
// would otherwise hit the same skip and have nothing happen.
|
|
248
|
+
if (paths.isNpxInvocation() && !opts.uninstall) {
|
|
249
|
+
log.info(
|
|
250
|
+
'npx mode detected — skipping install wizard (service-register / ' +
|
|
251
|
+
'env-inject would bake transient npx cache paths into your system).'
|
|
233
252
|
);
|
|
234
|
-
|
|
253
|
+
log.info(
|
|
254
|
+
'For a persistent install with daemon-on-boot and shell env vars, ' +
|
|
255
|
+
'run: `npm install -g skalpel`'
|
|
256
|
+
);
|
|
257
|
+
return 0;
|
|
235
258
|
}
|
|
236
259
|
|
|
237
260
|
const total = 5;
|