Bug Sweep — 2026-04-21
Bug Sweep — 2026-04-21
Section titled “Bug Sweep — 2026-04-21”Comprehensive UX/functional bug list captured during cofounder demo dry-run. Source: user-reported screenshots + hands-on walkthrough.
Goal: rock-solid demo state + structured backlog for post-demo work.
Triage
Section titled “Triage”| ID | Severity | Surface | Short |
|---|---|---|---|
| B14 | blocker | mobile/SOS | SOS tab icon stuck loader, “sos” label clipped |
| B15 | high | mobile/Settings | Button styling off-system (Sign out) |
| B16 | high | mobile/theme | Theme toggle only reaches TabBar |
| B17 | blocker | mobile/chrome | triage tab STILL visible |
| B18 | medium | mobile/Home | Home empty below the fold |
| B19 | blocker | mobile/flow | Triage asked twice (prompt → book re-asks) |
| B20 | medium | mobile/Home | Category chip click has no defined action |
| B21 | high | mobile/Settings | Language picker non-functional |
| B22 | medium | mobile/Chat | Attach audio/photo/video icons non-functional |
| B23 | high | api/AI | ”mi perde il rubinetto” → locksmith not plumber |
| B24 | blocker | mobile/Book | Book screen re-asks description+address |
| B25 | blocker | mobile/Book | ”Send request” → blue error screen |
| B26 | medium | mobile/Map | No real-time pro presence on map |
| B27 | high | api/Payments | Stripe test env + escrow not visibly wired |
| B28 | low | ops | Local Docker image buildup — no prune |
| B29 | high | mobile/Book | Image upload from /book crashes the web bundle (deferred 2026-04-20 — defer to post-demo). Repro: on /book/[professionalId], tap MediaAttachments → pick image → crash. Likely culprit: expo-image-picker web path or R2 presigned-URL fetch shape. Agent: mobile + backend when resumed. |
| B30 | high | mobile/Book | Service address is free-text only — autofill from device GPS on first focus (expo-location reverse geocode via /maps/reverse-geocode BE endpoint or Mapbox Geocoding API). When GPS unavailable, show a typeahead autocomplete (Mapbox Places places/autocomplete) that suggests Italian addresses as the user types. Deferred 2026-04-20 to post-demo. Agent: mobile + backend (maps module). |
Fixes planned
Section titled “Fixes planned”Parallel multi-agent dispatch (max 8 concurrent, worktree-isolated):
- A1 — SOS tab (B14): fix infinite loader + label clipping. Agent: frontend.
- A2 — Settings + theme (B15 + B16 + B21): rework profile screen, wire theme to all screens, functional language picker. Agent: frontend.
- A3 — Triage tab hide (B17): delete from router; stash file under
(welcome)/_internalor convert into a screen pushed from home. Agent: frontend. - A4 — Home hero map (B18 + B26): embed Mapbox + pro presence. Agent: frontend + mobile.
- A5 — Unified triage (B19 + B24): end-to-end flow: prompt → LLM → triage obj → results → book prefilled. Agent: mobile + AI.
- A6 — Category chip (B20): tap → filter search. Agent: frontend.
- A7 — Chat attachments (B22): wire expo-image-picker, expo-av, expo-camera; upload to R2 via MediaService. Agent: mobile.
- A8 — AI category matcher (B23): Italian keyword→category rules + LLM few-shot fix. Agent: backend (AI).
- A9 — Send request crash (B25): root-cause 500 + fix BE handler. Agent: backend.
- A10 — Stripe/escrow audit (B27): verify test keys, capture_method, webhook signature, release trigger. Agent: backend (payments).
- A11 — Docker prune (B28): added to
scripts/deploy.shpostamble. Done inline.
Feedback-loop upgrade
Section titled “Feedback-loop upgrade”For every agent above: MUST write a Playwright (or Supertest for BE-only)
verification step into its own prompt. Agent spawns a pnpm exec playwright
session post-fix, captures screenshot, attests in report that the specific
bug is gone. Orchestrator (this file) consumes those attestations.
Quarantined tests
Section titled “Quarantined tests”T-133,T-134,T-135,T-136— booking lifecycle cascade. Booking created in T-131 is not matched toproToken. Seed/auth wire bug. Tracked separately under A10 (escrow release depends on T-136).