fix(team): treat online teammates as ready
This commit is contained in:
parent
7842b5a01f
commit
1a27ef1ade
3 changed files with 17 additions and 17 deletions
|
|
@ -1751,9 +1751,9 @@ function buildGeminiPostLaunchHydrationPrompt(
|
|||
: status?.launchState === 'confirmed_alive'
|
||||
? 'bootstrap confirmed'
|
||||
: status?.runtimeAlive
|
||||
? 'runtime started, first contact pending'
|
||||
? 'runtime online and ready for instructions'
|
||||
: status?.launchState === 'runtime_pending_bootstrap'
|
||||
? 'spawn accepted, first contact pending'
|
||||
? 'spawn accepted, runtime not confirmed yet'
|
||||
: status?.status === 'spawning'
|
||||
? 'spawn in progress'
|
||||
: 'runtime state unclear';
|
||||
|
|
@ -3011,7 +3011,7 @@ export class TeamProvisioningService {
|
|||
const detail =
|
||||
parsedStatus.reason === 'already_running'
|
||||
? 'duplicate spawn skipped - already running'
|
||||
: 'duplicate spawn skipped - first contact pending';
|
||||
: 'duplicate spawn skipped - teammate already online';
|
||||
this.appendMemberBootstrapDiagnostic(run, spawnedMemberName, detail);
|
||||
return;
|
||||
}
|
||||
|
|
@ -6104,7 +6104,7 @@ export class TeamProvisioningService {
|
|||
this.appendMemberBootstrapDiagnostic(
|
||||
run,
|
||||
memberName,
|
||||
'respawn blocked as duplicate — teammate already alive or first contact pending'
|
||||
'respawn blocked as duplicate — teammate already online'
|
||||
);
|
||||
continue;
|
||||
}
|
||||
|
|
@ -6376,13 +6376,13 @@ export class TeamProvisioningService {
|
|||
launchSummary.runtimeAlivePendingCount > 0 &&
|
||||
launchSummary.runtimeAlivePendingCount === run.expectedMembers.length;
|
||||
return allRuntimeAlive
|
||||
? `${prefix} — teammate runtimes online, waiting for first contact`
|
||||
? `${prefix} — teammate runtimes online`
|
||||
: launchSummary.runtimeAlivePendingCount > 0
|
||||
? `${prefix} — ${launchSummary.runtimeAlivePendingCount}/${run.expectedMembers.length} teammate runtime${launchSummary.runtimeAlivePendingCount === 1 ? '' : 's'} online${stillStartingCount > 0 ? `, ${stillStartingCount} still starting` : ''}, waiting for first contact`
|
||||
: `${prefix} — teammates are still starting, waiting for first contact`;
|
||||
? `${prefix} — ${launchSummary.runtimeAlivePendingCount}/${run.expectedMembers.length} teammate runtime${launchSummary.runtimeAlivePendingCount === 1 ? '' : 's'} online${stillStartingCount > 0 ? `, ${stillStartingCount} still starting` : ''}`
|
||||
: `${prefix} — teammates are still starting`;
|
||||
}
|
||||
|
||||
return `${prefix} — ${launchSummary.confirmedCount}/${run.expectedMembers.length} teammates made contact${launchSummary.runtimeAlivePendingCount > 0 ? `, ${launchSummary.runtimeAlivePendingCount} runtime${launchSummary.runtimeAlivePendingCount === 1 ? '' : 's'} waiting for first contact` : ''}${stillStartingCount > 0 ? `${launchSummary.runtimeAlivePendingCount > 0 ? ', ' : ', '}${stillStartingCount} still joining` : ''}`;
|
||||
return `${prefix} — ${launchSummary.confirmedCount}/${run.expectedMembers.length} teammates made contact${launchSummary.runtimeAlivePendingCount > 0 ? `, ${launchSummary.runtimeAlivePendingCount} runtime${launchSummary.runtimeAlivePendingCount === 1 ? '' : 's'} online` : ''}${stillStartingCount > 0 ? `${launchSummary.runtimeAlivePendingCount > 0 ? ', ' : ', '}${stillStartingCount} still joining` : ''}`;
|
||||
}
|
||||
|
||||
private buildRuntimeSpawnStatusRecord(
|
||||
|
|
|
|||
|
|
@ -154,10 +154,10 @@ export const TeamProvisioningBanner = ({
|
|||
: allTeammatesConfirmedAlive
|
||||
? `Team provisioned — all ${fallbackTeammateCount} teammates made contact`
|
||||
: allPendingRuntimesStarted
|
||||
? 'Team provisioned — teammate runtimes online, waiting for first contact'
|
||||
? 'Team provisioned — teammate runtimes online'
|
||||
: processOnlyAliveCount > 0 || pendingSpawnCount > 0
|
||||
? `Team provisioned — ${heartbeatConfirmedCount}/${fallbackTeammateCount} teammates made contact${processOnlyAliveCount > 0 ? `, ${processOnlyAliveCount} runtime${processOnlyAliveCount === 1 ? '' : 's'} online and waiting for first contact` : ''}${pendingSpawnCount > 0 ? `${processOnlyAliveCount > 0 ? ', ' : ', '}${pendingSpawnCount} still starting` : ''}`
|
||||
: 'Team provisioned — teammate first contacts are still coming in';
|
||||
? `Team provisioned — ${heartbeatConfirmedCount}/${fallbackTeammateCount} teammates made contact${processOnlyAliveCount > 0 ? `, ${processOnlyAliveCount} runtime${processOnlyAliveCount === 1 ? '' : 's'} online` : ''}${pendingSpawnCount > 0 ? `${processOnlyAliveCount > 0 ? ', ' : ', '}${pendingSpawnCount} still starting` : ''}`
|
||||
: 'Team provisioned — teammate runtimes are still starting';
|
||||
const readyDetailSeverity =
|
||||
failedSpawnCount > 0 || processOnlyAliveCount > 0 || pendingSpawnCount > 0
|
||||
? 'warning'
|
||||
|
|
@ -170,10 +170,10 @@ export const TeamProvisioningBanner = ({
|
|||
: allTeammatesConfirmedAlive
|
||||
? `Team launched — all ${fallbackTeammateCount} teammates made contact`
|
||||
: allPendingRuntimesStarted
|
||||
? 'Team launched — teammate runtimes online, waiting for first contact'
|
||||
? 'Team launched — teammate runtimes online'
|
||||
: processOnlyAliveCount > 0 || pendingSpawnCount > 0
|
||||
? `Team launched — ${heartbeatConfirmedCount}/${fallbackTeammateCount} teammates made contact${processOnlyAliveCount > 0 ? `, ${processOnlyAliveCount} runtime${processOnlyAliveCount === 1 ? '' : 's'} online and waiting for first contact` : ''}${pendingSpawnCount > 0 ? `${processOnlyAliveCount > 0 ? ', ' : ', '}${pendingSpawnCount} still starting` : ''}`
|
||||
: 'Team launched — teammate first contacts are still coming in';
|
||||
? `Team launched — ${heartbeatConfirmedCount}/${fallbackTeammateCount} teammates made contact${processOnlyAliveCount > 0 ? `, ${processOnlyAliveCount} runtime${processOnlyAliveCount === 1 ? '' : 's'} online` : ''}${pendingSpawnCount > 0 ? `${processOnlyAliveCount > 0 ? ', ' : ', '}${pendingSpawnCount} still starting` : ''}`
|
||||
: 'Team launched — teammate runtimes are still starting';
|
||||
|
||||
return (
|
||||
<div className="mb-3">
|
||||
|
|
|
|||
|
|
@ -101,7 +101,7 @@ export const SPAWN_DOT_COLORS: Record<MemberSpawnStatus, string> = {
|
|||
|
||||
export const SPAWN_PRESENCE_LABELS: Record<MemberSpawnStatus, string> = {
|
||||
offline: 'offline',
|
||||
waiting: 'first contact pending',
|
||||
waiting: 'online',
|
||||
spawning: 'starting',
|
||||
online: 'ready',
|
||||
error: 'spawn failed',
|
||||
|
|
@ -160,13 +160,13 @@ export function getSpawnAwarePresenceLabel(
|
|||
return 'waiting for Agent';
|
||||
}
|
||||
if (spawnLaunchState === 'runtime_pending_bootstrap' && runtimeAlive) {
|
||||
return 'first contact pending';
|
||||
return 'online';
|
||||
}
|
||||
if (spawnStatus === 'waiting') {
|
||||
return SPAWN_PRESENCE_LABELS.waiting;
|
||||
}
|
||||
if (spawnStatus === 'online' && livenessSource === 'process') {
|
||||
return 'first contact pending';
|
||||
return 'online';
|
||||
}
|
||||
if (spawnStatus && isTeamProvisioning) {
|
||||
return SPAWN_PRESENCE_LABELS[spawnStatus];
|
||||
|
|
|
|||
Loading…
Reference in a new issue