ChatWalaʻau v0.88.1
This release adds one new feature to ChatWalaʻau: Microsoft Teams Integration.
Highlights
Microsoft Teams Integration (v0.88.1)
- Talk to the ChatWalaʻau agent directly from Microsoft Teams -- a 1:1 personal chat, a group chat, or a channel -- using the Teams bot chat UI and Adaptive Cards. It is the first external chat-channel integration: the same agent you use in the web app answers in Teams, with no separate chat logic.
- Receives messages at
POST /api/teams/messages(path configurable), authenticated by Microsoft Bot Framework JWT. In a group or channel the bot is addressed with an @mention (its own mention is stripped before the agent reads your message), and its reply @mentions you back so it is clear who it is answering (personal chats carry no mention). - Replies proactively so long answers never time out Teams: the request is acknowledged immediately, the agent turn runs in the background, a typing indicator shows while it works, and the reply is posted when ready (split to stay within Teams' ~25000-character message limit).
- Conversations are real chat history. Every Teams turn is saved to the same session store as your Web and API chats, so a personal chat, group chat, or channel accumulates as one conversation, shows up in the sidebar and search with a "Teams" badge, and the assistant remembers the earlier turns of that conversation.
- Generated images display inline in Teams -- the actual image data is sent to the conversation (not a link), and the same image renders when you open that Teams conversation in the Web app.
- Tool approval in Teams is an Adaptive Card with Allow Once / Allow Session / Deny -- the agent never runs an approval-gated tool without your decision, and Allow Session remembers the choice for that conversation so it does not re-ask.
- A welcome message is posted when the bot is added to a chat, group chat, or channel, so you can confirm a successful add.
- Access control: optionally restrict who can use the bot to specific Microsoft Entra ID users (by Object ID) via
TEAMS_ALLOWED_USERS; the default is everyone in the bot's reach. - Off by default and self-contained: set
TEAMS_ENABLED=trueplus the bot credentials (TEAMS_APP_ID,TEAMS_APP_PASSWORD,TEAMS_TENANT_ID) to turn it on. When off, the Teams endpoint is not mounted and the Teams SDK is never loaded -- the runtime is unchanged. DEMO_MODE deployments are unaffected. - Local development exposes your machine to Teams through a public HTTPS tunnel (Microsoft Dev Tunnels by default; ngrok or cloudflared also work); the bot is registered with the Microsoft Teams CLI (or the Entra / Azure portal).
Included in this release
This release includes implementation work from:
- v0.88.0 through v0.88.1
Notes
- No breaking changes. With no operator action (
TEAMS_ENABLEDunset/false, the default) the Teams endpoint is not mounted, the Teams SDK is never imported, and the runtime is byte-for-byte the previous behavior. No removed or renamed endpoints, settings, or environment variables, and no data migration. - Upgrade note (additive, non-breaking): the Microsoft Teams SDK for Python (
microsoft-teams-apps) is now a default dependency, so an upgrade pulls it in; it is only imported at runtime whenTEAMS_ENABLED=true. - Internal design management content and architecture control artifacts are intentionally omitted from this release note.
Installation
See the repository README for setup and usage instructions.
Version
- Release version:
0.88.1 - Previous release:
0.87.0