## Why The mall top bar's "Mobile" (手机端) entry is a dead link to `/` and no mobile client exists at all: the entire mobile journey — browse, buy, track orders, after-sale, coupons, wallet — is missing. tigshop's uniapp client cannot be adopted because its `wx.*` mini-program capabilities have no portable equivalent, so only its information architecture is worth migrating, rebuilt as a first-party web client. ## What Changes - Add `apps/mobile`, a standalone Nuxt3 H5 app served on port 3003 that reuses `@vmall/shared` contracts and `theme.css`. No backend capability changes: every surface consumes existing APIs through the shared client; any API gap is recorded as a dependency, not implemented here. - Ship the migrated information architecture: home content floors, category browse, search, product detail, cart, checkout, order list/detail, after-sale entry (reusing the `aftersale` API from `add-aftersale-refunds`), coupon center, wallet (reusing the `wallet` API from `add-wallet-settlement`), "My" center, sign-in and register. - Wrap the app in a custom bottom tab bar (Home / Category / Cart / My) with safe-area adaptation and mobile interaction conventions (pull-to-refresh, sign-in redirect that returns to the origin). - Keep the session contract identical to the mall: same `vmall.token`/`vmall.user` storage, Bearer header, and `me()` validation semantics. - Point the mall top-bar "Mobile" entry at the H5 app instead of the dead `/` link. ## Capabilities ### New Capabilities - `frontend-mobile`: Standalone Nuxt3 H5 storefront — page inventory and navigation structure, pure consumption of `@vmall/shared` (no app-local API wrapper), mobile shell/interaction conventions (tab bar, safe area, pull-to-refresh), and a token contract identical to the mall's. ### Modified Capabilities None. Backend capabilities are reused as-is (after-sale and wallet surfaces consume `aftersale` and `wallet` from `add-aftersale-refunds` and `add-wallet-settlement`), and `frontend-mall` behavior changes only in the single top-bar link target. ## Non-goals Mini-program and native APP builds, WeChat login/payment/sharing/subscription messages, IM customer service, PWA offline mode, push notifications, and a responsive retrofit of `apps/mall` are all excluded. Mobile-optimizing `admin` or `shop-admin` is excluded. Dedicated address-book management, reviews/ratings, and any new backend endpoint are excluded. ## Impact Adds one new pnpm workspace app (`apps/mobile`, Nuxt3, port 3003) consuming `@vmall/shared` and `theme.css`, plus a one-line link fix in the mall top bar. Deliberately no migrations, no Rust modules, and no shared-contract changes; after-sale and wallet pages depend on `add-aftersale-refunds` and `add-wallet-settlement` being archived and degrade to localized "Coming soon" placeholders until then.