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