Full edge-case QA: saved addresses that just work, a cleaner profile with submenus, order lifecycle and cash-on-delivery flows verified end to end, and every button inventoried
Platform / Product
A deep quality wave across all four apps, the website and the backend. Saving a delivery address chosen on the map now closes the dialog, selects the new address immediately and keeps everything you typed if you hop to the map mid-form. The profile screen became a clean menu with focused sections instead of one long page. The full order lifecycle and cash-on-delivery flows - accept, reject, cancel, reassign, deliver, fail, collect - are now pinned by dozens of new automated tests, every button across customer, courier, merchant, fleet and admin surfaces was inventoried and exercised, and several subtle bugs found by the review were fixed before release.
Saved addresses and the map pin
- Choosing a spot on the map and saving the address now closes the popup, selects the fresh address everywhere and confirms with a toast; errors keep the form open with a clear message.
- The exact pin you placed is what gets saved - previously the app silently re-looked-up the typed street and could drop your pin, and in one path could even store useless coordinates (now also refused by the server).
- Everything you typed survives the hop to the map and back; deleting an address asks for a confirming second tap; the website address page gained add, set-default and delete that update in place.
- An older pin can no longer silently override a newly selected address on future orders - on web and mobile the latest choice wins, and the website pin now has an explicit remove button.
- Verified live on a real Android device and in automated browser tests on desktop and mobile viewports.
A profile you can actually read
- The customer profile is now a compact menu - orders, account details, security, addresses, billing, payments, notifications, help, privacy - each opening a focused sub-screen with a back button, instead of one very long page of text.
- Nothing was removed: every setting, privacy action and support entry kept its place and its accessibility labels.
Order lifecycle and cash on delivery, proven
- Dozens of new automated tests pin the full order lifecycle: merchant accept and reject, customer cancel windows, courier decline with safe re-offer, pickup, delivery, failed delivery, and role isolation (nobody can act on someone else's order, and merchants never see a courier's precise location).
- Cash-on-delivery math is server-authoritative and collected exactly once - double taps, repeated submissions and replayed requests all resolve to a single order and a single collection; a live order-place-and-cancel run confirmed it in production.
- Two real bugs found by the tests were fixed: a removed menu item could still be ordered via a stale link, and the checkout price preview disagreed with checkout for unknown items.
Every button, catalogued and challenged
630 buttons, links and menu items across the four mobile apps and all web consoles were inventoried with their expected behavior, disabled and loading states; a dead 'report missing item' button was wired up, raw product codes in the merchant order view were replaced with product names, and the remaining polish items are queued with exact specs.
An adversarial multi-agent council then challenged every fixed claim before release. All automated gates pass: type checks across 23 packages, 1619 backend and shared tests, browser end-to-end runs, secret scan, and a full production build. The iPhone build pipeline surfaced a real issue - uploads are accepted but not ingested by App Store Connect - now documented with exact follow-up steps.
Commit: d301af2