Skip to content

Depth program (WhatsApp interactive · Calendar shares · AI Contact triage) — Production Readiness Audit ​

FieldValue
Date2026-09-28
Re-verified2026-09-28 (local Pest + Playwright e2e); Eng cutover steps closed same day
StatusGo for production — engineering ship-ready; Ops deploy remaining
ScopeThree catalog MINOR bumps in one depth tranche
Codefeature/depth-wa-cal-ai-2026-09-28 — Backend #216 · Frontend #214 · Docs #296 (draft)
CompanionsWhatsApp interactive 1.4.0 · Calendar shares 1.3.0 · AI Contact triage · CHANGELOG

Executive summary ​

ModuleCatalogVerdict
WhatsApp Cloud interactive send/ingest + inbox UI1.3.0 → 1.4.0Go (live Meta WABA handset smoke post-deploy QA)
Calendar manual event shares (viewer/editor)1.2.0 → 1.3.0Go
AI Contact triage tools (confirmed writes)1.17.0 → 1.18.0Go

Engineering gates (code, migrate-only catalog, Pest, Playwright, Docs, Meta fake hard-fail in production) Pass. Depth work ships on feature/depth-wa-cal-ai-2026-09-28 draft PRs (Backend #216, Frontend #214, Docs #296). Production must keep META_HTTP_FAKE unset — boot refuses if it is truthy when APP_ENV=production.

Go / No-Go: Go after PR CI green + merge. Ops then migrate-only deploy and staging smoke.


Gate matrix (re-verified 2026-09-28) ​

GateWhatsApp 1.4.0Calendar 1.3.0AI Contact 1.18.0
Platform freezePassPassPass
Migrate-only catalog + CatalogSeederPass (1.4.0)Pass (1.3.0)Pass (1.18.0)
Local DB module.version1.4.01.3.01.18.0
Pest (feature)Pass — WhatsAppInteractiveTest 4/4Pass — CalendarEventShareTest 7/7Pass — write confirm + authz (prior + e2e Contact triage)
Playwright (tenant, workers=1)Pass — 9/9 shared sessionPass — 4/4 (incl. share ACL)Pass — 10/10 (incl. Contact triage)
Docs / changelog / sidebarPassPassPass
META_HTTP_FAKE production hard-failPass — boot throws if enabled in productionn/an/a
Live Meta WABA smokePost-deploy QAn/an/a
Feature branch + draft PRDoneDoneDone
Merged to origin/mainTodo (await CI)Todo (await CI)Todo (await CI)

Playwright notes (fixes landed in this tranche) ​

  • OAuth success now invalidates WhatsApp integration query (select-phone panel appeared after connect).
  • Calendar event detail hides Edit/Cancel for read_only viewers (badge alone was insufficient).
  • E2E HashRouter user-switch uses reload after token inject; Vite ignores playwright-report / test-results watch paths.
  • Local e2e requires Meta platform credentials + META_HTTP_FAKE=true (never in production; production boot hard-fails if set).

Remaining (operator) ​

#ActionOwnerStatus
1Create feature/ branches; commit; open draft PRsEngDone
2CI green on all three PRs; mergeEngTodo
3Deploy Backend; php artisan migrate --force (central and tenants) — no db:seedOpsTodo
4Confirm production env: META_HTTP_FAKE unset; Meta WhatsApp app id/secret/webhook token setOpsTodo
5Restart queues (whatsapp-inbound, whatsapp-outbound, default)OpsTodo
6Deploy Frontend SPA (same window as Backend)OpsTodo
7Staging smoke — WA interactive (when WABA available); Calendar share viewer/editor; Ask EloSync Contact confirmOps / QATodo

Migrations to apply (step 3) ​

  1. 2026_09_27_213615_add_interactive_payload_to_whatsapp_messages_table
  2. 2026_09_27_214240_bump_whatsapp_cloud_module_version_to_1_4_0
  3. 2026_09_28_000000_create_calendar_event_shares_table
  4. 2026_09_28_000001_bump_calendar_module_version_to_1_3_0
  5. 2026_09_28_104900_bump_ai_module_version_to_1_18_0

Staging smoke detail (step 7) ​

AreaSteps
WhatsApp interactiveOpen CS-window thread → send reply buttons → (phone) tap → inbound shows id/title; list path optional
Calendar sharesOrganizer shares manual event as viewer → sharee sees View only, no Edit/Share manager; editor can mutate
AI Contact triagePropose/confirm offboard + note + unassign on a contact (pending actions UI)

Rollback ​

ModuleRollback
WhatsAppCatalog down → 1.3.0; drop interactive_payload after code rollback
CalendarCatalog down → 1.2.0; drop calendar_event_shares after code rollback
AICatalog down → 1.17.0 after code rollback (no schema beyond catalog)

Text/media/template WhatsApp paths, meeting invitee ACL, and prior AI triage tools remain unchanged when rolling back only these bumps.


Test evidence (reference) ​

bash
# Backend
php artisan test --compact \
  tests/Feature/Tenant/WhatsApp/WhatsAppInteractiveTest.php \
  tests/Feature/Tenant/Calendar/CalendarEventShareTest.php \
  tests/Feature/Tenant/Ai/AiWriteConfirmationTest.php \
  tests/Feature/Tenant/Ai/AiAuthorizationTest.php

# Frontend (Vite on E2E_BASE_URL, Meta fake enabled locally only)
npm run test:e2e:whatsapp-cloud -- --workers=1
npm run test:e2e:calendar -- --workers=1
npm run test:e2e:ai -- --workers=1

Local re-verify (2026-09-28): Playwright WA 9/9, Calendar 4/4, AI 10/10; Pest WhatsAppInteractive 4/4, CalendarEventShare 7/7; catalog rows whatsapp-cloud=1.4.0, calendar=1.3.0, ai=1.18.0.

Official documentation for the EloSync SaaS Platform.