gsd-pi 2.14.0 → 2.14.1

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.
@@ -335,10 +335,12 @@ function startDispatchGapWatchdog(ctx: ExtensionContext, pi: ExtensionAPI): void
335
335
 
336
336
  // Auto-mode is active but no unit was dispatched — the state machine stalled.
337
337
  // Re-derive state and attempt a fresh dispatch.
338
- ctx.ui.notify(
339
- "Dispatch gap detected — no unit dispatched after previous unit completed. Re-evaluating state.",
340
- "warning",
341
- );
338
+ if (verbose) {
339
+ ctx.ui.notify(
340
+ "Dispatch gap detected — re-evaluating state.",
341
+ "info",
342
+ );
343
+ }
342
344
 
343
345
  try {
344
346
  await dispatchNextUnit(ctx, pi);
@@ -1507,7 +1509,7 @@ async function dispatchNextUnit(
1507
1509
  ): Promise<void> {
1508
1510
  if (!active || !cmdCtx) {
1509
1511
  if (active && !cmdCtx) {
1510
- ctx.ui.notify("Auto-mode dispatch failed: no command context. Run /gsd auto to restart.", "error");
1512
+ ctx.ui.notify("Auto-mode session expired. Run /gsd auto to restart.", "info");
1511
1513
  }
1512
1514
  return;
1513
1515
  }
@@ -1861,7 +1863,7 @@ async function dispatchNextUnit(
1861
1863
  saveActivityLog(ctx, basePath, currentUnit.type, currentUnit.id);
1862
1864
  }
1863
1865
  await stopAuto(ctx, pi);
1864
- ctx.ui.notify(`Unexpected phase: ${state.phase}. Stopping auto-mode.`, "warning");
1866
+ ctx.ui.notify(`Unhandled phase "${state.phase}" run /gsd doctor to diagnose.`, "info");
1865
1867
  return;
1866
1868
  }
1867
1869
  }
@@ -2181,7 +2183,7 @@ async function dispatchNextUnit(
2181
2183
  const result = await cmdCtx!.newSession();
2182
2184
  if (result.cancelled) {
2183
2185
  await stopAuto(ctx, pi);
2184
- ctx.ui.notify("New session cancelled — auto-mode stopped.", "warning");
2186
+ ctx.ui.notify("Auto-mode stopped.", "info");
2185
2187
  return;
2186
2188
  }
2187
2189
 
@@ -2287,7 +2289,7 @@ async function dispatchNextUnit(
2287
2289
  }
2288
2290
  }
2289
2291
  if (!model) {
2290
- ctx.ui.notify(`Model ${modelId} not found in available models, trying fallback.`, "warning");
2292
+ if (verbose) ctx.ui.notify(`Model ${modelId} not found, trying fallback.`, "info");
2291
2293
  continue;
2292
2294
  }
2293
2295
 
@@ -2303,25 +2305,14 @@ async function dispatchNextUnit(
2303
2305
  } else {
2304
2306
  const nextModel = modelsToTry[modelsToTry.indexOf(modelId) + 1];
2305
2307
  if (nextModel) {
2306
- ctx.ui.notify(
2307
- `Failed to set model ${modelId}, trying fallback ${nextModel}...`,
2308
- "warning",
2309
- );
2308
+ if (verbose) ctx.ui.notify(`Failed to set model ${modelId}, trying ${nextModel}...`, "info");
2310
2309
  } else {
2311
- ctx.ui.notify(
2312
- `Failed to set model ${modelId} and all fallbacks exhausted. Using default model.`,
2313
- "warning",
2314
- );
2310
+ ctx.ui.notify(`All preferred models unavailable for ${unitType}. Using default.`, "warning");
2315
2311
  }
2316
2312
  }
2317
2313
  }
2318
2314
 
2319
- if (!modelSet) {
2320
- ctx.ui.notify(
2321
- `Could not set any preferred model for ${unitType}. Continuing with default.`,
2322
- "warning",
2323
- );
2324
- }
2315
+ // modelSet=false is already handled by the "all fallbacks exhausted" warning above
2325
2316
  }
2326
2317
 
2327
2318
  // Start progress-aware supervision: a soft warning, an idle watchdog, and
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gsd-pi",
3
- "version": "2.14.0",
3
+ "version": "2.14.1",
4
4
  "description": "GSD — Get Shit Done coding agent",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -335,10 +335,12 @@ function startDispatchGapWatchdog(ctx: ExtensionContext, pi: ExtensionAPI): void
335
335
 
336
336
  // Auto-mode is active but no unit was dispatched — the state machine stalled.
337
337
  // Re-derive state and attempt a fresh dispatch.
338
- ctx.ui.notify(
339
- "Dispatch gap detected — no unit dispatched after previous unit completed. Re-evaluating state.",
340
- "warning",
341
- );
338
+ if (verbose) {
339
+ ctx.ui.notify(
340
+ "Dispatch gap detected — re-evaluating state.",
341
+ "info",
342
+ );
343
+ }
342
344
 
343
345
  try {
344
346
  await dispatchNextUnit(ctx, pi);
@@ -1507,7 +1509,7 @@ async function dispatchNextUnit(
1507
1509
  ): Promise<void> {
1508
1510
  if (!active || !cmdCtx) {
1509
1511
  if (active && !cmdCtx) {
1510
- ctx.ui.notify("Auto-mode dispatch failed: no command context. Run /gsd auto to restart.", "error");
1512
+ ctx.ui.notify("Auto-mode session expired. Run /gsd auto to restart.", "info");
1511
1513
  }
1512
1514
  return;
1513
1515
  }
@@ -1861,7 +1863,7 @@ async function dispatchNextUnit(
1861
1863
  saveActivityLog(ctx, basePath, currentUnit.type, currentUnit.id);
1862
1864
  }
1863
1865
  await stopAuto(ctx, pi);
1864
- ctx.ui.notify(`Unexpected phase: ${state.phase}. Stopping auto-mode.`, "warning");
1866
+ ctx.ui.notify(`Unhandled phase "${state.phase}" run /gsd doctor to diagnose.`, "info");
1865
1867
  return;
1866
1868
  }
1867
1869
  }
@@ -2181,7 +2183,7 @@ async function dispatchNextUnit(
2181
2183
  const result = await cmdCtx!.newSession();
2182
2184
  if (result.cancelled) {
2183
2185
  await stopAuto(ctx, pi);
2184
- ctx.ui.notify("New session cancelled — auto-mode stopped.", "warning");
2186
+ ctx.ui.notify("Auto-mode stopped.", "info");
2185
2187
  return;
2186
2188
  }
2187
2189
 
@@ -2287,7 +2289,7 @@ async function dispatchNextUnit(
2287
2289
  }
2288
2290
  }
2289
2291
  if (!model) {
2290
- ctx.ui.notify(`Model ${modelId} not found in available models, trying fallback.`, "warning");
2292
+ if (verbose) ctx.ui.notify(`Model ${modelId} not found, trying fallback.`, "info");
2291
2293
  continue;
2292
2294
  }
2293
2295
 
@@ -2303,25 +2305,14 @@ async function dispatchNextUnit(
2303
2305
  } else {
2304
2306
  const nextModel = modelsToTry[modelsToTry.indexOf(modelId) + 1];
2305
2307
  if (nextModel) {
2306
- ctx.ui.notify(
2307
- `Failed to set model ${modelId}, trying fallback ${nextModel}...`,
2308
- "warning",
2309
- );
2308
+ if (verbose) ctx.ui.notify(`Failed to set model ${modelId}, trying ${nextModel}...`, "info");
2310
2309
  } else {
2311
- ctx.ui.notify(
2312
- `Failed to set model ${modelId} and all fallbacks exhausted. Using default model.`,
2313
- "warning",
2314
- );
2310
+ ctx.ui.notify(`All preferred models unavailable for ${unitType}. Using default.`, "warning");
2315
2311
  }
2316
2312
  }
2317
2313
  }
2318
2314
 
2319
- if (!modelSet) {
2320
- ctx.ui.notify(
2321
- `Could not set any preferred model for ${unitType}. Continuing with default.`,
2322
- "warning",
2323
- );
2324
- }
2315
+ // modelSet=false is already handled by the "all fallbacks exhausted" warning above
2325
2316
  }
2326
2317
 
2327
2318
  // Start progress-aware supervision: a soft warning, an idle watchdog, and