# Super App V1 · Capture Summary **Batch**: CAPTURE-01 + CAPTURE-02 **Date**: 2026-04-22 (both rounds) **Source of truth**: `super_app_v1.zip` → extracted to `/prototypes/super-app-v1/` **Capture tool**: puppeteer-core 24 + Google Chrome 147 · viewport 414×896 @ 2x DPR **Server**: Python `http.server` on `127.0.0.1:8787` serving the extracted bundle ## Headline | Status | CAPTURE-01 | CAPTURE-02 (now) | |---|---:|---:| | captured (pixel-perfect target) | 22 | 24 | | captured-improved (partial → real) | — | 2 (hotel, news) | | new sub-states | — | 5 | | partial / needs-interaction | 2 | 0 | | blocked | 0 | 0 | | not-found | 0 | 0 | | **total frames** | **24** | **29** | All 24 TGScreen components have clean renders now. CAPTURE-02 also added 5 presentation-grade sub-states (booking-payment, wallet-tier-ladder, 2× MICE filter, AI §2). ## Navigation mechanics discovered The V1 app uses a hybrid router: - **Hash-based (18 screens + AI overlay)**: `HASH_MAP` in the bundle maps `#sc-1 … #sc-15, #sc-map, #sc-op, #sc-prep, #sc-journey` to screen codes. `#sc-6` is special — it triggers the AI overlay via `setShowAI(true)`. - **Dock click (3 screens)**: Bottom dock buttons for `MICE`, `Wallet`, `Profile` — reached by clicking the button with matching text. - **Home entry point (1 screen, partial)**: Hotel is only reachable from the "Book hotel" banner on the Home scroll. Headless click-propagation did not re-route to TGScreenHotelFlow; the PNG captures the banner state. - **Notification bell (1 screen, partial)**: News is reached indirectly via the bell (opens Notifications drawer) — TGScreenNews direct render requires a trigger not exposed on Home. ## Files delivered Under `docs/prototypes/super-app-v1/screenshots/`: - `v1_01_home.png` … `v1_24_ai_plan.png` (24 core frames) - `v1_04_booking_state_b.png` · `v1_06_mice_state_conference.png` · `v1_06_mice_state_exhibition.png` · `v1_07_wallet_state_b.png` · `v1_24_ai_plan_step_2.png` (5 sub-states added in CAPTURE-02) - `_capture_log.json` — CAPTURE-01 raw puppeteer log - `_capture_v2_log.json` — CAPTURE-02 raw puppeteer log - `super_app_v1_screenshot_manifest.json` — manifest v1.1 (29 entries) - `super_app_v1_presentation_captions.txt` — TH + EN captions (updated) - `super_app_v1_screenshot_runtime_patch.json` — PATCH payloads (v2) - `super_app_v1_capture_delta_from_01.md` — CAPTURE-01 → CAPTURE-02 delta report - `super_app_v1_capture_summary.md` — this file ## Runtime linkage Applied via `PATCH /mgt-api/screens/{code}` for all 24 V1 screen codes. Every row's `capture_status`, `capture_priority`, and `capture_note` updated. Live state verified (after CAPTURE-02 PATCH): - `imported_v1_screens`: 24 - `capture_status=captured`: 22 - `capture_status=captured-improved`: 2 (V1-HOTEL, V1-NEWS) - `capture_status=needs-interaction`: 0 - `capture_status=pending`: 0 ## CAPTURE-02 · what changed - Upgraded v1_08_hotel.png → real TGScreenHotelFlow (search form with date pickers / filter chips / Search hotels CTA) - Upgraded v1_10_news.png → real TGScreenNews (Platform news concept-comparison · Alex persona · project-overview video · Join the Platform) - Added 5 sub-states (booking-payment · mice-conference · mice-exhibition · wallet-tier-ladder · ai-step-2) - Forced light theme via localStorage `tg:themeMode=light` + `tg:theme=pattaya` for pack consistency - Refreshed v1_20_map.png for same theme-consistency reason - Full delta report: `super_app_v1_capture_delta_from_01.md` ## Next round (CAPTURE-03 recommendations · OPTIONAL) 1. **Hotel screen**: Instrument a manual capture pass — scroll Home to the "Book hotel" banner, click the inner "Book" anchor, capture TGScreenHotelFlow. 2. **News screen**: Find the trigger for `setScreen('news')` — likely via a tab in Notifications drawer or a link buried in Profile. 3. **Multi-state captures**: The priority list only targets the default state. Sub-states (e.g. MICE filter chips active, AI overlay at §2/§3, cockpit day 3, booking error state) would enrich the deck. Name convention supports `v1_06_mice_state_a.png` etc. 4. **Desktop variant**: Current captures are mobile (414×896). Presentation deck may want desktop-full for wide slides — consider 1440×900 re-runs for hero frames (home, discover, detail, cockpit, mice, ai_plan).