fix: 增强长 turn liveness 可见性
This commit is contained in:
@@ -699,8 +699,10 @@ function summarizeQueueStats(record: JsonRecord | null): JsonRecord | null {
|
||||
function summarizeQueueTaskWithAttempt(record: JsonRecord | null, fallbackTaskId: string): JsonRecord {
|
||||
const summary = summarizeQueueTaskRecord(record, fallbackTaskId);
|
||||
const latestAttempt = summarizeAttemptRecord(jsonRecordValue(record?.latestAttempt));
|
||||
const supervisor = summarizeSupervisorRecord(jsonRecordValue(record?.supervisor));
|
||||
const sessionRef = jsonRecordValue(record?.sessionRef);
|
||||
if (latestAttempt) summary.latestAttempt = latestAttempt;
|
||||
if (supervisor) summary.supervisor = supervisor;
|
||||
const sessionId = stringValue(sessionRef?.sessionId) ?? stringValue(latestAttempt?.sessionId);
|
||||
if (sessionId) summary.sessionId = sessionId;
|
||||
if (record?.readCursor !== undefined) summary.read = record.readCursor !== null;
|
||||
@@ -737,6 +739,24 @@ function summarizeAttemptRecord(record: JsonRecord | null): JsonRecord | null {
|
||||
return compactRecord(record, { keys: ["attemptId", "state", "runId", "commandId", "runnerJobId", "sessionId", "sessionPath"] });
|
||||
}
|
||||
|
||||
function summarizeSupervisorRecord(record: JsonRecord | null): JsonRecord | null {
|
||||
if (!record) return null;
|
||||
const lastActivity = jsonRecordValue(record.lastActivity);
|
||||
const timeoutBudget = jsonRecordValue(record.timeoutBudget);
|
||||
return {
|
||||
...compactRecord(record, { keys: ["phase", "active", "status", "terminalStatus", "failureKind", "runId", "commandId", "lastSeq"] }),
|
||||
lastActivity: lastActivity ? compactRecord(lastActivity, { keys: ["sourceSeq", "eventId", "activityKind", "type", "status", "toolName", "itemId", "ageMs", "summary"] }) : null,
|
||||
timeoutBudget: timeoutBudget ? compactRecord(timeoutBudget, { keys: ["state", "timeoutMs", "elapsedMs", "remainingMs", "startedAt", "source"] }) : null,
|
||||
recoveryActions: summarizeRecoveryActions(record.recoveryActions),
|
||||
valuesPrinted: false,
|
||||
};
|
||||
}
|
||||
|
||||
function summarizeRecoveryActions(value: JsonValue | undefined): JsonValue[] {
|
||||
if (!Array.isArray(value)) return [];
|
||||
return value.slice(0, 5).map((item) => compactRecord(jsonRecordValue(item), { keys: ["action", "reason", "runId", "commandId", "sessionId", "afterSeq", "command", "hint"] }));
|
||||
}
|
||||
|
||||
function summarizeRunRecord(record: JsonRecord | null): JsonRecord | null {
|
||||
if (!record) return null;
|
||||
return compactRecord(record, { keys: ["id", "status", "terminalStatus", "failureKind", "failureMessage", "backendProfile", "providerId", "claimedBy", "leaseExpiresAt", "createdAt", "updatedAt"] });
|
||||
|
||||
Reference in New Issue
Block a user