mirror of
https://github.com/openclaw/openclaw.git
synced 2026-03-29 19:01:44 +00:00
fix: persist create transcript paths in session entries
This commit is contained in:
@@ -739,12 +739,31 @@ export const sessionsHandlers: GatewayRequestHandlers = {
|
||||
return;
|
||||
}
|
||||
|
||||
const createdEntry =
|
||||
created.entry.sessionFile === ensured.transcriptPath
|
||||
? created.entry
|
||||
: {
|
||||
...created.entry,
|
||||
sessionFile: ensured.transcriptPath,
|
||||
};
|
||||
if (createdEntry !== created.entry) {
|
||||
await updateSessionStore(target.storePath, (store) => {
|
||||
const existing = store[target.canonicalKey];
|
||||
if (existing) {
|
||||
store[target.canonicalKey] = {
|
||||
...existing,
|
||||
sessionFile: ensured.transcriptPath,
|
||||
};
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
const initialMessage = resolveOptionalInitialSessionMessage(p);
|
||||
let runPayload: Record<string, unknown> | undefined;
|
||||
let runError: unknown;
|
||||
let runMeta: Record<string, unknown> | undefined;
|
||||
const messageSeq = initialMessage
|
||||
? readSessionMessages(created.entry.sessionId, target.storePath, created.entry.sessionFile)
|
||||
? readSessionMessages(createdEntry.sessionId, target.storePath, createdEntry.sessionFile)
|
||||
.length + 1
|
||||
: undefined;
|
||||
|
||||
@@ -782,8 +801,8 @@ export const sessionsHandlers: GatewayRequestHandlers = {
|
||||
{
|
||||
ok: true,
|
||||
key: target.canonicalKey,
|
||||
sessionId: created.entry.sessionId,
|
||||
entry: created.entry,
|
||||
sessionId: createdEntry.sessionId,
|
||||
entry: createdEntry,
|
||||
runStarted,
|
||||
...(runPayload ? runPayload : {}),
|
||||
...(runStarted && typeof messageSeq === "number" ? { messageSeq } : {}),
|
||||
|
||||
@@ -304,6 +304,7 @@ describe("gateway server sessions", () => {
|
||||
providerOverride?: string;
|
||||
modelOverride?: string;
|
||||
parentSessionKey?: string;
|
||||
sessionFile?: string;
|
||||
};
|
||||
}>(ws, "sessions.create", {
|
||||
agentId: "ops",
|
||||
@@ -318,6 +319,7 @@ describe("gateway server sessions", () => {
|
||||
expect(created.payload?.entry?.providerOverride).toBe("openai");
|
||||
expect(created.payload?.entry?.modelOverride).toBe("gpt-test-a");
|
||||
expect(created.payload?.entry?.parentSessionKey).toBe("agent:main:main");
|
||||
expect(created.payload?.entry?.sessionFile).toBeTruthy();
|
||||
expect(created.payload?.sessionId).toMatch(
|
||||
/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/,
|
||||
);
|
||||
@@ -330,6 +332,7 @@ describe("gateway server sessions", () => {
|
||||
providerOverride?: string;
|
||||
modelOverride?: string;
|
||||
parentSessionKey?: string;
|
||||
sessionFile?: string;
|
||||
}
|
||||
>;
|
||||
const key = created.payload?.key as string;
|
||||
@@ -340,6 +343,7 @@ describe("gateway server sessions", () => {
|
||||
modelOverride: "gpt-test-a",
|
||||
parentSessionKey: "agent:main:main",
|
||||
});
|
||||
expect(created.payload?.entry?.sessionFile).toBe(rawStore[key]?.sessionFile);
|
||||
|
||||
const transcriptPath = path.join(dir, `${created.payload?.sessionId}.jsonl`);
|
||||
const transcript = await fs.readFile(transcriptPath, "utf-8");
|
||||
|
||||
Reference in New Issue
Block a user