WIP: Draft: fix(frontend): make Android Chrome Terra connect tappable (GL-137) #157

Closed
PlasticDigits wants to merge 0 commits from 137-bug-frontend-android-chrome-cannot-activate-connect-terra-wallet-connect-tc- into main
PlasticDigits commented 2026-08-31 05:57:27 +00:00 (Migrated from gitlab.com)

What

Make the header Connect Terra Wallet control tappable on Android Chrome and complete same-device WalletConnect without a non-gesture auto-redirect.

  • Header CTA: aria-label="Connect Terra Wallet", 44px hit target, touch-action: manipulation, Cancel instead of a disabled spinner
  • Header z-50 isolate without overflow-x-clip so Android Chrome does not clip/eat the tap
  • connecting is never persisted (onRehydrateStorage reset) so a fresh visit is not spinner-disabled
  • WalletConnect Open / Copy pairing sheet (DEX #519 pattern); cosmes QRCodeModal no longer location.hrefs from an async callback
  • Keplr on mobile Chrome without window.keplr is a WalletConnect row, not a dead “Not installed” extension row
  • Leap stays desktop extension-only (not the mobile fix)
  • Invariants INV-FE-WC-MOBILE-1, docs, and skills/agent-frontend-terra-wallet-mobile.md

Why

Fixes https://gitlab.com/PlasticDigits/cl8y-bridge-monorepo/-/issues/137

usera (Android 16 Chrome) could not activate Connect Terra Wallet on bridge.cl8y.com while the same device connected successfully on ustr-cmm. Bridge transfers require a Terra wallet; a dead header CTA makes the product unusable for that cohort.

Testing

  • Unit tests (npm run test:unit in packages/frontend) — 692 passed
  • Typecheck (npx tsc --noEmit)
  • Playwright wallet-connect (desktop + 390×844 mobile) with 5 workers: E2E_UI_ONLY=1 npx playwright test e2e/wallet-connect.spec.ts --workers=5 — 7 passed
  • Tested on desktop (browser: ___) — desktop extension path unchanged in code; please confirm Keplr extension
  • Tested on mobile (device: Android 16 Chrome) — needs device QA (tap CTA → modal → Lunc Dash / Galaxy Station Open+Copy)
  • Wallet tested: ___
  • No console errors in Playwright runs
  • Screenshots attached (if UI change) — overlay stacking screenshot still useful from a real Android 16 Chrome session

Checklist

  • Only touches packages/frontend/ plus docs/skills/README for invariants
  • No hardcoded secrets, keys, or addresses
  • Lint passes (npx eslint on changed TS)
  • Unit tests pass (npm run test:unit)

Closes #137

## What Make the header **Connect Terra Wallet** control tappable on Android Chrome and complete same-device WalletConnect without a non-gesture auto-redirect. - Header CTA: `aria-label="Connect Terra Wallet"`, 44px hit target, `touch-action: manipulation`, **Cancel** instead of a disabled spinner - Header `z-50 isolate` without `overflow-x-clip` so Android Chrome does not clip/eat the tap - `connecting` is never persisted (`onRehydrateStorage` reset) so a fresh visit is not spinner-disabled - WalletConnect Open / Copy pairing sheet (DEX #519 pattern); cosmes `QRCodeModal` no longer `location.href`s from an async callback - Keplr on mobile Chrome without `window.keplr` is a **WalletConnect** row, not a dead “Not installed” extension row - Leap stays desktop extension-only (not the mobile fix) - Invariants **INV-FE-WC-MOBILE-1**, docs, and `skills/agent-frontend-terra-wallet-mobile.md` ## Why Fixes https://gitlab.com/PlasticDigits/cl8y-bridge-monorepo/-/issues/137 usera (Android 16 Chrome) could not activate Connect Terra Wallet on `bridge.cl8y.com` while the same device connected successfully on ustr-cmm. Bridge transfers require a Terra wallet; a dead header CTA makes the product unusable for that cohort. ## Testing - [x] Unit tests (`npm run test:unit` in `packages/frontend`) — 692 passed - [x] Typecheck (`npx tsc --noEmit`) - [x] Playwright wallet-connect (desktop + 390×844 mobile) with 5 workers: `E2E_UI_ONLY=1 npx playwright test e2e/wallet-connect.spec.ts --workers=5` — 7 passed - [ ] Tested on desktop (browser: ___) — desktop extension path unchanged in code; please confirm Keplr extension - [ ] Tested on mobile (device: Android 16 Chrome) — **needs device QA** (tap CTA → modal → Lunc Dash / Galaxy Station Open+Copy) - [ ] Wallet tested: ___ - [x] No console errors in Playwright runs - [ ] Screenshots attached (if UI change) — overlay stacking screenshot still useful from a real Android 16 Chrome session ## Checklist - [x] Only touches `packages/frontend/` plus docs/skills/README for invariants - [x] No hardcoded secrets, keys, or addresses - [x] Lint passes (`npx eslint` on changed TS) - [x] Unit tests pass (`npm run test:unit`) Closes #137
PlasticDigits (Migrated from gitlab.com) closed this pull request 2026-08-31 05:58:29 +00:00
PlasticDigits commented 2026-08-31 05:58:31 +00:00 (Migrated from gitlab.com)

Closed: this draft targeted the GitLab issue branch at main, not the implementation. Recreating from fix/gl-137-android-chrome-terra-connect.

Closed: this draft targeted the GitLab issue branch at main, not the implementation. Recreating from fix/gl-137-android-chrome-terra-connect.
PlasticDigits commented 2026-08-31 09:14:53 +00:00 (Migrated from gitlab.com)

mentioned in merge request !159

mentioned in merge request !159
PlasticDigits commented 2026-08-31 12:39:09 +00:00 (Migrated from gitlab.com)

mentioned in issue #137

mentioned in issue #137

Pull request closed

Sign in to join this conversation.
No description provided.