diff --git a/run/cli/commands/dev-helpers.ts b/run/cli/commands/dev-helpers.ts index cfd220b..d749123 100644 --- a/run/cli/commands/dev-helpers.ts +++ b/run/cli/commands/dev-helpers.ts @@ -216,10 +216,12 @@ export async function keepAlive( services.postStartupMonitor = monitor; // Return result for display in alerts + const planned = result.results?.length ?? 0; return { started: result.startedServices?.length ?? 0, failed: result.failedServices?.length ?? 0, skipped: result.skippedServices?.length ?? 0, + planned, failedServices: result.failedServices, }; } catch (err) { diff --git a/run/core/post-startup-monitor.ts b/run/core/post-startup-monitor.ts index ecef042..9dae53a 100644 --- a/run/core/post-startup-monitor.ts +++ b/run/core/post-startup-monitor.ts @@ -85,6 +85,7 @@ export interface RestartResult { started: number; failed: number; skipped: number; + planned?: number; failedServices?: string[]; } @@ -548,10 +549,13 @@ export class PostStartupMonitor { // Add result to alerts if (result) { + const planned = result.planned ?? (result.started + result.failed + result.skipped); if (result.failed > 0) { - this.addAlert('restart', 'error', `${result.failed} services failed: ${result.failedServices?.slice(0, 3).join(', ') ?? 'unknown'}`); + this.addAlert('restart', 'error', `${result.failed}/${planned} failed: ${result.failedServices?.slice(0, 3).join(', ') ?? 'unknown'}`); } else if (result.started > 0) { - this.addAlert('restart', 'warning', `Restarted ${result.started} services (${result.skipped} skipped)`); + this.addAlert('restart', 'warning', `${result.started}/${planned} started (${result.skipped} skipped)`); + } else { + this.addAlert('restart', 'warning', `0/${planned} services started`); } } } catch (err) {