Skip to content

fix(teams): reject unsupported gateway commands - #1491

Draft
NeoHsu wants to merge 5 commits into
openabdev:mainfrom
NeoHsu:stack/teams-01a-fail-closed-dispatch
Draft

fix(teams): reject unsupported gateway commands#1491
NeoHsu wants to merge 5 commits into
openabdev:mainfrom
NeoHsu:stack/teams-01a-fail-closed-dispatch

Conversation

@NeoHsu

@NeoHsu NeoHsu commented Aug 20, 2026

Copy link
Copy Markdown

Important

Stacked draft: logical base stack/teams-00-capabilities is PR #1490. GitHub requires an upstream PR base to exist in openabdev/openab, so this draft temporarily targets main and may show preceding stack layers. Do not merge it until #1490 is merged and this branch is rebased onto current main; then review only its single incremental commit.

What problem does this solve?

Prevent unsupported Teams control commands from being rendered as user-visible messages.

Discord Discussion URL: https://discord.com/channels/1491295327620169908/1491365158868619404/1531339032527765655
Microsoft Teams roadmap discussion.

Review Contract

Goal

Prevent unsupported Teams control commands from being rendered as user-visible messages.

Non-goals

No Connector HTTP policy, route persistence, reaction implementation, or command UX is added.

Accepted Residual Risks

Legacy reaction command forms remain no-ops until the opt-in reaction slice lands; this preserves compatibility without claiming delivery.

Acceptance Criteria

Unknown or unsupported commands return an error before any platform send, while ordinary content replies and the documented compatibility forms retain their prior behavior.

Follow-ups

Add negotiated reaction support and richer commands only in their dedicated PRs.

At a Glance

Gateway command → supported? → dispatch
                         └─ no → reject before content send

Prior Art & Industry Research

Not applicable — this is a narrow bug fix that prevents an unsupported control command from falling through to ordinary content delivery.

Proposed Solution

  • Reject unsupported Teams Gateway commands instead of falling through to a content send.
  • Keep explicitly recognized no-op compatibility commands bounded.
  • Add regression coverage for command dispatch outcomes.

Why this approach?

Failing before content dispatch is the smallest compatible fix and prevents control data from becoming a visible message.

Alternatives Considered

Continue treating unknown commands as sends (rejected: user-visible control leakage) or silently ignore every command (rejected: hides incompatibility).

Validation

cargo check -p openab-gateway --features teams

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant