diff --git a/src/config/legacy.ts b/src/config/legacy.ts index af1634e4c66..47a05c2908e 100644 --- a/src/config/legacy.ts +++ b/src/config/legacy.ts @@ -17,7 +17,7 @@ export function findLegacyConfigIssues( raw: unknown, sourceRaw?: unknown, extraRules: LegacyConfigRule[] = [], - touchedPaths?: ReadonlyArray>, + _touchedPaths?: ReadonlyArray>, ): LegacyConfigIssue[] { if (!raw || typeof raw !== "object") { return []; diff --git a/src/config/session-parent-fork-config-keys.test.ts b/src/config/session-parent-fork-config-keys.test.ts index 7b3bc4588dc..31d9f3e63c8 100644 --- a/src/config/session-parent-fork-config-keys.test.ts +++ b/src/config/session-parent-fork-config-keys.test.ts @@ -2,7 +2,7 @@ import { describe, expect, it } from "vitest"; import { validateConfigObjectRaw } from "./validation.js"; describe("session parent fork config keys", () => { - it("rejects legacy session.parentForkMaxTokens with doctor guidance", () => { + it("rejects legacy session.parentForkMaxTokens as an unknown session key", () => { const result = validateConfigObjectRaw({ session: { parentForkMaxTokens: 200_000, @@ -16,12 +16,7 @@ describe("session parent fork config keys", () => { expect(result.issues).toContainEqual( expect.objectContaining({ path: "session", - message: expect.stringContaining("session.parentForkMaxTokens was removed"), - }), - ); - expect(result.issues).toContainEqual( - expect.objectContaining({ - message: expect.stringContaining('Run "openclaw doctor --fix"'), + message: expect.stringContaining('Unrecognized key: "parentForkMaxTokens"'), }), ); }); diff --git a/src/config/thread-bindings-config-keys.test.ts b/src/config/thread-bindings-config-keys.test.ts index 143854d4757..8df0a5e070f 100644 --- a/src/config/thread-bindings-config-keys.test.ts +++ b/src/config/thread-bindings-config-keys.test.ts @@ -23,7 +23,7 @@ describe("thread binding config keys", () => { ); }); - it("rejects legacy channels..threadBindings.ttlHours", () => { + it("accepts channel-level thread binding ttlHours compatibility", () => { const result = validateConfigObjectRaw({ channels: { demo: { @@ -34,19 +34,10 @@ describe("thread binding config keys", () => { }, }); - expect(result.ok).toBe(false); - if (result.ok) { - return; - } - expect(result.issues).toContainEqual( - expect.objectContaining({ - path: "channels", - message: expect.stringContaining("ttlHours"), - }), - ); + expect(result.ok).toBe(true); }); - it("rejects legacy channels..accounts..threadBindings.ttlHours", () => { + it("accepts account-level thread binding ttlHours compatibility", () => { const result = validateConfigObjectRaw({ channels: { demo: { @@ -61,15 +52,6 @@ describe("thread binding config keys", () => { }, }); - expect(result.ok).toBe(false); - if (result.ok) { - return; - } - expect(result.issues).toContainEqual( - expect.objectContaining({ - path: "channels", - message: expect.stringContaining("ttlHours"), - }), - ); + expect(result.ok).toBe(true); }); }); diff --git a/src/config/validation.ts b/src/config/validation.ts index a378111bd3e..4c0fd7d424b 100644 --- a/src/config/validation.ts +++ b/src/config/validation.ts @@ -610,7 +610,7 @@ function validateGatewayTailscaleBind(config: OpenClawConfig): ConfigValidationI */ export function validateConfigObjectRaw( raw: unknown, - opts?: { + _opts?: { sourceRaw?: unknown; touchedPaths?: ReadonlyArray>; },