# Changelog

## 0.8.0 — Landing, Loader Studio & Demo Operations
- Landing pública original ClickDelivery/LM Networks.
- Loader Studio por organización: biblioteca, carga propia y presets de movimiento.
- Animación oficial ClickDelivery optimizada para Web/Android.
- Bootstrap móvil expone el loader por tenant.
- Cuatro apps Android muestran loader oficial local en arranque.
- Demo automático para Franquicia, Marca Blanca y roles operativos.
- Descarga autenticada de reportes Excel de SubAdministración.
- Migración 013 con aislamiento RLS para loaders.
- Manager Pay y ChefManager AI permanecen como integraciones futuras no requeridas.

## 0.7.1 — Zonas, pagos directos y canales de comercio
- Sub-Administración geográfica endurecida por polígonos PostGIS, con permisos y territorios asignados por usuario.
- Reportes Excel de ventas y envíos limitados a las zonas de cada Sub-Administrador.
- Tracking, órdenes/status, envíos/status, comercios, repartidores y pagos en revisión filtrados en backend por territorio.
- Alta/aprobación de comercios y repartidores, comisión de comercio, cancelación/reasignación y banners bajo permisos zonales.
- Pago directo al comercio con instrucciones editables, QR privado, comprobante de cliente y revisión del comercio; comisión + carrera se registran como deuda del comercio para evitar doble liquidación.
- Cupones propios por comercio, opcionalmente limitados a sucursales/productos y enlazados a la cotización de checkout.
- Delivery Express genera un viaje real del Logistics Core y conserva comisión/plataforma y pago de carrera.
- WhatsApp es un canal opcional espejo: el pedido se registra primero en ClickDelivery y luego se encola o genera enlace prellenado.
- Realtime por `territory:<id>` para Sub-Administradores; no reciben el tópico global de la organización.
- Cuatro proyectos Android/React Native funcionales mantienen package IDs, Firebase, logos originales y color `#FF411F`.
- Comercio integra saldos/liquidaciones, comandas térmicas, pago directo, cupones, WhatsApp y Express.
- Delivery integra cupón y opción de pago directo durante checkout.

## 0.7.0 — Android & Operations
- Cuatro shells Android/React Native compilables sobre una fuente compartida.
- Checkout preflight, distancia de ruta, lotes multi-pedido, billeteras/liquidaciones y ESC/POS 58/80 mm.


## 0.6.1 — Mobile Production
- Refresh tokens móviles rotativos con hash, expiración, vínculo opcional a dispositivo y detección de reuso.
- Sync offline pull/push con operaciones idempotentes por `client_operation_id`.
- GPS batch idempotente por `client_point_id` y preservación de `captured_at`.
- Sucursales Comercio georreferenciadas.
- Catálogo, stock y pedidos de Comercio.
- Marketplace, direcciones y pedidos del Cliente/Delivery con precios recalculados en servidor.
- Conversión automática de pedido `ready` a viaje Logistics Core.
- Ganancias del Repartidor al completar viaje y flujo de liquidaciones.
- Bridge React Native ampliado con refresh automático, cola offline, catálogo y ganancias.
- FCM endurecido: tokens `UNREGISTERED` se desactivan para evitar reintentos inválidos.
- Huellas SHA-1/SHA-256 de los certificados de firma de las cuatro APK documentadas.
- Verificador de keystore candidato mediante `keytool` y SHA-256.
- Logos/iconos oficiales continúan protegidos por BRAND LOCK sin modificación.

## 0.6.0 — APK Integration
- Auditoría de las APK reales Administrador, Comercio, Usuario/Delivery y Repartidor.
- Package IDs reales tomados de AndroidManifest; se eliminan los IDs provisionales V0.5.
- Bridge compartido React Native/Hermes para API, auth, WebSocket, FCM, GPS y evidencia.
- WebSocket autenticado `clickdelivery-v1`, con PostgreSQL LISTEN/NOTIFY como bus y SSE conservado.
- FCM HTTP v1 directo con cuenta de servicio, manteniendo gateway como fallback.
- Repartidor preparado para aprovechar ubicación en background ya presente en la APK.
- Manager Pay/ChefManager AI agrega headers de evento y firma HMAC-SHA256 opcional.
- BRAND LOCK continúa protegiendo logos/iconos originales.


## 0.5.0 — Mobile & Operations
- Storage privado real para evidencia con upload temporal, autorización, SHA-256 y firma binaria.
- Dispositivos móviles, heartbeat, inbox durable y push outbox con reintentos.
- SSE por usuario/organización/viaje y mapa operativo en vivo.
- Bootstrap y contratos para APK Administrador, Comercio, Delivery y Repartidor.
- Logos/iconos oficiales originales protegidos con manifest SHA-256 y `npm run brand:check`.
- Integration outbox desacoplado para Manager Pay / ChefManager AI.
- Smoke test ampliado a Mobile & Operations.

## 0.4.1 — Logistics Core
- Geocercas pickup/dropoff y validación de `service_area`.
- Ranking/auto-asignación por distancia, rating, experiencia y frescura GPS.
- Candidatos de asignación persistidos.
- Tracking por viaje en PostGIS.
- Realtime multi-instancia con PostgreSQL LISTEN/NOTIFY + SSE.
- PIN pickup/delivery y evidencia configurable.
- Identidades y APIs por rol Cliente/Comercio/Repartidor/Dispatcher.
- RBAC agregado sobre endpoints administrativos V0.4.
- Smoke test extendido al flujo logístico completo.

## 0.4.0
- Runtime migrado de SQLite a PostgreSQL/PostGIS.
- `server.js` convertido a consultas async/await con `pg`.
- Pool y transacciones en `src/db.js`.
- RLS por `organization_id` en tablas operativas.
- Separación de credencial DB administrativa y credencial runtime.
- Migraciones con checksum.
- PostGIS para viajes, repartidores y territorios.
- Historial de ubicación y búsqueda de repartidores cercanos.
- Idempotencia transaccional con hash de payload.
- Cargo y ledger atómicos al finalizar viaje.
- Smoke test ampliado para RLS/PostGIS/idempotencia.
- Se preservan Franquicia y White‑Label y sus reglas económicas.

## 0.3.0
- Backend SQLite de desarrollo, sesiones, auditoría, idempotencia, onboarding, viajes, cargos y ledger.

## V0.6.1 Source Recovery Addendum
- reconstruido `google-services.json` cliente desde las cuatro APK reales;
- recuperados los cuatro Firebase Android App IDs;
- recuperado project ID / sender ID / storage bucket / database URL;
- creada base móvil compartida nueva en `mobile/reconstructed-source/`;
- logos oficiales copiados byte por byte a la base móvil;
- color primario fijado desde el PNG oficial: `#FF411F`;
- documentada la imposibilidad criptográfica de derivar la clave privada original desde el APK.
