# Next Session: WhatsApp Ordering Capability

## What
Enable ordering (coffee, cheese) via WhatsApp. Currently `services/whatsapp-agent/` observes + drafts but does NOT dispatch ordering tools (verified by grep — no imports of `schedule_coffee_delivery` or `order_from_cremeitalia`).

## Why greenfield, not parity fix
Unlike phone, WhatsApp never had an ordering path. This is a new capability, not a regression fix.

## Scope
- Decide whether WhatsApp forwards user text to annie-voice's HTTP endpoint (reuse `_detect_tool_choice` + all main-plan fixes) OR runs its own dispatch (duplicate the logic).
- If forward: minimal WhatsApp change; main-plan fixes automatically apply.
- If local dispatch: repeat the Phone Ordering Parity pattern — port cheese routing, date validation, dispatch guard.
- Rate-limit: WhatsApp messages can be typo-heavy. The 5s re-entry guard window may need relaxation.

## Open questions
- Does the current WhatsApp agent have a "respond with action" path at all, or is it pure observation?
- What's the approval UX on WhatsApp? (Telegram has inline buttons; WhatsApp Business API differs.)
- Is there a privacy consideration for ordering events appearing in the shared household WhatsApp history?

## Non-goals
- Building a generic cross-channel agent abstraction.
- Ordering from stores not already covered (Zomato, Blue Tokai, Cremeitalia, TWF).

## Acceptance
- "order me some bocconcini" via WhatsApp → Cremeitalia cart permalink delivered.
- Approval flow matches the Telegram UX as closely as WhatsApp Business API allows.

## Prerequisites
Main plan deployed + phone parity deployed (so the patterns are known-good).

## Preview-flow requirement (from `annie-screenshots-and-selfheal.md` Phase B)

Apply the same preview-then-approval flow from Phase B when WhatsApp coffee
ordering lands. Load-bearing decision: confirmations must pass through a
single approval surface, not fan out per channel.

Approval surface: ask Rajesh during design whether WhatsApp should BE the
approval relay (and if so, whether screenshots are appropriate on WhatsApp
given multi-device chat sharing), or whether Telegram remains the single
approval surface regardless of the initiating channel.

If Telegram remains the sole approval surface, the WhatsApp session should
listen for Context Engine memory updates describing the completed order,
analogous to the phone plan. Screenshots should NOT be echoed into WhatsApp
unless this question has been explicitly resolved — multi-device WhatsApp
history can surface PII on devices that were not present when the screenshot
was intended to be viewed.
