diff --git a/CHANGELOG.md b/CHANGELOG.md index 07126eb66..942734a64 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -19,6 +19,7 @@ ### Fixes - Signal: reconnect SSE monitor with abortable backoff; log stream errors. Thanks @nexty5870 for PR #430. +- Gateway: pass resolved provider as messageProvider for agent runs so provider-specific tools are available. Thanks @imfing for PR #389. - Discord/Telegram: add per-request retry policy with configurable delays and docs. - Telegram: run long polling via grammY runner with per-chat sequentialization and concurrency tied to `agent.maxConcurrent`. Thanks @mukhtharcm for PR #366. - macOS: prevent gateway launchd startup race where the app could kill a just-started gateway; avoid unnecessary `bootout` and ensure the job is enabled at login. Fixes #306. Thanks @gupsammy for PR #387. diff --git a/src/gateway/server-methods/agent.ts b/src/gateway/server-methods/agent.ts index 0419e9696..cdf55d8e5 100644 --- a/src/gateway/server-methods/agent.ts +++ b/src/gateway/server-methods/agent.ts @@ -250,7 +250,7 @@ export const agentHandlers: GatewayRequestHandlers = { provider: resolvedProvider, timeout: request.timeout?.toString(), bestEffortDeliver, - messageProvider: "voicewake", + messageProvider: resolvedProvider, runId, lane: request.lane, extraSystemPrompt: request.extraSystemPrompt, diff --git a/src/gateway/server.agent.test.ts b/src/gateway/server.agent.test.ts index 3aff8b125..fb94ec16b 100644 --- a/src/gateway/server.agent.test.ts +++ b/src/gateway/server.agent.test.ts @@ -58,6 +58,7 @@ describe("gateway server agent", () => { const spy = vi.mocked(agentCommand); const call = spy.mock.calls.at(-1)?.[0] as Record; expect(call.provider).toBe("whatsapp"); + expect(call.messageProvider).toBe("whatsapp"); expect(call.to).toBe("+436769770569"); expect(call.sessionId).toBe("sess-main-stale"); @@ -138,6 +139,7 @@ describe("gateway server agent", () => { const spy = vi.mocked(agentCommand); const call = spy.mock.calls.at(-1)?.[0] as Record; expect(call.provider).toBe("whatsapp"); + expect(call.messageProvider).toBe("whatsapp"); expect(call.to).toBe("+1555"); expect(call.deliver).toBe(true); expect(call.bestEffortDeliver).toBe(true); @@ -182,6 +184,7 @@ describe("gateway server agent", () => { const spy = vi.mocked(agentCommand); const call = spy.mock.calls.at(-1)?.[0] as Record; expect(call.provider).toBe("telegram"); + expect(call.messageProvider).toBe("telegram"); expect(call.to).toBe("123"); expect(call.deliver).toBe(true); expect(call.bestEffortDeliver).toBe(true); @@ -226,6 +229,7 @@ describe("gateway server agent", () => { const spy = vi.mocked(agentCommand); const call = spy.mock.calls.at(-1)?.[0] as Record; expect(call.provider).toBe("discord"); + expect(call.messageProvider).toBe("discord"); expect(call.to).toBe("channel:discord-123"); expect(call.deliver).toBe(true); expect(call.bestEffortDeliver).toBe(true);