Skip to content

fix(bot): 4 booking/UX bugs — /start reset, phone copy, slash commands, resume picker

Administrator requested to merge main into production

Bug 1 — /start no longer shows "این کارت مربوط به رزرو قبلیه". /start (and the "🔍 New search" menu) send tap:new_search, which parse_tap didn't recognize, so it fell through to unknown -> stale -> the booking_stale nudge. parse_tap now maps new_search/reset/start to a reset signal and entry_router routes it to the reset node (clean reset + short prompt). Combined with the already-silent booking_stale branch, the message is gone entirely.

Bug 2 — reworded the booking phone prompt (book_need_phone) in en/fa/ar: drops the payment parenthetical and the "+964… type it" fallback, asks the user to share via the button below.

Bug 3 — unrecognized slash commands no longer go to the LLM. Added on_unknown_command (F.text.startswith("/"), before on_text) that points the user back to the menu with the persistent keyboard. /start and the menu commands (/flight…/support, incl. /language) still hit their specific handlers first.

Bug 4 — after sharing the phone, the passenger step re-shows the PICKER (saved list / scan / manual-entry), not the bare "send everything in one message" prompt. The tap:pax:resume nudge re-entered add_passenger at COLLECT and, with empty text, degraded to ask="typed". add_passenger now handles pax:resume explicitly (sign in, load saved travellers, emit a plain collect_passenger with no ask), and an empty action-less collect turn re-shows the picker instead of the bare prompt.

Tests: two new graph tests (new_search reset; pax:resume picker) + full suites green (core 43, bridge 23). Live-verified on the compiled engine and the real bridge renderer.

Merge request reports

Loading