Compare commits
merge into: devops/apps-registry:fix/frontend-trivy-scan-timeout
devops/apps-registry:main
devops/apps-registry:docs/plugins-y-subagentes-2026-09-20
devops/apps-registry:docs/adr-0012-practica-multicloud-2026-09-20
devops/apps-registry:docs/adr-0010-cierre-zoom-imagenes-manuales-2026-09-20
devops/apps-registry:fix/gallery-zoom-url-spaces-2026-09-20
devops/apps-registry:docs/adr-0010-cierre-bugs-mobile-imagenes-2026-09-20
devops/apps-registry:fix/navbar-departamentos-overflow-320-2026-09-20
devops/apps-registry:fix/footer-newsletter-overflow-320-2026-09-20
devops/apps-registry:ci/automate-staging-to-prod-promotion-2026-09-20
devops/apps-registry:fix/medusa-fetch-cache-multi-pod-2026-09-20
devops/apps-registry:docs/adr-0010-bugs-imagenes-2026-09-20
devops/apps-registry:docs/tmux-host-remote-control-continue
devops/apps-registry:feat/paginas-ayuda-envios-contacto
devops/apps-registry:docs/adr-0010-segunda-tanda-navegador
devops/apps-registry:fix/buscador-sin-resultados-feedback
devops/apps-registry:docs/adr-0010-checklist-ampliado
devops/apps-registry:docs/adr-0010-resultados-navegador-real
devops/apps-registry:fix/banner-disponibilidad-y-banco-placeholder
devops/apps-registry:fix/next-cve-2026-75604
devops/apps-registry:feat/banner-dinamico-buscador-y-adr-0010
devops/apps-registry:chore/envioclick-datos-reales-negocio
devops/apps-registry:feat/envioclick-fulfillment
devops/apps-registry:fix/epayco-package-lock
devops/apps-registry:fix/epayco-pse-reemplaza-payu
devops/apps-registry:feat/payu-pse-pago
devops/apps-registry:fix/navbar-departamentos-hover-gap
devops/apps-registry:fix/catalog-sidebar-scroll
devops/apps-registry:fix/product-import-dedupe-por-titulo
devops/apps-registry:feat/product-gallery-hover-zoom
devops/apps-registry:fix/product-import-crear-categoria-coleccion
devops/apps-registry:fix/adr0006-import-handle-ascii-safe
devops/apps-registry:fix/adr0008-doc-estado-final-palette-amendment
devops/apps-registry:chore/product-import-flat-bucket-note
devops/apps-registry:fix/product-import-category-select
devops/apps-registry:feat/product-import
devops/apps-registry:feat/out-of-stock-ui
devops/apps-registry:fix/inventory-panel-ts-error
devops/apps-registry:feat/inventory-panel
devops/apps-registry:feat/google-oauth-frontend
devops/apps-registry:fix/google-oauth-build-env
devops/apps-registry:feat/google-oauth-backend
devops/apps-registry:feat/cuenta-icono-mobile-indicador
devops/apps-registry:feat/auth-clientes-real
devops/apps-registry:feat/checkout-departamentos-ciudades
devops/apps-registry:feat/checkout-direccion-envio
devops/apps-registry:fix/carrito-thumbnail-real
devops/apps-registry:fix/checkout-carrito-real-medusa
devops/apps-registry:docs/adr0009-correccion-plugin-payu
devops/apps-registry:docs/adr0009-payu-decidido
devops/apps-registry:docs/adr0009-checkout-real
devops/apps-registry:fix/adr0008-club-ari-imagen-azul
devops/apps-registry:fix/adr0008-club-ari-y-novedades
devops/apps-registry:fix/adr0008-tiles-foto-mas-grande
devops/apps-registry:fix/adr0008-tiles-foto-flotante
devops/apps-registry:fix/adr0008-hero-carousel-ts-build-error
devops/apps-registry:fix/adr0008-tiles-scrim-pastel
devops/apps-registry:fix/adr0008-hero-carrusel-azul
devops/apps-registry:fix/adr0008-product-purchase-mobile-y-badge
devops/apps-registry:fix/adr0008-logo-circular-header
devops/apps-registry:fix/adr0008-tiles-pastel
devops/apps-registry:fix/adr0008-buscador-un-solo-foco
devops/apps-registry:fix/adr0008-buscador-outline-a11y-redondeado
devops/apps-registry:fix/adr0008-buscador-ring-input-propio
devops/apps-registry:fix/adr0008-buscador-doble-ring
devops/apps-registry:fix/adr0008-buscador-azul-amarillo
devops/apps-registry:fix/adr0008-logo-cache-busting
devops/apps-registry:fix/docs-tmux-persistir-trust-claude-json
devops/apps-registry:fix/docs-tmux-mounts-symlink-git-ownership
devops/apps-registry:fix/docs-sesion-tmux-persistente
devops/apps-registry:fix/adr0008-navy-coral-subfase3-product-card-grid
devops/apps-registry:fix/adr0008-navy-coral-subfase2-header-footer
devops/apps-registry:fix/adr0008-navy-coral-subfase1-tokens-logo
devops/apps-registry:fix/adr0006-etapa2-fase3a-buscador-navbar
devops/apps-registry:fix/adr0006-nota-implementacion-2-gate-fase2
devops/apps-registry:fix/adr0006-etapa2-fase2-currency-code-search
devops/apps-registry:fix/adr0006-etapa2-fase2-region-id-search
devops/apps-registry:fix/adr0006-etapa2-fase2-precio-crudo-indexado
devops/apps-registry:fix/adr0006-etapa2-fase2-plugin-medusa
devops/apps-registry:fix/adr0006-etapa2-fase1-meilisearch-infra
devops/apps-registry:fix/adr0006-motor-busqueda-facetas
devops/apps-registry:fix/disable-monitoring-stack
devops/apps-registry:fix/commerce-root-redirect-app
devops/apps-registry:fix/lab-agent-telegram-horario
devops/apps-registry:fix/lab-agent-docs-arquitectura
devops/apps-registry:fix/adr0005-marcar-etapa2-completa
devops/apps-registry:fix/etapa2-subfase3-fix-promo-index-type
devops/apps-registry:fix/etapa2-subfase3-tiles-promocionales
devops/apps-registry:fix/etapa2-subfase3-facetas-breadcrumb
devops/apps-registry:fix/etapa2-subfase3-urgencia-inventario
devops/apps-registry:fix/etapa2-subfase3-swatches-inline
devops/apps-registry:fix/etapa2-subfase3-badges-antes-ahora
devops/apps-registry:fix/etapa2-subfase3-visuales
devops/apps-registry:fix/etapa2-subfase2-home-force-dynamic
devops/apps-registry:fix/etapa2-subfase2-category-tiles-type
devops/apps-registry:fix/etapa2-subfase2-ci-nav-check
devops/apps-registry:fix/etapa2-subfase2-navegacion-datadriven
devops/apps-registry:fix/frontend-trivy-iac-and-readonly-fs
devops/apps-registry:fix/frontend-trivy-scan-timeout
devops/apps-registry:fix/etapa2-subfase1-remove-legacy-product-meta
devops/apps-registry:fix/etapa2-subfase1-categorias-fields-syntax
devops/apps-registry:fix/etapa2-subfase1-categorias-reales
devops/apps-registry:fix/fase5-adr-taxonomia-storefront
..
pull from: devops/apps-registry:fix/etapa2-subfase2-home-force-dynamic
devops/apps-registry:main
devops/apps-registry:docs/plugins-y-subagentes-2026-09-20
devops/apps-registry:docs/adr-0012-practica-multicloud-2026-09-20
devops/apps-registry:docs/adr-0010-cierre-zoom-imagenes-manuales-2026-09-20
devops/apps-registry:fix/gallery-zoom-url-spaces-2026-09-20
devops/apps-registry:docs/adr-0010-cierre-bugs-mobile-imagenes-2026-09-20
devops/apps-registry:fix/navbar-departamentos-overflow-320-2026-09-20
devops/apps-registry:fix/footer-newsletter-overflow-320-2026-09-20
devops/apps-registry:ci/automate-staging-to-prod-promotion-2026-09-20
devops/apps-registry:fix/medusa-fetch-cache-multi-pod-2026-09-20
devops/apps-registry:docs/adr-0010-bugs-imagenes-2026-09-20
devops/apps-registry:docs/tmux-host-remote-control-continue
devops/apps-registry:feat/paginas-ayuda-envios-contacto
devops/apps-registry:docs/adr-0010-segunda-tanda-navegador
devops/apps-registry:fix/buscador-sin-resultados-feedback
devops/apps-registry:docs/adr-0010-checklist-ampliado
devops/apps-registry:docs/adr-0010-resultados-navegador-real
devops/apps-registry:fix/banner-disponibilidad-y-banco-placeholder
devops/apps-registry:fix/next-cve-2026-75604
devops/apps-registry:feat/banner-dinamico-buscador-y-adr-0010
devops/apps-registry:chore/envioclick-datos-reales-negocio
devops/apps-registry:feat/envioclick-fulfillment
devops/apps-registry:fix/epayco-package-lock
devops/apps-registry:fix/epayco-pse-reemplaza-payu
devops/apps-registry:feat/payu-pse-pago
devops/apps-registry:fix/navbar-departamentos-hover-gap
devops/apps-registry:fix/catalog-sidebar-scroll
devops/apps-registry:fix/product-import-dedupe-por-titulo
devops/apps-registry:feat/product-gallery-hover-zoom
devops/apps-registry:fix/product-import-crear-categoria-coleccion
devops/apps-registry:fix/adr0006-import-handle-ascii-safe
devops/apps-registry:fix/adr0008-doc-estado-final-palette-amendment
devops/apps-registry:chore/product-import-flat-bucket-note
devops/apps-registry:fix/product-import-category-select
devops/apps-registry:feat/product-import
devops/apps-registry:feat/out-of-stock-ui
devops/apps-registry:fix/inventory-panel-ts-error
devops/apps-registry:feat/inventory-panel
devops/apps-registry:feat/google-oauth-frontend
devops/apps-registry:fix/google-oauth-build-env
devops/apps-registry:feat/google-oauth-backend
devops/apps-registry:feat/cuenta-icono-mobile-indicador
devops/apps-registry:feat/auth-clientes-real
devops/apps-registry:feat/checkout-departamentos-ciudades
devops/apps-registry:feat/checkout-direccion-envio
devops/apps-registry:fix/carrito-thumbnail-real
devops/apps-registry:fix/checkout-carrito-real-medusa
devops/apps-registry:docs/adr0009-correccion-plugin-payu
devops/apps-registry:docs/adr0009-payu-decidido
devops/apps-registry:docs/adr0009-checkout-real
devops/apps-registry:fix/adr0008-club-ari-imagen-azul
devops/apps-registry:fix/adr0008-club-ari-y-novedades
devops/apps-registry:fix/adr0008-tiles-foto-mas-grande
devops/apps-registry:fix/adr0008-tiles-foto-flotante
devops/apps-registry:fix/adr0008-hero-carousel-ts-build-error
devops/apps-registry:fix/adr0008-tiles-scrim-pastel
devops/apps-registry:fix/adr0008-hero-carrusel-azul
devops/apps-registry:fix/adr0008-product-purchase-mobile-y-badge
devops/apps-registry:fix/adr0008-logo-circular-header
devops/apps-registry:fix/adr0008-tiles-pastel
devops/apps-registry:fix/adr0008-buscador-un-solo-foco
devops/apps-registry:fix/adr0008-buscador-outline-a11y-redondeado
devops/apps-registry:fix/adr0008-buscador-ring-input-propio
devops/apps-registry:fix/adr0008-buscador-doble-ring
devops/apps-registry:fix/adr0008-buscador-azul-amarillo
devops/apps-registry:fix/adr0008-logo-cache-busting
devops/apps-registry:fix/docs-tmux-persistir-trust-claude-json
devops/apps-registry:fix/docs-tmux-mounts-symlink-git-ownership
devops/apps-registry:fix/docs-sesion-tmux-persistente
devops/apps-registry:fix/adr0008-navy-coral-subfase3-product-card-grid
devops/apps-registry:fix/adr0008-navy-coral-subfase2-header-footer
devops/apps-registry:fix/adr0008-navy-coral-subfase1-tokens-logo
devops/apps-registry:fix/adr0006-etapa2-fase3a-buscador-navbar
devops/apps-registry:fix/adr0006-nota-implementacion-2-gate-fase2
devops/apps-registry:fix/adr0006-etapa2-fase2-currency-code-search
devops/apps-registry:fix/adr0006-etapa2-fase2-region-id-search
devops/apps-registry:fix/adr0006-etapa2-fase2-precio-crudo-indexado
devops/apps-registry:fix/adr0006-etapa2-fase2-plugin-medusa
devops/apps-registry:fix/adr0006-etapa2-fase1-meilisearch-infra
devops/apps-registry:fix/adr0006-motor-busqueda-facetas
devops/apps-registry:fix/disable-monitoring-stack
devops/apps-registry:fix/commerce-root-redirect-app
devops/apps-registry:fix/lab-agent-telegram-horario
devops/apps-registry:fix/lab-agent-docs-arquitectura
devops/apps-registry:fix/adr0005-marcar-etapa2-completa
devops/apps-registry:fix/etapa2-subfase3-fix-promo-index-type
devops/apps-registry:fix/etapa2-subfase3-tiles-promocionales
devops/apps-registry:fix/etapa2-subfase3-facetas-breadcrumb
devops/apps-registry:fix/etapa2-subfase3-urgencia-inventario
devops/apps-registry:fix/etapa2-subfase3-swatches-inline
devops/apps-registry:fix/etapa2-subfase3-badges-antes-ahora
devops/apps-registry:fix/etapa2-subfase3-visuales
devops/apps-registry:fix/etapa2-subfase2-home-force-dynamic
devops/apps-registry:fix/etapa2-subfase2-category-tiles-type
devops/apps-registry:fix/etapa2-subfase2-ci-nav-check
devops/apps-registry:fix/etapa2-subfase2-navegacion-datadriven
devops/apps-registry:fix/frontend-trivy-iac-and-readonly-fs
devops/apps-registry:fix/frontend-trivy-scan-timeout
devops/apps-registry:fix/etapa2-subfase1-remove-legacy-product-meta
devops/apps-registry:fix/etapa2-subfase1-categorias-fields-syntax
devops/apps-registry:fix/etapa2-subfase1-categorias-reales
devops/apps-registry:fix/fase5-adr-taxonomia-storefront
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
206571627b |
fix(ecommerce): forzar renderizado dinamico en home y layout raiz
Bug preexistente (no introducido en esta sesion, solo expuesto): "/" se
prerenderizaba en build time dentro del Dockerfile, donde
HEADLESS_PROVIDER/MEDUSA_* no existen todavia (solo se inyectan en runtime
via el Deployment de k8s) -- el provider caia a "mock" y ese HTML quedaba
cacheado 1 año (confirmado en vivo: x-nextjs-prerender:1,
Cache-Control: s-maxage=31536000, x-nextjs-cache:HIT). El carrusel de
"Novedades" del home ya mostraba productos mock desde antes; recien se
noto con el nav data-driven de la sub-fase 2 porque las categorias mock
("Figuras"/"Peluches"/"Mochilas") son obviamente distintas a las reales.
/catalog y /product/[slug] no sufren esto porque ya son dinamicos
(searchParams / params fuerzan SSR).
export const dynamic = "force-dynamic" en app/page.tsx y app/layout.tsx
(el layout comparte el fetch del Navbar con TODAS las rutas -- forzarlo
ahi tambien protege contra que una pagina futura reintroduzca el mismo
bug). Decision del usuario: priorizar datos reales sobre el cacheo
estatico de 1 año.
Co-Authored-By: Claude Sonnet 5 <[email protected]>
Claude-Session: https://claude.ai/code/session_013dunTcReWMKhWgCPkvAVHD
|
||
|
|
d64218f45f | chore: release v1.0.141 [skip ci] | ||
|
|
7695ca0dea | Merge pull request 'fix(ecommerce): tipar defaultTile igual que las entradas de tileContent' (#34) from fix/etapa2-subfase2-category-tiles-type into main | ||
|
|
bd956328db |
fix(ecommerce): tipar defaultTile igual que las entradas de tileContent
next build fallaba en tsc: defaultTile no tenia la propiedad opcional image, asi que la union de tipos entre tileContent[handle] y defaultTile perdia esa propiedad y content.image no compilaba. Se extrae el tipo TileContent y se anota defaultTile con el, igual que tileContent. Co-Authored-By: Claude Sonnet 5 <[email protected]> Claude-Session: https://claude.ai/code/session_013dunTcReWMKhWgCPkvAVHD |
||
|
|
20bc559a6c | Merge pull request 'fix(ci): actualizar guard de navegacion del catalogo tras PR #32' (#33) from fix/etapa2-subfase2-ci-nav-check into main | ||
|
|
2abfec57ae |
fix(ci): actualizar guard de navegacion del catalogo tras PR #32
El guard de "Validar navegación real del catálogo" en build.yaml seguia pinneado a la implementacion vieja de navbar.tsx: greppeaba literalmente "collection=Marvel", "category=Mochilas" y "currentCollection", que eran exactamente los valores hardcodeados que PR #32 elimino por estar rotos (ya no correspondian a ningun dato real desde que se quito legacyProductMeta en PR #29). El guard quedo validando el bug, no la correccion, y bloqueo el build post-merge de PR #32. Ahora valida el comportamiento real nuevo: que el nav arma su arbol desde datos reales (buildCategoryTree), que linkea por nombre real de categoria (encodeURIComponent(root.name)) y que expone el item activo (aria-current={isActive(...)}). El check de remontaje en app/catalog/page.tsx tambien se actualizo: la key ya no incluye ":${section}" porque ese query param nunca se usaba (dead code eliminado en PR #32). Co-Authored-By: Claude Sonnet 5 <[email protected]> Claude-Session: https://claude.ai/code/session_013dunTcReWMKhWgCPkvAVHD |
||
|
|
f1f5f3612b | Merge pull request 'fix(ecommerce): nav y tiles data-driven contra la jerarquia real de categorias' (#32) from fix/etapa2-subfase2-navegacion-datadriven into main | ||
|
|
8742ce714c |
fix(ecommerce): nav y tiles data-driven contra la jerarquia real de categorias
Sub-fase 2 de Etapa 2 (ADR 0005 seccion 6). Navbar y CategoryTiles usaban arrays hardcodeados (Figuras/Peluches/Mochilas/Marvel) que ya no coinciden con los nombres reales de categoria en Medusa desde que se elimino legacyProductMeta (PR #29) -- todos esos links de navegacion quedaron rotos silenciosamente (0 productos al filtrar). - lib/headless: nuevo tipo Category + metodo getCategories() en CatalogProvider (medusa via /store/product-categories, mock deriva de su catalogo plano, shopify sin implementar como el resto de sus metodos). - Navbar: arbol real de categorias (6 raices/21 nodos), dropdown de hijos por raiz en desktop, lista anidada en el sheet movil. Colecciones del sheet ahora se derivan de los productos reales en vez de un array hardcodeado con 2 nombres obsoletos (Marvel/Frozen vs. los reales Universo Marvel/Reino de Frozen). - CategoryTiles: tiles de home por categoria raiz real; imagen solo donde ya existe asset, gradiente honesto donde no (no hay fotografia para las 6 raices todavia, deuda explicita del ADR). - catalog-client/catalog page: cuando el query param `category` es una raiz con hijos, se expande a los nombres reales de sus hijos para que el filtro (igualdad exacta de producto.category) siga funcionando -- sin esto, tiles/nav apuntando a una raiz mostrarian 0 productos porque ningun producto tiene la raiz asignada directamente. Co-Authored-By: Claude Sonnet 5 <[email protected]> Claude-Session: https://claude.ai/code/session_013dunTcReWMKhWgCPkvAVHD |
||
|
|
0508c6328e | chore: release v1.0.135 [skip ci] | ||
|
|
7485457cf4 | Merge pull request 'fix(ci,ecommerce): escanear el manifiesto renderizado y endurecer readOnlyRootFilesystem del frontend' (#31) from fix/frontend-trivy-iac-and-readonly-fs into main | ||
|
|
2670727cfa |
fix(ci,ecommerce): escanear el manifiesto renderizado y endurecer readOnlyRootFilesystem del frontend
- Trivy IaC escaneaba solo el patch aislado de Kustomize (workloads/ecommerce/frontend/patches/deployment.yaml), no lo que realmente corre en el clúster. Eso generaba falsos positivos en todo lo heredado del base remoto de platform-templates (runAsNonRoot, seccompProfile) porque el patch nunca los repite. Se instala kubectl, se renderiza el kustomization completo y se escanea ese output. - readOnlyRootFilesystem pasa de false a true en el contenedor del frontend: revisando next.config.ts (optimización de imágenes) y app/api/revalidate/route.ts (revalidateTag sin cache handler custom), la imagen sí escribe a ./.next/cache en runtime. Se agregan volúmenes emptyDir para .next/cache y /tmp. |