fix: keep workbench submit available during SSE replay
This commit is contained in:
@@ -65,13 +65,13 @@ test("composer treats failed message with terminal body as sealed terminal turn"
|
||||
assert.equal(composer.targetTraceId, null);
|
||||
});
|
||||
|
||||
test("composer blocks turn submission until the live session stream is connected", () => {
|
||||
test("composer keeps turn submission available while Kafka replay connects", () => {
|
||||
const sessionId = "ses_realtime_connecting";
|
||||
const connecting = resolveComposerState({ messages: [], activeSessionId: sessionId, chatPending: false, realtimeReady: false });
|
||||
const connected = resolveComposerState({ messages: [], activeSessionId: sessionId, chatPending: false, realtimeReady: true });
|
||||
|
||||
assert.equal(connecting.disabled, true);
|
||||
assert.equal(connecting.disabledReason, "realtime_connecting");
|
||||
assert.equal(connecting.disabled, false);
|
||||
assert.equal(connecting.disabledReason, null);
|
||||
assert.equal(connecting.sessionId, sessionId);
|
||||
assert.equal(connected.disabled, false);
|
||||
});
|
||||
|
||||
@@ -95,9 +95,6 @@ export function resolveComposerState(input: { messages: ChatMessage[]; sessions?
|
||||
const effectiveSessionId = firstNonEmptyString(turn?.sessionId, currentRequest?.sessionId, active?.sessionId, sessionId);
|
||||
const threadId = firstNonEmptyString(turn?.threadId, currentRequest?.threadId, active?.threadId);
|
||||
const canSteer = Boolean(effectiveSessionId && activeTraceId && activeByStatus && !terminal);
|
||||
if (effectiveSessionId && input.realtimeReady === false) {
|
||||
return { disabled: true, disabledReason: "realtime_connecting", submitMode: canSteer ? "steer" : "turn", route: canSteer ? "/v1/agent/chat/steer" : "/v1/agent/chat", targetTraceId: canSteer ? activeTraceId : null, sessionId: effectiveSessionId, threadId };
|
||||
}
|
||||
if (canSteer) return { disabled: false, disabledReason: null, submitMode: "steer", route: "/v1/agent/chat/steer", targetTraceId: activeTraceId, sessionId: effectiveSessionId, threadId };
|
||||
if (!effectiveSessionId) return { disabled: true, disabledReason: "session_required", submitMode: "turn", route: "/v1/agent/chat", targetTraceId: null, sessionId: null, threadId };
|
||||
return { disabled: false, disabledReason: null, submitMode: "turn", route: "/v1/agent/chat", targetTraceId: null, sessionId: effectiveSessionId, threadId };
|
||||
|
||||
Reference in New Issue
Block a user