EVCharge E2E Verify — E2E-CHAT-002

PASS
Run: run-verify-e2e-chat-002-20260401-0758
Scenario: e2e-chat-002-support-chat.md
Start: 2026-04-01 07:58 UTC · Finish: 2026-04-01 08:16 UTC · Duration: ~18 min
Client: v2.2.15 (dev) · Dispatcher: v1.4.1-63e311d

Steps

#ModuleBlockStatusDetails
V0Bot ServiceHealthcheckPASSBot Service health OK: supabase=true, mattermost=true
V1ClientLoginPASSAlready authorized. Main screen with active orders visible.
V1bClientVersionPASSVersion 2.2.15 (dev) confirmed in profile
V2aClientГлавная → ПоддержкаPASS"Связаться с поддержкой" → in-app ChatWidget (NOT Telegram)
V2bClientПрофиль → ПоддержкаPASS"Служба поддержки" → in-app ChatWidget (NOT Telegram)
V2cClientЗаказ → ПоддержкаSKIPOrder detail has "Открыть чат" (route chat), not "Написать в поддержку"
V3ClientОтправка сообщенияPASSMessage sent and visible in ChatWidget. Support channel created. First attempt hit 502 (orphaned MM channel) — resolved.
V4DispatcherDashboardPASSDashboard loaded. 4 unassigned orders.
V5DispatcherВидит сообщениеPASS"Поддержка — Apple Moderator" with client message visible at 05:11
V6DispatcherОтвечаетPASSReply sent: "Здравствуйте! Техник приедет в течение часа." at 05:13
V7ClientВидит ответPASSReply visible as "Служба поддержки" in ChatWidget. Note: not real-time — required re-entering chat.
V8DBВерификацияPASSmm_channel_mapping: dispatcher assigned, timestamps correct

Support Entry Points Audit

Entry PointExpectedActual
Главная → "Связаться с поддержкой"In-app ChatWidgetChatWidget (PASS)
Профиль → "Служба поддержки"In-app ChatWidgetChatWidget (PASS)
Заказ → "Написать в поддержку"In-app ChatWidgetButton absent (SKIP)

DB Checkpoint

SELECT mm_channel_id, mm_channel_name, channel_type, assigned_dispatcher_id, last_client_message_at FROM mm_channel_mapping WHERE client_id = '2a0b26a1-...' AND channel_type = 'support'; Result: mm_channel_id: bh3wzezq1fyex8duuutzef448o mm_channel_name: support-2a0b26a1 channel_type: support assigned_dispatcher_id: a7a78a62-8a5e-4c54-9977-d90cdb75b51b (testadmin) last_client_message_at: 2026-04-01 05:11:07.95+00

Issues Found

MEDIUM [Bot Service] Orphaned MM channel causes 502 on support chat creation. findOrCreateSupportChannel fails when MM channel exists (soft-deleted) but mm_channel_mapping record is missing. Should handle "channel already exists" error by looking up existing channel.
LOW [Client] Dispatcher reply not delivered to Client via WebSocket in real-time. Client only sees reply after navigating away and re-entering chat.
LOW [Bot Service] last_activity_at in mm_channel_mapping not updated after dispatcher reply (only on client messages).
INFO [Client] Order detail page has "Открыть чат" (route/technician chat) but no "Написать в поддержку" support entry point.

Screenshots (10)

01-client-main
01 — Client main screen
02-client-version
02 — Client version (profile)
03-main-support-btn
03 — Main → Support (ChatWidget)
04-profile-support-btn
04 — Profile → Support (ChatWidget)
05-order-support-btn
05 — Order detail ("Открыть чат", no support)
06-client-message-sent
06 — Client message sent
07-dispatcher-dashboard
07 — Dispatcher dashboard
08-dispatcher-sees-msg
08 — Dispatcher sees client message
09-dispatcher-reply
09 — Dispatcher reply sent
10-client-sees-reply
10 — Client sees dispatcher reply