fix(trajectory): export legacy v1 sessions without entry timestamps · openclaw/openclaw@446d98d
yetval
·
2026-06-25
·
via Recent Commits to openclaw:main
| Original file line number | Diff line number | Diff line change |
|---|
@@ -1467,4 +1467,39 @@ describe("exportTrajectoryBundle", () => {
|
1467 | 1467 | expect(tools).toContain("$WORKSPACE_DIR/docs"); |
1468 | 1468 | expect(`${prompts}\n${artifacts}\n${systemPrompt}\n${tools}`).not.toContain(tmpDir); |
1469 | 1469 | }); |
| 1470 | + |
| 1471 | +it("exports the transcript for a legacy v1 session without entry timestamps", async () => { |
| 1472 | +const tmpDir = makeTempDir(); |
| 1473 | +const sessionFile = path.join(tmpDir, "session.jsonl"); |
| 1474 | +const outputDir = path.join(tmpDir, "bundle"); |
| 1475 | +const header = { |
| 1476 | +type: "session", |
| 1477 | +version: 1, |
| 1478 | +id: "session-1", |
| 1479 | +cwd: tmpDir, |
| 1480 | +}; |
| 1481 | +const userEntry = { |
| 1482 | +type: "message", |
| 1483 | +message: userMessage("hello"), |
| 1484 | +}; |
| 1485 | +const assistantEntry = { |
| 1486 | +type: "message", |
| 1487 | +message: assistantMessage([{ type: "text", text: "done" }]), |
| 1488 | +}; |
| 1489 | +fs.writeFileSync( |
| 1490 | +sessionFile, |
| 1491 | +`${[header, userEntry, assistantEntry].map((entry) => JSON.stringify(entry)).join("\n")}\n`, |
| 1492 | +"utf8", |
| 1493 | +); |
| 1494 | + |
| 1495 | +const bundle = await exportTrajectoryBundle({ |
| 1496 | + outputDir, |
| 1497 | + sessionFile, |
| 1498 | +sessionId: "session-1", |
| 1499 | +workspaceDir: tmpDir, |
| 1500 | +}); |
| 1501 | + |
| 1502 | +expect(bundle.manifest.transcriptEventCount).toBe(2); |
| 1503 | +expect(eventTypes(bundle.events)).toEqual(["user.message", "assistant.message"]); |
| 1504 | +}); |
1470 | 1505 | }); |
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。