Sid Uppal
cd90130877
msteams: implement Teams AI agent UX best practices ( #51808 )
...
Migrates the Teams extension from @microsoft/agents-hosting to the official Teams SDK (@microsoft/teams.apps + @microsoft/teams.api) and implements Microsoft's AI UX best practices for Teams agents.
- AI-generated label on all bot messages (Teams native badge + thumbs up/down)
- Streaming responses in 1:1 chats via Teams streaminfo protocol
- Welcome card with configurable prompt starters on bot install
- Feedback with reflective learning (negative feedback triggers background reflection)
- Typing indicators for personal + group chats (disabled for channels)
- Informative status updates (progress bar while LLM processes)
- JWT validation via Teams SDK createServiceTokenValidator
- User-Agent: teams.ts[apps]/<sdk-version> OpenClaw/<version> on outbound requests
- Fix copy-pasted image downloads (smba.trafficmanager.net auth allowlist)
- Pre-parse auth gate (reject unauthenticated requests before body parsing)
- Reflection dispatcher lifecycle fix (prevent leaked dispatchers)
- Colon-safe session filenames (Windows compatibility)
- Cooldown cache eviction (prevent unbounded memory growth)
Closes #51806
2026-03-23 22:03:39 -07:00
..
2026-03-22 22:13:39 -07:00
2026-03-22 22:13:39 -07:00
2026-03-16 20:24:13 -07:00
2026-03-23 16:40:53 -07:00
2026-03-12 07:28:21 -04:00
2026-03-23 17:38:08 -07:00
2026-03-19 13:40:26 -07:00
2026-02-16 03:42:11 +01:00
2026-01-18 18:43:39 +00:00
2026-03-19 13:40:26 -07:00
2026-01-30 03:16:21 +01:00
2026-03-23 22:52:13 -05:00
2026-01-30 03:16:21 +01:00
2026-03-01 14:23:46 -08:00
2026-02-05 16:54:44 -05:00
2026-01-30 03:16:21 +01:00
2026-01-30 03:16:21 +01:00
2026-01-31 21:29:14 +09:00
2026-03-22 22:23:25 -07:00
2026-03-22 22:23:25 -07:00
2026-03-14 18:01:59 -05:00
2026-01-31 21:21:25 +09:00
2026-01-30 03:16:21 +01:00
2026-03-21 23:30:51 +00:00
2026-03-02 08:54:20 +00:00
2026-03-19 16:28:00 -07:00
2026-02-19 15:27:48 +01:00
2026-03-15 20:42:39 +01:00
2026-03-21 20:03:18 -05:00
2026-03-21 17:33:35 -07:00
2026-03-17 10:55:55 -04:00
2026-03-14 03:43:07 -07:00
2026-03-22 23:04:04 +00:00
2026-03-21 23:07:51 +00:00
2026-03-21 23:07:51 +00:00
2026-03-21 23:07:51 +00:00
2026-03-02 14:36:41 +00:00
2026-03-02 14:36:41 +00:00
2026-03-16 02:26:45 +00:00
2026-03-02 08:54:20 +00:00
2026-03-02 16:24:06 +00:00
2026-03-02 14:36:41 +00:00
2026-03-22 02:11:43 +00:00
2026-03-20 09:27:37 -07:00
2026-03-18 17:49:51 -07:00
2026-02-01 10:03:47 +09:00
2026-03-22 00:53:12 +00:00
2026-03-02 18:02:21 +00:00
2026-03-22 12:58:08 -07:00
2026-03-22 12:58:08 -07:00
2026-01-30 03:16:21 +01:00
2026-03-01 23:33:13 +00:00
2026-02-05 12:29:04 -08:00
2026-01-30 03:16:21 +01:00
2026-02-21 01:35:35 -05:00
2026-02-21 15:08:28 +01:00
2026-03-19 00:10:25 +00:00
2026-03-23 17:39:22 +02:00
2026-03-23 08:22:00 -07:00
2026-03-08 04:12:32 +00:00
2026-03-08 04:12:32 +00:00
2026-03-15 20:44:15 +00:00
2026-01-30 03:16:21 +01:00
2026-02-16 23:26:11 +00:00
2026-03-22 22:13:39 -07:00
2026-03-21 19:58:36 +00:00
2026-03-21 19:58:36 +00:00
2026-01-31 21:29:14 +09:00
2026-02-21 15:08:28 +01:00
2026-01-31 21:29:14 +09:00
2026-03-22 19:08:08 -07:00
2026-03-22 21:28:16 +00:00
2026-03-23 01:57:56 +00:00
2026-03-18 10:53:48 -07:00
2026-03-18 10:53:48 -07:00
2026-03-14 14:23:30 -07:00
2026-03-07 19:18:05 +00:00
2026-03-22 09:19:00 -07:00
2026-03-03 02:58:20 +00:00
2026-02-26 18:09:01 +01:00
2026-03-15 14:18:12 -07:00
2026-03-22 22:13:39 -07:00
2026-03-07 17:21:07 +02:00
2026-03-11 12:32:28 +02:00
2026-03-12 18:15:35 +02:00
2026-03-11 12:32:28 +02:00
2026-03-07 17:21:07 +02:00
2026-02-24 15:02:27 +00:00
2026-03-13 04:38:32 +00:00
2026-03-02 19:57:33 +00:00
2026-03-18 17:14:15 -07:00
2026-03-23 17:38:08 -07:00
2026-03-22 22:13:39 -07:00
2026-01-30 03:16:21 +01:00
2026-03-23 21:04:08 -07:00
2026-03-23 17:42:43 -07:00
2026-03-23 17:38:08 -07:00
2026-03-23 13:45:04 -05:00
2026-03-23 17:38:08 -07:00
2026-03-23 17:42:43 -07:00
2026-03-18 13:44:23 +01:00
2026-03-18 13:44:23 +01:00
2026-03-18 12:26:56 -07:00
2026-02-13 15:09:39 -05:00
2026-03-12 16:37:50 -07:00
2026-02-13 15:09:39 -05:00
2026-03-17 15:59:08 -07:00
2026-02-21 16:53:46 +01:00
2026-01-30 03:16:21 +01:00
2026-01-31 21:29:14 +09:00
2026-02-13 15:30:09 -05:00
2026-03-23 17:38:08 -07:00
2026-02-25 05:03:24 +00:00
2026-03-15 16:19:27 -04:00
2026-03-22 22:23:25 -07:00
2026-03-19 13:40:26 -07:00
2026-03-23 11:51:26 +00:00
2026-03-15 21:42:02 +00:00
2026-03-23 17:39:22 +02:00
2026-03-22 22:13:39 -07:00
2026-01-30 03:16:21 +01:00
2026-03-08 17:57:46 -07:00
2026-01-30 03:16:21 +01:00
2026-01-30 03:16:21 +01:00
2026-02-28 10:04:25 +05:30
2026-01-31 21:21:25 +09:00
2026-03-23 20:32:48 -07:00
2026-03-16 16:43:47 +00:00
2026-03-22 22:41:27 -07:00
2026-02-11 21:12:27 -06:00
2026-03-15 02:58:59 +01:00
2026-03-16 02:11:19 +00:00
2026-02-22 19:13:19 +01:00
2026-03-22 22:13:39 -07:00
2026-03-22 22:13:39 -07:00
2026-03-22 22:13:39 -07:00
2026-03-19 16:07:53 -07:00
2026-03-22 22:13:39 -07:00
2026-03-23 04:41:54 +00:00
2026-03-22 16:22:09 -07:00
2026-02-01 10:03:47 +09:00
2026-03-21 23:07:51 +00:00
2026-03-22 22:13:39 -07:00
2026-03-22 22:13:39 -07:00
2026-03-23 07:41:18 +00:00
2026-03-23 07:41:18 +00:00
2026-03-20 06:13:27 +00:00
2026-03-23 19:36:44 -07:00
2026-03-24 04:19:43 +00:00
2026-03-21 23:07:51 +00:00
2026-03-21 23:07:51 +00:00
2026-03-24 04:19:43 +00:00
2026-02-18 01:34:35 +00:00
2026-03-23 05:25:05 +00:00
2026-03-23 05:25:05 +00:00
2026-03-21 23:07:51 +00:00
2026-03-23 22:03:39 -07:00
2026-02-16 20:49:09 -05:00
2026-03-01 22:52:11 -08:00
2026-03-01 22:52:11 -08:00
2026-03-15 11:14:28 -04:00
2026-03-15 16:19:27 -04:00
2026-01-31 21:29:14 +09:00
2026-02-14 20:53:32 -08:00
2026-03-01 14:23:46 -08:00
2026-03-23 17:39:22 +02:00
2026-03-23 17:39:22 +02:00
2026-03-18 23:18:36 +00:00
2026-03-22 22:13:39 -07:00