Skip to content

Merchant Console

Cross-cutting finding — two divergent consoles, not one responsive design

Severity: blocker · Status: 🔴 Findings logged

prototype/mobile-console/ and ui_kits/merchant-console-v2/ are two independently authored surfaces for the same product:

  • Desktop (ui_kits/merchant-console-v2/manifest.js) derives navigation from a real module registry: computeNav(workspace) filters 30 modules across 9 groups by appliesTo, domain, plan (rank-gated, locked-not-hidden), and role, and supports a real multi-workspace switcher persisted to localStorage.
  • Mobile (prototype/mobile-console/Home.dc.html, confirmed by reading the file directly) has a fixed 4-tab bar (Home / Leads / Chats / More + a center QR FAB), a hardcoded single workspace ("Chai & Charcha"), and does not call manifest.computeNav anywhere in the file. The design project's own SCREENS.md confirms this was a deliberate simplification ("the workspace-switcher bottom sheet... was intentionally dropped when splitting into one-screen-per-file").

So the "single source of truth" navigation model described in CONTRACTS.md §1 is real on desktop and contradicted on mobile.

Architecture-gated — not a single Claude Designs prompt (tracked as QRS-046)

This is the same structural gap logged on the section index (no manifest.json/status field, device-split folders instead of platform-suffixed files). The right fix is to design each console module once, responsive, deriving nav from manifest.computeNav on both platforms, rather than patching the mobile file to add a workspace switcher on its own. That's a redesign of how future screens get produced, which needs to be decided before writing a per-screen prompt, or the next module added will repeat the same split.

Mobile Home — 🔴 Findings logged · Last reviewed 2026-07-19

File: prototype/mobile-console/Home.dc.html, confirmed by direct read.

Finding — hardcoded "Sponsored" content

Confirmed inline: a "Zero-fee UPI settlements this month · Sponsored" banner, sourced from manifest.js's CAMPAIGNS/getPromo('home.banner', ws). This is the concrete evidence behind the cross-cutting ad architecture finding — it's real and already shipping to the merchant dashboard, not a hypothetical.

Confirmed compliant (do not re-flag)

  • Semantic tokens throughout, no hardcoded colors found.
  • Real <a href> navigation to Profile.dc.html, Notifications.dc.html, Enquiries.dc.html, Messages.dc.html, More.dc.html, QRTools.dc.html — all links resolve to files that exist in the project.
  • The bottom tab bar + center FAB pattern matches SCREENS.md's documented navigation contract exactly (Home / Leads / Chats / More, FAB → QR Tools).

Desktop (ui_kits/merchant-console-v2) — 🔴 Partially reviewed

CONTRACTS.md and manifest.js were read in full (see design-system-foundation for the token/contract-level findings). The individual page files (home.html, qr-tools.html, ConsoleShell.jsx, kit.jsx, modules.jsx, PromoComponents.jsx, shell-boot.jsx) have not yet been read directly in this pass — findings about them should be treated as inferred from the contracts layer, not confirmed against the actual rendered pages, until read.

Remaining mobile screens — ⚪ Not yet reviewed

Enquiries.dc.html, Messages.dc.html, Thread.dc.html, More.dc.html, Notifications.dc.html, Profile.dc.html, Analytics.dc.html, Invoices.dc.html, CardEditor.dc.html, QRTools.dc.html, Catalogue.dc.html, Reviews.dc.html, Offers.dc.html, Announcements.dc.html.