fix: reflect live workbench turns in session tabs (#1319)
This commit is contained in:
@@ -2,7 +2,7 @@ import assert from "node:assert/strict";
|
||||
import test from "node:test";
|
||||
|
||||
import type { ChatMessage, ConversationRecord, WorkspaceRecord } from "../src/types/index.ts";
|
||||
import { defaultProviderProfileOptions, mergeSelectedConversation, normalizeRecentDrafts, normalizeWorkbenchMessageTitle, providerProfileOptionsFromPayload, recordRecentDraft, resolveComposerState, resolveConversationSessionStatus, shouldApplyWorkspaceSnapshot, shouldShowSessionListLoading, sortSessionTabs, workspaceWithClearedActiveTrace } from "../src/stores/workbench-session.ts";
|
||||
import { defaultProviderProfileOptions, mergeActiveConversationActivity, mergeSelectedConversation, normalizeRecentDrafts, normalizeWorkbenchMessageTitle, providerProfileOptionsFromPayload, recordRecentDraft, resolveComposerState, resolveConversationSessionStatus, shouldApplyWorkspaceSnapshot, shouldShowSessionListLoading, sortSessionTabs, workspaceWithClearedActiveTrace } from "../src/stores/workbench-session.ts";
|
||||
|
||||
test("R2 composer ignores stale workspace activeTraceId without verified active message", () => {
|
||||
const workspace = workspaceRecord({ activeTraceId: "trc_stale", sessionStatus: "running" });
|
||||
@@ -130,6 +130,24 @@ test("R2 selected workspace stubs cannot clear a running conversation tab", () =
|
||||
assert.equal(tabs[0]?.label, "保持原始标题");
|
||||
});
|
||||
|
||||
test("R2 active in-flight turn updates the selected session tab before list refresh catches up", () => {
|
||||
const messages: ChatMessage[] = [
|
||||
userMessage({ conversationId: "cnv_live", sessionId: "ses_live", text: "立即显示左侧运行态", createdAt: "2026-01-04T00:00:00.000Z" }),
|
||||
agentMessage({ conversationId: "cnv_live", sessionId: "ses_live", status: "running", traceId: "trc_live", updatedAt: "2026-01-04T00:00:01.000Z" })
|
||||
];
|
||||
const merged = mergeActiveConversationActivity([{ conversationId: "cnv_live", sessionId: "ses_live", status: "active", messageCount: 0 }], {
|
||||
activeConversationId: "cnv_live",
|
||||
messages,
|
||||
currentRequest: { conversationId: "cnv_live", sessionId: "ses_live", traceId: "trc_live", status: "running" },
|
||||
chatPending: true
|
||||
});
|
||||
const tabs = sortSessionTabs(merged, "cnv_live");
|
||||
assert.equal(tabs[0]?.status, "running");
|
||||
assert.equal(tabs[0]?.running, true);
|
||||
assert.equal(tabs[0]?.label, "立即显示左侧运行态");
|
||||
assert.equal(tabs[0]?.messageCount, 2);
|
||||
});
|
||||
|
||||
test("R2 session tabs use conversation status before stale snapshot or message status", () => {
|
||||
const conversation: ConversationRecord = {
|
||||
conversationId: "cnv_stale_snapshot",
|
||||
|
||||
Reference in New Issue
Block a user