Skip to content

Commit f634f46

Browse files
committed
MS Teams: finalize webhook host binding
1 parent 3a0e40e commit f634f46

4 files changed

Lines changed: 16 additions & 11 deletions

File tree

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ Docs: https://docs.openclaw.ai
66

77
### Changes
88

9+
- MS Teams: allow `channels.msteams.webhook.host` to bind the webhook server to a specific interface for tunnel or reverse-proxy deployments. (#63347) Thanks @sharkqwy.
910
- Telegram/Feishu: honor configured per-agent and global `reasoningDefault` values when deciding whether channel reasoning previews should stream or stay hidden, addressing the preview-default part of #73182. Thanks @anagnorisis2peripeteia.
1011
- Docker: run the runtime image under `tini` so long-lived containers reap orphaned child processes and forward signals correctly. (#77885) Thanks @VintageAyu.
1112
- Google/Gemini: normalize retired `google/gemini-3-pro-preview` and `google-gemini-cli/gemini-3-pro-preview` selections to `google/gemini-3.1-pro-preview` before they are written to model config.

docs/channels/msteams.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,14 +93,16 @@ The output will show `CLIENT_ID`, `CLIENT_SECRET`, `TENANT_ID`, and a **Teams Ap
9393
appId: "<CLIENT_ID>",
9494
appPassword: "<CLIENT_SECRET>",
9595
tenantId: "<TENANT_ID>",
96-
webhook: { host: "127.0.0.1", port: 3978, path: "/api/messages" },
96+
webhook: { port: 3978, path: "/api/messages" },
9797
},
9898
},
9999
}
100100
```
101101

102102
Or use environment variables directly: `MSTEAMS_APP_ID`, `MSTEAMS_APP_PASSWORD`, `MSTEAMS_TENANT_ID`.
103103

104+
Set `webhook.host: "127.0.0.1"` only when a same-host tunnel or reverse proxy forwards Teams traffic to the gateway.
105+
104106
**5. Install the app in Teams**
105107

106108
`teams app create` will prompt you to install the app - select "Install in Teams". If you skipped it, you can get the link later:

extensions/msteams/src/monitor.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -241,7 +241,9 @@ export async function monitorMSTeamsProvider(
241241
const conversationStore = opts.conversationStore ?? createMSTeamsConversationStoreFs();
242242
const pollStore = opts.pollStore ?? createMSTeamsPollStoreFs();
243243

244-
log.info(`starting provider (${host ?? "0.0.0.0"}:${port})`);
244+
const bindTarget = host ? `${host}:${port}` : `default interface:${port}`;
245+
246+
log.info(`starting provider (${bindTarget})`);
245247

246248
// Dynamic import to avoid loading SDK when provider is disabled
247249
const express = await import("express");
@@ -375,7 +377,7 @@ export async function monitorMSTeamsProvider(
375377
await new Promise<void>((resolve, reject) => {
376378
const onListening = () => {
377379
httpServer.off("error", onError);
378-
log.info(`msteams provider started on ${host ?? "0.0.0.0"}:${port}`);
380+
log.info(`msteams provider started on ${bindTarget}`);
379381
resolve();
380382
};
381383
const onError = (err: unknown) => {

src/config/bundled-channel-config-metadata.generated.ts

Lines changed: 8 additions & 8 deletions
Large diffs are not rendered by default.

0 commit comments

Comments
 (0)