March 1-2, 2026 — Staging QA on ricoya.ipnoelp.com — All issues resolved
8 issues reported during staging QA. All fixed and verified across three test accounts (Safari, Chrome).
| # | Issue | Root Cause | Status |
|---|---|---|---|
| 1A | Unable to load addresses in profile | 10 missing columns in addresses table | Fixed |
| 1B | Pages not loading data on navigation | SWR aggressive revalidation + stale cache | Fixed |
| 3A | Phone number input — symbols not stripped | No input sanitization on phone field | Fixed |
| 3B | Phone number not showing in cart | Cart didn't read phone from user profile | Fixed |
| 4A | Notifications not working on Safari | Push subscription not saving to Supabase | Fixed |
| 4B | Rider notification + delivery console refresh | Missing notification triggers, no auto-refresh | Fixed |
| 5 | Can't assign orders to drivers from Admin | Driver endpoint bugs (firestore_id, restaurant load) | Fixed |
| 6 | Unable to load images | Firebase Storage URLs broken post-migration | Fixed |
End-to-end driver testing revealed every step after claiming an order was broken. Five separate bugs fixed:
| File | Change |
|---|---|
| api/driver/orders/route.ts | Added firestore_id mapping |
| api/driver/orders/available/route.ts | Added firestore_id mapping |
| api/driver/restaurants/route.ts | legacy_numeric_id -> id |
| api/driver/restaurants/[id]/route.ts | Added legacy_firestore_id fallback |
| api/driver/orders/[id]/pickup/route.ts | Removed invalid column |
| api/uploads/route.ts | Server-side file_uploads insert |
| repositories/fileUploadsRepo.ts | Rewrote to use server endpoint |
| data/models.ts | Removed storage_type from FileUpload |
All notification flows verified end-to-end across three browsers:
| Flow | Browser | Account | Status |
|---|---|---|---|
| Driver notifications | Safari | nseanchristopher | Working |
| Customer notifications | Chrome | christophersean08 | Working |
| Manager notifications | Chrome | sean@omelasai | Working |
Safari subscription issue: Push subscription wasn't saving because localStorage flag was already set from a previous session. Disable/re-enable triggered the full subscribe flow.
| Issue | Root Cause | Fix |
|---|---|---|
| Order tracking badge not clickable | Drag detection threshold was 2px — too sensitive for taps | Increased to 8px in Header.tsx |
| 403 errors on /api/admin/restaurants for customers | ManagerSidebar and AdminSidebar rendered unconditionally, firing admin API calls on mount | Wrapped with route-based conditions: only render on /manager/* and /admin/* pages |