diff --git a/CHANGELOG.md b/CHANGELOG.md index e01fc8231..36c20af76 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -17,6 +17,7 @@ Docs: https://docs.clawd.bot - Telegram: use wrapped fetch for long-polling on Node to normalize AbortSignal handling. (#1639) - Exec: keep approvals for elevated ask unless full mode. (#1616) Thanks @ivancasco. - Agents: auto-compact on context overflow prompt errors before failing. (#1627) Thanks @rodrigouroz. +- Agents: use the active auth profile for auto-compaction recovery. - Gateway: reduce log noise for late invokes + remote node probes; debounce skills refresh. (#1607) Thanks @petter-b. - macOS: default direct-transport `ws://` URLs to port 18789; document `gateway.remote.transport`. (#1603) Thanks @ngutman. diff --git a/src/agents/pi-embedded-runner/compact.ts b/src/agents/pi-embedded-runner/compact.ts index 5917d53c4..e5c2fda18 100644 --- a/src/agents/pi-embedded-runner/compact.ts +++ b/src/agents/pi-embedded-runner/compact.ts @@ -74,6 +74,7 @@ export type CompactEmbeddedPiSessionParams = { messageChannel?: string; messageProvider?: string; agentAccountId?: string; + authProfileId?: string; /** Group id for channel-level tool policy resolution. */ groupId?: string | null; /** Group channel label (e.g. #general) for channel-level tool policy resolution. */ @@ -130,6 +131,7 @@ export async function compactEmbeddedPiSessionDirect( const apiKeyInfo = await getApiKeyForModel({ model, cfg: params.config, + profileId: params.authProfileId, agentDir, }); diff --git a/src/agents/pi-embedded-runner/run.overflow-compaction.test.ts b/src/agents/pi-embedded-runner/run.overflow-compaction.test.ts index 30b4dddf0..eda0a1100 100644 --- a/src/agents/pi-embedded-runner/run.overflow-compaction.test.ts +++ b/src/agents/pi-embedded-runner/run.overflow-compaction.test.ts @@ -28,6 +28,7 @@ vi.mock("../model-auth.js", () => ({ ensureAuthProfileStore: vi.fn(() => ({})), getApiKeyForModel: vi.fn(async () => ({ apiKey: "test-key", + profileId: "test-profile", source: "test", })), resolveAuthProfileOrder: vi.fn(() => []), @@ -207,6 +208,9 @@ describe("overflow compaction in run loop", () => { const result = await runEmbeddedPiAgent(baseParams); expect(mockedCompactDirect).toHaveBeenCalledTimes(1); + expect(mockedCompactDirect).toHaveBeenCalledWith( + expect.objectContaining({ authProfileId: "test-profile" }), + ); expect(mockedRunEmbeddedAttempt).toHaveBeenCalledTimes(2); expect(log.warn).toHaveBeenCalledWith( expect.stringContaining("context overflow detected; attempting auto-compaction"), diff --git a/src/agents/pi-embedded-runner/run.ts b/src/agents/pi-embedded-runner/run.ts index 556ad3ae7..ea2488a1c 100644 --- a/src/agents/pi-embedded-runner/run.ts +++ b/src/agents/pi-embedded-runner/run.ts @@ -373,6 +373,7 @@ export async function runEmbeddedPiAgent( messageChannel: params.messageChannel, messageProvider: params.messageProvider, agentAccountId: params.agentAccountId, + authProfileId: lastProfileId, sessionFile: params.sessionFile, workspaceDir: params.workspaceDir, agentDir,