mirror of
http://192.168.0.88:13333/lywsvip/openclaw-zero-token.git
synced 2026-05-14 04:57:17 +08:00
Major upgrade from e26988a38 to upstream v2026.3.28 (f9b107928).
Key changes:
- Upstream src/, ui/, extensions/ (89 bundled extensions)
- Zero-token web providers preserved in src/zero-token/
- AskOnce plugin restored and registered as CLI command
- Added missing packages: @anthropic-ai/vertex-sdk, @modelcontextprotocol/sdk
- Fixed tsconfig rootDir, skipLibCheck for plugin-sdk DTS build
- Added askonce to bundled plugin metadata and package.json exports
- Fixed AskOnce CLI command registration (missing commands metadata)
- Restored AskOnce adapter imports (correct 5-level relative paths)
- Removed stale migration artifacts from root directory
132 lines
4.0 KiB
TypeScript
132 lines
4.0 KiB
TypeScript
import { describe, expect, it } from "vitest";
|
|
import { loadConfig } from "./config.js";
|
|
import { withTempHomeConfig } from "./test-helpers.js";
|
|
|
|
describe("config compaction settings", () => {
|
|
it("preserves memory flush config values", async () => {
|
|
await withTempHomeConfig(
|
|
{
|
|
agents: {
|
|
defaults: {
|
|
compaction: {
|
|
mode: "safeguard",
|
|
reserveTokensFloor: 12_345,
|
|
identifierPolicy: "custom",
|
|
identifierInstructions: "Keep ticket IDs unchanged.",
|
|
qualityGuard: {
|
|
enabled: true,
|
|
maxRetries: 2,
|
|
},
|
|
memoryFlush: {
|
|
enabled: false,
|
|
softThresholdTokens: 1234,
|
|
prompt: "Write notes.",
|
|
systemPrompt: "Flush memory now.",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
async () => {
|
|
const cfg = loadConfig();
|
|
|
|
expect(cfg.agents?.defaults?.compaction?.reserveTokensFloor).toBe(12_345);
|
|
expect(cfg.agents?.defaults?.compaction?.mode).toBe("safeguard");
|
|
expect(cfg.agents?.defaults?.compaction?.reserveTokens).toBeUndefined();
|
|
expect(cfg.agents?.defaults?.compaction?.keepRecentTokens).toBeUndefined();
|
|
expect(cfg.agents?.defaults?.compaction?.identifierPolicy).toBe("custom");
|
|
expect(cfg.agents?.defaults?.compaction?.identifierInstructions).toBe(
|
|
"Keep ticket IDs unchanged.",
|
|
);
|
|
expect(cfg.agents?.defaults?.compaction?.qualityGuard?.enabled).toBe(true);
|
|
expect(cfg.agents?.defaults?.compaction?.qualityGuard?.maxRetries).toBe(2);
|
|
expect(cfg.agents?.defaults?.compaction?.memoryFlush?.enabled).toBe(false);
|
|
expect(cfg.agents?.defaults?.compaction?.memoryFlush?.softThresholdTokens).toBe(1234);
|
|
expect(cfg.agents?.defaults?.compaction?.memoryFlush?.prompt).toBe("Write notes.");
|
|
expect(cfg.agents?.defaults?.compaction?.memoryFlush?.systemPrompt).toBe(
|
|
"Flush memory now.",
|
|
);
|
|
},
|
|
);
|
|
});
|
|
|
|
it("preserves pi compaction override values", async () => {
|
|
await withTempHomeConfig(
|
|
{
|
|
agents: {
|
|
defaults: {
|
|
compaction: {
|
|
reserveTokens: 15_000,
|
|
keepRecentTokens: 12_000,
|
|
},
|
|
},
|
|
},
|
|
},
|
|
async () => {
|
|
const cfg = loadConfig();
|
|
expect(cfg.agents?.defaults?.compaction?.reserveTokens).toBe(15_000);
|
|
expect(cfg.agents?.defaults?.compaction?.keepRecentTokens).toBe(12_000);
|
|
},
|
|
);
|
|
});
|
|
|
|
it("defaults compaction mode to safeguard", async () => {
|
|
await withTempHomeConfig(
|
|
{
|
|
agents: {
|
|
defaults: {
|
|
compaction: {
|
|
reserveTokensFloor: 9000,
|
|
},
|
|
},
|
|
},
|
|
},
|
|
async () => {
|
|
const cfg = loadConfig();
|
|
|
|
expect(cfg.agents?.defaults?.compaction?.mode).toBe("safeguard");
|
|
expect(cfg.agents?.defaults?.compaction?.reserveTokensFloor).toBe(9000);
|
|
},
|
|
);
|
|
});
|
|
|
|
it("preserves recent turn safeguard values through loadConfig()", async () => {
|
|
await withTempHomeConfig(
|
|
{
|
|
agents: {
|
|
defaults: {
|
|
compaction: {
|
|
mode: "safeguard",
|
|
recentTurnsPreserve: 4,
|
|
},
|
|
},
|
|
},
|
|
},
|
|
async () => {
|
|
const cfg = loadConfig();
|
|
expect(cfg.agents?.defaults?.compaction?.recentTurnsPreserve).toBe(4);
|
|
},
|
|
);
|
|
});
|
|
|
|
it("preserves oversized quality guard retry values for runtime clamping", async () => {
|
|
await withTempHomeConfig(
|
|
{
|
|
agents: {
|
|
defaults: {
|
|
compaction: {
|
|
qualityGuard: {
|
|
maxRetries: 99,
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
async () => {
|
|
const cfg = loadConfig();
|
|
expect(cfg.agents?.defaults?.compaction?.qualityGuard?.maxRetries).toBe(99);
|
|
},
|
|
);
|
|
});
|
|
});
|