mirror of
https://github.com/openclaw/openclaw.git
synced 2026-05-10 16:14:58 +00:00
Config/Compaction: expose safeguard preserve and quality settings (#25557)
Merged via squash.
Prepared head SHA: ea9904039a
Co-authored-by: rodrigouroz <384037+rodrigouroz@users.noreply.github.com>
Co-authored-by: jalehman <550978+jalehman@users.noreply.github.com>
Reviewed-by: @jalehman
This commit is contained in:
@@ -87,6 +87,7 @@ export function buildEmbeddedExtensionFactories(params: {
|
||||
qualityGuardEnabled: qualityGuardCfg?.enabled ?? false,
|
||||
qualityGuardMaxRetries: qualityGuardCfg?.maxRetries,
|
||||
model: params.model,
|
||||
recentTurnsPreserve: compactionCfg?.recentTurnsPreserve,
|
||||
});
|
||||
factories.push(compactionSafeguardExtension);
|
||||
}
|
||||
|
||||
@@ -5,7 +5,9 @@ import type { AgentMessage } from "@mariozechner/pi-agent-core";
|
||||
import type { Api, Model } from "@mariozechner/pi-ai";
|
||||
import type { ExtensionAPI, ExtensionContext } from "@mariozechner/pi-coding-agent";
|
||||
import { describe, expect, it, vi } from "vitest";
|
||||
import type { OpenClawConfig } from "../../config/config.js";
|
||||
import * as compactionModule from "../compaction.js";
|
||||
import { buildEmbeddedExtensionFactories } from "../pi-embedded-runner/extensions.js";
|
||||
import { castAgentMessage } from "../test-helpers/agent-message-fixtures.js";
|
||||
import {
|
||||
getCompactionSafeguardRuntime,
|
||||
@@ -403,6 +405,39 @@ describe("compaction-safeguard runtime registry", () => {
|
||||
model,
|
||||
});
|
||||
});
|
||||
|
||||
it("wires oversized safeguard runtime values when config validation is bypassed", () => {
|
||||
const sessionManager = {} as unknown as Parameters<
|
||||
typeof buildEmbeddedExtensionFactories
|
||||
>[0]["sessionManager"];
|
||||
const cfg = {
|
||||
agents: {
|
||||
defaults: {
|
||||
compaction: {
|
||||
mode: "safeguard",
|
||||
recentTurnsPreserve: 99,
|
||||
qualityGuard: { maxRetries: 99 },
|
||||
},
|
||||
},
|
||||
},
|
||||
} as OpenClawConfig;
|
||||
|
||||
buildEmbeddedExtensionFactories({
|
||||
cfg,
|
||||
sessionManager,
|
||||
provider: "anthropic",
|
||||
modelId: "claude-3-opus",
|
||||
model: {
|
||||
contextWindow: 200_000,
|
||||
} as Parameters<typeof buildEmbeddedExtensionFactories>[0]["model"],
|
||||
});
|
||||
|
||||
const runtime = getCompactionSafeguardRuntime(sessionManager);
|
||||
expect(runtime?.qualityGuardMaxRetries).toBe(99);
|
||||
expect(runtime?.recentTurnsPreserve).toBe(99);
|
||||
expect(resolveQualityGuardMaxRetries(runtime?.qualityGuardMaxRetries)).toBe(3);
|
||||
expect(resolveRecentTurnsPreserve(runtime?.recentTurnsPreserve)).toBe(12);
|
||||
});
|
||||
});
|
||||
|
||||
describe("compaction-safeguard recent-turn preservation", () => {
|
||||
|
||||
Reference in New Issue
Block a user