From 60a567d22f6e0c8f271deee277f11371c71c62ca Mon Sep 17 00:00:00 2001 From: chattie Date: Wed, 19 Aug 2026 18:10:35 +0200 Subject: [PATCH] docs: update history and current after F-069 close --- work/current.md | 2 +- work/history.md | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/work/current.md b/work/current.md index 16b7a40..4a9cf37 100644 --- a/work/current.md +++ b/work/current.md @@ -2,7 +2,7 @@ ## Sin feature activa -Backlog: 123 features (123 done). +Backlog: 137 features (137 done). Última feature cerrada: **F-069** — Shipping method descriptions editable in admin. ## Servicios productivos diff --git a/work/history.md b/work/history.md index baa1207..7d8b3b8 100644 --- a/work/history.md +++ b/work/history.md @@ -317,3 +317,11 @@ - Harness: `new_ticket.py` usa gate reviewer, soporta `--start` exclusivo y `--normalize-gates`. - Artefactos: work/artifacts/F-048/. +## 2026-08-19 — F-069 Shipping method descriptions editable in admin — DONE + +- Gates: reviewer APPROVED, security APPROVED, qa APPROVED, leader-close APPROVED, verify.sh exit 0 +- Entregable: descripción editable de métodos de envío end-to-end. Migración 029 (`shipping_methods.description text`); backend GET/POST/PATCH incluyen `description`; nuevo endpoint público `GET /shipping/methods?country=…&postalCode=…` (read-only, filtra active=true); admin `MethodForm` con input de descripción; storefront `CheckoutClient` consume el catálogo real y renderiza la descripción por método (array hardcodeado eliminado). +- Security: `description` es `z.string().max(500)`, plain text; write path requiere admin role (sin cambios); public GET es read-only y filtra SQL-level. +- Tests: backend 124 passed, 56 skipped; typecheck green en frontend/admin/backend. +- Artefactos: work/artifacts/F-069/ +