fix(workbench): define running timing helper in store (#1988)
Co-authored-by: root <root@lyon.remote>
This commit is contained in:
@@ -1443,7 +1443,7 @@ function nonBlockingProjection(projection: ProjectionDiagnostic | null): Project
|
|||||||
function stableAdmissionTimingPatchForRunningMessage(message: ChatMessage, patch: Partial<ChatMessage>): Partial<ChatMessage> {
|
function stableAdmissionTimingPatchForRunningMessage(message: ChatMessage, patch: Partial<ChatMessage>): Partial<ChatMessage> {
|
||||||
const incoming = patch.timing;
|
const incoming = patch.timing;
|
||||||
const existing = message.timing;
|
const existing = message.timing;
|
||||||
if (!incoming || !existing?.startedAt || !isRunningMessage(message)) return patch;
|
if (!incoming || !existing?.startedAt || !isRunningAgentMessageForTiming(message)) return patch;
|
||||||
const timing = {
|
const timing = {
|
||||||
...incoming,
|
...incoming,
|
||||||
startedAt: existing.startedAt,
|
startedAt: existing.startedAt,
|
||||||
@@ -1455,6 +1455,13 @@ function nonBlockingProjection(projection: ProjectionDiagnostic | null): Project
|
|||||||
return { ...patch, timing, startedAt: timing.startedAt ?? null, lastEventAt: timing.lastEventAt ?? null, finishedAt: null, durationMs: null };
|
return { ...patch, timing, startedAt: timing.startedAt ?? null, lastEventAt: timing.lastEventAt ?? null, finishedAt: null, durationMs: null };
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function isRunningAgentMessageForTiming(message: ChatMessage): boolean {
|
||||||
|
if (message.role !== "agent") return false;
|
||||||
|
const status = normalizedStatusText(firstNonEmptyString(message.status, message.runnerTrace?.status));
|
||||||
|
if (status && isTerminalMessageStatus(status)) return false;
|
||||||
|
return status === null || isTraceActiveStatus(status) || message.traceAutoLifecycle === "running";
|
||||||
|
}
|
||||||
|
|
||||||
function optimisticAdmissionTimingPatch(lifecycle: AgentChatResponse): Partial<ChatMessage> {
|
function optimisticAdmissionTimingPatch(lifecycle: AgentChatResponse): Partial<ChatMessage> {
|
||||||
const patch = messageTimingPatch(lifecycle);
|
const patch = messageTimingPatch(lifecycle);
|
||||||
if (patch.timing?.startedAt && patch.timing?.lastEventAt) return patch;
|
if (patch.timing?.startedAt && patch.timing?.lastEventAt) return patch;
|
||||||
|
|||||||
Reference in New Issue
Block a user