diff --git a/extensions/active-memory/index.test.ts b/extensions/active-memory/index.test.ts index 32d42adf840b..4a731cee06b7 100644 --- a/extensions/active-memory/index.test.ts +++ b/extensions/active-memory/index.test.ts @@ -17,7 +17,6 @@ import { afterAll, afterEach, beforeAll, beforeEach, describe, expect, it, vi } import { applyCliRuntimeRecallTimeoutDefault } from "./config.js"; import plugin, { testing } from "./index.js"; import { resolveActiveRecallForRun } from "./recall-state.js"; -import { hasRememberAcrossConversationsAgent } from "./session-policy.js"; // Match only lone surrogates so valid supplementary-plane characters remain allowed. const UNPAIRED_SURROGATE_RE = @@ -821,19 +820,6 @@ describe("active-memory plugin", () => { expect(hoisted.getActiveMemorySearchManager).not.toHaveBeenCalled(); }); - it("does not synthesize a main agent when every configured agent opts out", () => { - expect( - hasRememberAcrossConversationsAgent({ - agents: { - list: [ - { id: "personal", memory: { search: { rememberAcrossConversations: false } } }, - { id: "support", memory: { search: { rememberAcrossConversations: false } } }, - ], - }, - }), - ).toBe(false); - }); - it("keeps the outer hook timeout at the live-config ceiling", () => { registerPluginConfig({ timeoutMs: 90_000 }); diff --git a/extensions/active-memory/session-policy.ts b/extensions/active-memory/session-policy.ts index a4436dd3456e..0e5e1322c576 100644 --- a/extensions/active-memory/session-policy.ts +++ b/extensions/active-memory/session-policy.ts @@ -127,12 +127,6 @@ function isActiveMemoryPluginEnabled(cfg: OpenClawConfig): boolean { return plugins.entries["active-memory"]?.enabled !== false; } -function hasRememberAcrossConversationsAgent(cfg: OpenClawConfig): boolean { - const configuredAgentIds = cfg.agents?.list?.map((agent) => agent.id) ?? []; - const agentIds = configuredAgentIds.length > 0 ? configuredAgentIds : ["main"]; - return agentIds.some((agentId) => resolveRememberAcrossConversations(cfg, agentId)); -} - function shouldRememberAcrossConversations(cfg: OpenClawConfig, agentId: string): boolean { return resolveRememberAcrossConversations(cfg, agentId); } @@ -438,7 +432,6 @@ export { isEnabledForAgent, isPrivateRecallDestination, isSessionActiveMemoryDisabled, - hasRememberAcrossConversationsAgent, lacksAdminToMutateActiveMemoryGlobal, resolveCommandSessionKey, setSessionActiveMemoryDisabled, diff --git a/extensions/chutes/models.test.ts b/extensions/chutes/models.test.ts index 0994e0f3de8b..24628207f658 100644 --- a/extensions/chutes/models.test.ts +++ b/extensions/chutes/models.test.ts @@ -45,17 +45,6 @@ async function withLiveChutesDiscovery( } } -function createAuthEchoFetchMock() { - return vi.fn().mockImplementation((_url, init?: { headers?: HeadersInit }) => { - const auth = readAuthorizationHeader(init); - return Promise.resolve( - jsonResponse({ - data: [{ id: auth ? `${auth}-model` : "public-model" }], - }), - ); - }); -} - function readAuthorizationHeader(init?: { headers?: HeadersInit }): string { const headers = init?.headers; if (headers instanceof Headers) { @@ -311,35 +300,6 @@ describe("chutes-models", () => { }); }); - it("evicts oldest token entries when cache reaches max size", async () => { - const mockFetch = createAuthEchoFetchMock(); - - await withLiveChutesDiscovery(mockFetch, async () => { - for (let i = 0; i < 150; i += 1) { - await discoverChutesModels(`cache-token-${i}`); - } - - await discoverChutesModels("cache-token-0"); - expect(mockFetch).toHaveBeenCalledTimes(151); - }); - }); - - it("prunes expired token cache entries during subsequent discovery", async () => { - const mockFetch = createAuthEchoFetchMock(); - - await withLiveChutesDiscovery( - mockFetch, - async () => { - await discoverChutesModels("token-a"); - vi.advanceTimersByTime(5 * 60 * 1000 + 1); - await discoverChutesModels("token-b"); - await discoverChutesModels("token-a"); - expect(mockFetch).toHaveBeenCalledTimes(3); - }, - { now: "2026-03-01T00:00:00.000Z" }, - ); - }); - it("does not cache 401 fallback under the failed token key", async () => { const mockFetch = vi.fn().mockImplementation((_url, init?: { headers?: HeadersInit }) => { if (readAuthorizationHeader(init) === "Bearer failed-token") { diff --git a/extensions/xai/api.test.ts b/extensions/xai/api.test.ts index 0479273bc4d2..9ba4bc25ccae 100644 --- a/extensions/xai/api.test.ts +++ b/extensions/xai/api.test.ts @@ -1,11 +1,6 @@ // Xai tests cover api plugin behavior. import { describe, expect, it } from "vitest"; -import { - isXaiModelHint, - resolveXaiForwardCompatModel, - resolveXaiTransport, - XAI_BASE_URL, -} from "./api.js"; +import { resolveXaiForwardCompatModel, resolveXaiTransport, XAI_BASE_URL } from "./api.js"; describe("xai api helpers", () => { it("uses shared endpoint classification for native xAI transports", () => { @@ -68,8 +63,4 @@ describe("xai api helpers", () => { expect(model?.reasoning).toBe(true); }, ); - - it("detects xAI model hints", () => { - expect(isXaiModelHint("x-ai/grok-4")).toBe(true); - }); }); diff --git a/extensions/xai/api.ts b/extensions/xai/api.ts index 702dfa60cecd..afb696bde51d 100644 --- a/extensions/xai/api.ts +++ b/extensions/xai/api.ts @@ -1,5 +1,4 @@ // Xai API module exposes the plugin public contract. -import { normalizeOptionalLowercaseString } from "openclaw/plugin-sdk/string-coerce-runtime"; import { applyXaiModelCompat, HTML_ENTITY_TOOL_CALL_ARGUMENTS_ENCODING, @@ -26,20 +25,4 @@ export { applyXaiRuntimeModelCompat } from "./runtime-model-compat.js"; export { applyXaiModelCompat, HTML_ENTITY_TOOL_CALL_ARGUMENTS_ENCODING, XAI_TOOL_SCHEMA_PROFILE }; export { resolveXaiTransport } from "./provider-routing.js"; -export function isXaiModelHint(modelId: string): boolean { - return getModelProviderHint(modelId) === "x-ai"; -} - export { normalizeNativeXaiModelId as normalizeXaiModelId }; - -function getModelProviderHint(modelId: string): string | null { - const trimmed = normalizeOptionalLowercaseString(modelId); - if (!trimmed) { - return null; - } - const slashIndex = trimmed.indexOf("/"); - if (slashIndex <= 0) { - return null; - } - return trimmed.slice(0, slashIndex) || null; -}