In T7.3 "Human in the loop: approvals", the agent stops before sending and asks. There, a web page answered. Here, Teams answers: The question appears as a card in the chat, with two buttons.
A card is convenient and precisely for that reason dangerous: Anyone who sees it can click, and a click arrives as data that someone may have tampered with. This lesson shows how the Kladde builds the card
and handles the click without the card deciding anything. Prerequisites are T7.3 and lesson W7.2.2 "Sign-in and rights: who is asking?" (that is where IUserContext is).
State of the checks
Nothing ran against Teams, an Azure Bot or a tenant. Built and tested (test project outside the repository, .NET 10, xunit and Shouldly, 11 tests for card and click, green together with the 13 from W7.2.2, exit code 0)
are ApprovalCardFactory and ApprovalCardHandler with stand-ins for the card store, the approvers and the quotes. Not built is the connection to AgentApplication. The SDK names come from Learn;
what is not there is open. With a tenant, only a test tenant runs.