diff --git a/docs/automation/webhook.md b/docs/automation/webhook.md index 1535bae4c..17e47432a 100644 --- a/docs/automation/webhook.md +++ b/docs/automation/webhook.md @@ -57,7 +57,7 @@ Payload: "name": "Email", "sessionKey": "hook:email:msg-123", "wakeMode": "now", - "deliver": false, + "deliver": true, "provider": "last", "to": "+15551234567", "model": "openai/gpt-5.2-mini", @@ -70,7 +70,7 @@ Payload: - `name` optional (string): Human-readable name for the hook (e.g., "GitHub"), used as a prefix in session summaries. - `sessionKey` optional (string): The key used to identify the agent's session. Defaults to a random `hook:`. Using a consistent key allows for a multi-turn conversation within the hook context. - `wakeMode` optional (`now` | `next-heartbeat`): Whether to trigger an immediate heartbeat (default `now`) or wait for the next periodic check. -- `deliver` optional (boolean): If `true`, the agent's response will be sent to the messaging provider. Defaults to `false`. Responses that are only heartbeat acknowledgments are automatically skipped. +- `deliver` optional (boolean): If `true`, the agent's response will be sent to the messaging provider. Defaults to `true`. Responses that are only heartbeat acknowledgments are automatically skipped. - `provider` optional (string): The messaging service for delivery. One of: `last`, `whatsapp`, `telegram`, `discord`, `slack`, `signal`, `imessage`. Defaults to `last`. - `to` optional (string): The recipient identifier for the provider (e.g., phone number for WhatsApp/Signal, chat ID for Telegram, channel ID for Discord/Slack). Defaults to the last recipient in the main session. - `model` optional (string): Model override (e.g., `anthropic/claude-3-5-sonnet` or an alias). Must be in the allowed model list if restricted. diff --git a/src/gateway/hooks.ts b/src/gateway/hooks.ts index b0cd50708..7f8d23045 100644 --- a/src/gateway/hooks.ts +++ b/src/gateway/hooks.ts @@ -210,7 +210,7 @@ export function normalizeAgentPayload( if (modelRaw !== undefined && !model) { return { ok: false, error: "model required" }; } - const deliver = payload.deliver === true; + const deliver = payload.deliver !== false; const thinkingRaw = payload.thinking; const thinking = typeof thinkingRaw === "string" && thinkingRaw.trim() diff --git a/src/gateway/server-http.ts b/src/gateway/server-http.ts index 4b81261cd..7a7212368 100644 --- a/src/gateway/server-http.ts +++ b/src/gateway/server-http.ts @@ -176,7 +176,7 @@ export function createHooksRequestHandler( name: mapped.action.name ?? "Hook", wakeMode: mapped.action.wakeMode, sessionKey: mapped.action.sessionKey ?? "", - deliver: mapped.action.deliver === true, + deliver: mapped.action.deliver !== false, provider: mapped.action.provider ?? "last", to: mapped.action.to, model: mapped.action.model,