@pushpalsdev/cli 1.0.70 → 1.0.71

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.
@@ -3068,6 +3068,13 @@ async function cleanupLingeringWorkerpalWarmContainers(opts) {
3068
3068
  removed: 0
3069
3069
  };
3070
3070
  }
3071
+ if (isDockerCleanupTimeoutDetail(detail)) {
3072
+ return {
3073
+ ok: true,
3074
+ detail: `docker cleanup timed out; skipped WorkerPal warm-container cleanup: ${detail}`,
3075
+ removed: 0
3076
+ };
3077
+ }
3071
3078
  return {
3072
3079
  ok: false,
3073
3080
  detail: `failed to inspect lingering WorkerPal warm containers: ${detail}`,
@@ -3085,6 +3092,20 @@ async function cleanupLingeringWorkerpalWarmContainers(opts) {
3085
3092
  const remove = await runCommandWithEnvFn([dockerExecutable, "rm", "-f", ...containerIds], opts.repoRoot, opts.env, commandTimeoutMs);
3086
3093
  if (!remove.ok) {
3087
3094
  const detail = remove.stderr || remove.stdout || `exit ${remove.exitCode}`;
3095
+ if (isDockerUnavailableDetail(detail)) {
3096
+ return {
3097
+ ok: true,
3098
+ detail: `docker unavailable; skipped WorkerPal warm-container cleanup: ${detail}`,
3099
+ removed: 0
3100
+ };
3101
+ }
3102
+ if (isDockerCleanupTimeoutDetail(detail)) {
3103
+ return {
3104
+ ok: true,
3105
+ detail: `docker cleanup timed out; skipped WorkerPal warm-container cleanup: ${detail}`,
3106
+ removed: 0
3107
+ };
3108
+ }
3088
3109
  return {
3089
3110
  ok: false,
3090
3111
  detail: `failed to remove lingering WorkerPal warm containers: ${detail}`,
@@ -3129,6 +3150,14 @@ async function cleanupLocalWorkerpalSandboxImage(opts) {
3129
3150
  imageName
3130
3151
  };
3131
3152
  }
3153
+ if (isDockerCleanupTimeoutDetail(detail)) {
3154
+ return {
3155
+ ok: true,
3156
+ detail: `docker cleanup timed out; skipped WorkerPal sandbox image cleanup: ${detail}`,
3157
+ removed: false,
3158
+ imageName
3159
+ };
3160
+ }
3132
3161
  return {
3133
3162
  ok: false,
3134
3163
  detail: `failed to remove local WorkerPal sandbox image ${imageName}: ${detail}`,
@@ -3228,6 +3257,9 @@ async function cleanupLingeringPushPalsGitWorktrees(opts) {
3228
3257
  function isMissingDockerImageDetail(detail) {
3229
3258
  return /\b(no such object|no such image|not found)\b/i.test(String(detail ?? ""));
3230
3259
  }
3260
+ function isDockerCleanupTimeoutDetail(detail) {
3261
+ return /\btimed out after \d+ms\b/i.test(String(detail ?? ""));
3262
+ }
3231
3263
  function isDockerUnavailableDetail(detail) {
3232
3264
  const text = String(detail ?? "");
3233
3265
  return /cannot connect to (the )?docker daemon/i.test(text) || /docker daemon is not running/i.test(text) || /failed to connect to the docker api/i.test(text) || /docker_engine/i.test(text) || /is the docker daemon running/i.test(text) || /docker(?:\.exe)?: command not found/i.test(text) || /spawn\s+docker(?:\.exe)?\s+ENOENT/i.test(text) || /docker(?:\.exe)?'?\s+is not recognized as an internal or external command/i.test(text);
@@ -5441,6 +5473,7 @@ export {
5441
5473
  normalizeCliInteractiveMessage,
5442
5474
  normalizeChildProcessEnv,
5443
5475
  isDockerUnavailableDetail,
5476
+ isDockerCleanupTimeoutDetail,
5444
5477
  isCliExitCommand,
5445
5478
  injectMonitoringHubBootstrap,
5446
5479
  formatWorkerExecutionReadinessLines,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pushpalsdev/cli",
3
- "version": "1.0.70",
3
+ "version": "1.0.71",
4
4
  "description": "PushPals terminal CLI for LocalBuddy -> RemoteBuddy orchestration",
5
5
  "license": "MIT",
6
6
  "repository": {