Skip to content

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.

IDSeveritySurfaceShort
B14blockermobile/SOSSOS tab icon stuck loader, “sos” label clipped
B15highmobile/SettingsButton styling off-system (Sign out)
B16highmobile/themeTheme toggle only reaches TabBar
B17blockermobile/chrometriage tab STILL visible
B18mediummobile/HomeHome empty below the fold
B19blockermobile/flowTriage asked twice (prompt → book re-asks)
B20mediummobile/HomeCategory chip click has no defined action
B21highmobile/SettingsLanguage picker non-functional
B22mediummobile/ChatAttach audio/photo/video icons non-functional
B23highapi/AI”mi perde il rubinetto” → locksmith not plumber
B24blockermobile/BookBook screen re-asks description+address
B25blockermobile/Book”Send request” → blue error screen
B26mediummobile/MapNo real-time pro presence on map
B27highapi/PaymentsStripe test env + escrow not visibly wired
B28lowopsLocal Docker image buildup — no prune
B29highmobile/BookImage 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.
B30highmobile/BookService 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).

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)/_internal or 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.sh postamble. Done inline.

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.

  • T-133, T-134, T-135, T-136 — booking lifecycle cascade. Booking created in T-131 is not matched to proToken. Seed/auth wire bug. Tracked separately under A10 (escrow release depends on T-136).