mirror of
https://github.com/openclaw/openclaw.git
synced 2026-03-28 18:33:37 +00:00
fix: keep fast mode in gateway session rows
This commit is contained in:
@@ -149,6 +149,11 @@ function emitSessionsChanged(
|
||||
sessionId: sessionRow.sessionId,
|
||||
kind: sessionRow.kind,
|
||||
channel: sessionRow.channel,
|
||||
subject: sessionRow.subject,
|
||||
groupChannel: sessionRow.groupChannel,
|
||||
space: sessionRow.space,
|
||||
chatType: sessionRow.chatType,
|
||||
origin: sessionRow.origin,
|
||||
spawnedBy: sessionRow.spawnedBy,
|
||||
label: sessionRow.label,
|
||||
displayName: sessionRow.displayName,
|
||||
@@ -156,8 +161,14 @@ function emitSessionsChanged(
|
||||
parentSessionKey: sessionRow.parentSessionKey,
|
||||
childSessions: sessionRow.childSessions,
|
||||
thinkingLevel: sessionRow.thinkingLevel,
|
||||
fastMode: sessionRow.fastMode,
|
||||
verboseLevel: sessionRow.verboseLevel,
|
||||
reasoningLevel: sessionRow.reasoningLevel,
|
||||
elevatedLevel: sessionRow.elevatedLevel,
|
||||
systemSent: sessionRow.systemSent,
|
||||
abortedLastRun: sessionRow.abortedLastRun,
|
||||
inputTokens: sessionRow.inputTokens,
|
||||
outputTokens: sessionRow.outputTokens,
|
||||
lastChannel: sessionRow.lastChannel,
|
||||
lastTo: sessionRow.lastTo,
|
||||
lastAccountId: sessionRow.lastAccountId,
|
||||
@@ -165,6 +176,7 @@ function emitSessionsChanged(
|
||||
totalTokensFresh: sessionRow.totalTokensFresh,
|
||||
contextTokens: sessionRow.contextTokens,
|
||||
estimatedCostUsd: sessionRow.estimatedCostUsd,
|
||||
responseUsage: sessionRow.responseUsage,
|
||||
modelProvider: sessionRow.modelProvider,
|
||||
model: sessionRow.model,
|
||||
status: sessionRow.status,
|
||||
|
||||
@@ -941,6 +941,11 @@ export async function startGatewayServer(
|
||||
sessionId: sessionRow.sessionId,
|
||||
kind: sessionRow.kind,
|
||||
channel: sessionRow.channel,
|
||||
subject: sessionRow.subject,
|
||||
groupChannel: sessionRow.groupChannel,
|
||||
space: sessionRow.space,
|
||||
chatType: sessionRow.chatType,
|
||||
origin: sessionRow.origin,
|
||||
spawnedBy: sessionRow.spawnedBy,
|
||||
label: sessionRow.label,
|
||||
displayName: sessionRow.displayName,
|
||||
@@ -948,8 +953,14 @@ export async function startGatewayServer(
|
||||
parentSessionKey: sessionRow.parentSessionKey,
|
||||
childSessions: sessionRow.childSessions,
|
||||
thinkingLevel: sessionRow.thinkingLevel,
|
||||
fastMode: sessionRow.fastMode,
|
||||
verboseLevel: sessionRow.verboseLevel,
|
||||
reasoningLevel: sessionRow.reasoningLevel,
|
||||
elevatedLevel: sessionRow.elevatedLevel,
|
||||
systemSent: sessionRow.systemSent,
|
||||
abortedLastRun: sessionRow.abortedLastRun,
|
||||
inputTokens: sessionRow.inputTokens,
|
||||
outputTokens: sessionRow.outputTokens,
|
||||
lastChannel: sessionRow.lastChannel,
|
||||
lastTo: sessionRow.lastTo,
|
||||
lastAccountId: sessionRow.lastAccountId,
|
||||
@@ -957,6 +968,7 @@ export async function startGatewayServer(
|
||||
totalTokensFresh: sessionRow.totalTokensFresh,
|
||||
contextTokens: sessionRow.contextTokens,
|
||||
estimatedCostUsd: sessionRow.estimatedCostUsd,
|
||||
responseUsage: sessionRow.responseUsage,
|
||||
modelProvider: sessionRow.modelProvider,
|
||||
model: sessionRow.model,
|
||||
status: sessionRow.status,
|
||||
@@ -1023,6 +1035,11 @@ export async function startGatewayServer(
|
||||
sessionId: sessionRow.sessionId,
|
||||
kind: sessionRow.kind,
|
||||
channel: sessionRow.channel,
|
||||
subject: sessionRow.subject,
|
||||
groupChannel: sessionRow.groupChannel,
|
||||
space: sessionRow.space,
|
||||
chatType: sessionRow.chatType,
|
||||
origin: sessionRow.origin,
|
||||
spawnedBy: sessionRow.spawnedBy,
|
||||
label: event.label ?? sessionRow.label,
|
||||
displayName: event.displayName ?? sessionRow.displayName,
|
||||
@@ -1030,8 +1047,14 @@ export async function startGatewayServer(
|
||||
parentSessionKey: event.parentSessionKey ?? sessionRow.parentSessionKey,
|
||||
childSessions: sessionRow.childSessions,
|
||||
thinkingLevel: sessionRow.thinkingLevel,
|
||||
fastMode: sessionRow.fastMode,
|
||||
verboseLevel: sessionRow.verboseLevel,
|
||||
reasoningLevel: sessionRow.reasoningLevel,
|
||||
elevatedLevel: sessionRow.elevatedLevel,
|
||||
systemSent: sessionRow.systemSent,
|
||||
abortedLastRun: sessionRow.abortedLastRun,
|
||||
inputTokens: sessionRow.inputTokens,
|
||||
outputTokens: sessionRow.outputTokens,
|
||||
lastChannel: sessionRow.lastChannel,
|
||||
lastTo: sessionRow.lastTo,
|
||||
lastAccountId: sessionRow.lastAccountId,
|
||||
@@ -1039,6 +1062,7 @@ export async function startGatewayServer(
|
||||
totalTokensFresh: sessionRow.totalTokensFresh,
|
||||
contextTokens: sessionRow.contextTokens,
|
||||
estimatedCostUsd: sessionRow.estimatedCostUsd,
|
||||
responseUsage: sessionRow.responseUsage,
|
||||
modelProvider: sessionRow.modelProvider,
|
||||
model: sessionRow.model,
|
||||
status: sessionRow.status,
|
||||
|
||||
@@ -593,6 +593,58 @@ describe("gateway server sessions", () => {
|
||||
);
|
||||
});
|
||||
|
||||
test("sessions.changed mutation events include live session setting metadata", async () => {
|
||||
await createSessionStoreDir();
|
||||
await writeSessionStore({
|
||||
entries: {
|
||||
main: {
|
||||
sessionId: "sess-main",
|
||||
updatedAt: Date.now(),
|
||||
verboseLevel: "on",
|
||||
responseUsage: "full",
|
||||
fastMode: true,
|
||||
},
|
||||
},
|
||||
});
|
||||
|
||||
const broadcastToConnIds = vi.fn();
|
||||
const respond = vi.fn();
|
||||
const sessionsHandlers = await getSessionsHandlers();
|
||||
await sessionsHandlers["sessions.patch"]({
|
||||
req: {} as never,
|
||||
params: {
|
||||
key: "main",
|
||||
verboseLevel: "on",
|
||||
},
|
||||
respond,
|
||||
context: {
|
||||
broadcastToConnIds,
|
||||
getSessionEventSubscriberConnIds: () => new Set(["conn-1"]),
|
||||
loadGatewayModelCatalog: async () => ({ providers: [] }),
|
||||
} as never,
|
||||
client: null,
|
||||
isWebchatConnect: () => false,
|
||||
});
|
||||
|
||||
expect(respond).toHaveBeenCalledWith(
|
||||
true,
|
||||
expect.objectContaining({ ok: true, key: "agent:main:main" }),
|
||||
undefined,
|
||||
);
|
||||
expect(broadcastToConnIds).toHaveBeenCalledWith(
|
||||
"sessions.changed",
|
||||
expect.objectContaining({
|
||||
sessionKey: "agent:main:main",
|
||||
reason: "patch",
|
||||
verboseLevel: "on",
|
||||
responseUsage: "full",
|
||||
fastMode: true,
|
||||
}),
|
||||
new Set(["conn-1"]),
|
||||
{ dropIfSlow: true },
|
||||
);
|
||||
});
|
||||
|
||||
test("lists and patches session store via sessions.* RPC", async () => {
|
||||
const { dir, storePath } = await createSessionStoreDir();
|
||||
const now = Date.now();
|
||||
|
||||
@@ -1210,6 +1210,7 @@ export function buildGatewaySessionRow(params: {
|
||||
systemSent: entry?.systemSent,
|
||||
abortedLastRun: entry?.abortedLastRun,
|
||||
thinkingLevel: entry?.thinkingLevel,
|
||||
fastMode: entry?.fastMode,
|
||||
verboseLevel: entry?.verboseLevel,
|
||||
reasoningLevel: entry?.reasoningLevel,
|
||||
elevatedLevel: entry?.elevatedLevel,
|
||||
|
||||
Reference in New Issue
Block a user