fix(copilot): preserve compaction metadata · openclaw/openclaw@8a8c6b2
vincentkoc
·
2026-06-23
·
via Recent Commits to openclaw:main
| Original file line number | Diff line number | Diff line change |
|---|
@@ -1609,6 +1609,12 @@ describe("createCopilotAgentHarness", () => {
|
1609 | 1609 | success: true, |
1610 | 1610 | tokensRemoved: 123, |
1611 | 1611 | messagesRemoved: 4, |
| 1612 | +summaryContent: "compacted summary", |
| 1613 | +contextWindow: { |
| 1614 | +tokenLimit: 1000, |
| 1615 | +currentTokens: 777, |
| 1616 | +messagesLength: 12, |
| 1617 | +}, |
1612 | 1618 | })); |
1613 | 1619 | const disconnect = vi.fn(async () => { |
1614 | 1620 | throw new Error("disconnect failed"); |
@@ -1649,6 +1655,7 @@ describe("createCopilotAgentHarness", () => {
|
1649 | 1655 | model: "gpt-4.1", |
1650 | 1656 | sessionKey: "agent:main:main", |
1651 | 1657 | sessionId: "oc-sess-compact-1", |
| 1658 | +currentTokenCount: 900, |
1652 | 1659 | workspaceDir: "/this\u0000is/illegal", |
1653 | 1660 | customInstructions: "Keep decisions.", |
1654 | 1661 | }); |
@@ -1684,6 +1691,25 @@ describe("createCopilotAgentHarness", () => {
|
1684 | 1691 | ok: true, |
1685 | 1692 | compacted: true, |
1686 | 1693 | reason: "copilot-sdk-history-compacted", |
| 1694 | +result: { |
| 1695 | +summary: "compacted summary", |
| 1696 | +firstKeptEntryId: "", |
| 1697 | +tokensBefore: 900, |
| 1698 | +tokensAfter: 777, |
| 1699 | +details: { |
| 1700 | +success: true, |
| 1701 | +tokensRemoved: 123, |
| 1702 | +messagesRemoved: 4, |
| 1703 | +summaryContent: "compacted summary", |
| 1704 | +contextWindow: { |
| 1705 | +tokenLimit: 1000, |
| 1706 | +currentTokens: 777, |
| 1707 | +messagesLength: 12, |
| 1708 | +}, |
| 1709 | +}, |
| 1710 | +sessionId: "oc-sess-compact-1", |
| 1711 | +sessionFile: "/session.json", |
| 1712 | +}, |
1687 | 1713 | }); |
1688 | 1714 | }); |
1689 | 1715 | |
|
| Original file line number | Diff line number | Diff line change |
|---|
@@ -62,6 +62,14 @@ interface CopilotHistoryCompactResult {
|
62 | 62 | tokensRemoved: number; |
63 | 63 | messagesRemoved: number; |
64 | 64 | summaryContent?: string; |
| 65 | +contextWindow?: { |
| 66 | +tokenLimit: number; |
| 67 | +currentTokens: number; |
| 68 | +messagesLength: number; |
| 69 | +systemTokens?: number; |
| 70 | +conversationTokens?: number; |
| 71 | +toolDefinitionsTokens?: number; |
| 72 | +}; |
65 | 73 | } |
66 | 74 | |
67 | 75 | interface CopilotHistoryCompactSession { |
@@ -872,6 +880,21 @@ export function createCopilotAgentHarness(
|
872 | 880 | ok: true, |
873 | 881 | compacted, |
874 | 882 | reason: compacted ? "copilot-sdk-history-compacted" : "already under target", |
| 883 | + ...(compacted |
| 884 | + ? { |
| 885 | +result: { |
| 886 | +summary: compactResult.summaryContent ?? "", |
| 887 | +firstKeptEntryId: "", |
| 888 | +tokensBefore: |
| 889 | +params.currentTokenCount ?? |
| 890 | +(compactResult.contextWindow?.currentTokens ?? 0) + compactResult.tokensRemoved, |
| 891 | +tokensAfter: compactResult.contextWindow?.currentTokens, |
| 892 | +details: compactResult, |
| 893 | +sessionId: params.sessionId, |
| 894 | +sessionFile: params.sessionFile, |
| 895 | +}, |
| 896 | +} |
| 897 | + : {}), |
875 | 898 | }; |
876 | 899 | }, |
877 | 900 | |
|
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。