# TPV-FIXES — Implementer Report ## Cambios Realizados ### 1. Fix favicon 404 (storefront) **Archivo:** `project/storefront/src/app/layout.tsx` ```diff export const metadata: Metadata = { title: 'mercadodevida', description: '...', alternates: { canonical: absoluteUrl('/') }, + icons: { icon: '/favicon.ico', shortcut: '/favicon.ico' }, openGraph: { ... }, }; ``` **Rationale:** El storefront tenía `public/favicon.ico` pero Next.js App Router no lo servía automáticamente. Agregar la referencia en metadata resuelve el 404. ### 2. Fix Cashier label (POS Receipt) **Archivo:** `project/apps/pos/src/components/ReceiptModal.tsx` ```diff - Cajero: {receipt.cashier} + Cajero: {receipt.cashier?.split('@')[0] ?? '—'} ``` **Rationale:** `receipt.cashier` contiene el email completo del usuario (ej: `cajero1@tienda.com`). Mostrar solo la parte antes del @ es más legible y profesional. ### 3. pos/sales 400 error **Estado:** REQUIERE MÁS INFORMACIÓN No hay logs específicos del error. El análisis sugiere posibles causas: - Código de payment en mayúsculas que no pasa regex Zod - Falta de header `x-terminal-id` en ciertas condiciones **Recomendación:** Solicitar al reporter los detalles del request/response que falla. ## Archivos Modificados 1. `project/storefront/src/app/layout.tsx` — favicon metadata 2. `project/apps/pos/src/components/ReceiptModal.tsx` — cashier label format ## Testing Recomendado 1. Navegar storefront → verificar que favicon carga en browser tab 2. Crear venta POS → verificar receipt muestra nombre de cajero sin @ 3. Para bug 400: proporcionar request/response específicos si persiste ## Complejidad: Low ## Riesgo: Low ## Impacto: UX (favicon, label legible)